Makro Neden Yanlış Sonuç Verir?

  • Konuyu başlatan Konuyu başlatan Adnan
  • Başlangıç tarihi Başlangıç tarihi

Kısa Açıklama

Makro Neden Yanlış Sonuç Verir? isimli başlıkta, ilgili işlemlere dair detaylar yer almaktadır.
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
https://***/c5aifpavg4bf/Soru.xlsm.html

İndirme linkini verdiğim örnek dosyada da göreceğiniz gibi,
1.234,567 formatında yazılmış sayıları, noktaları yok ederek, 1 234, 567 formatına dönüştürmek istiyorum. (Hücreler sayılar için; 0 000.000 şeklinde biçimlendirildi.)

Elle ctrl+h (bul ve değiştir) komutunu çalıştırdığımda, B3 : D3 aralığındaki, sayıları istediğim formata çevirebilmekte.
Aynı işlemi makro ile yaptırdığımda, sayılar 1234567 şekline dönmekte. Yani makroda tanımlı olmadığı halde "," de noktalarla birlikte yok olmakta.

Acaba yanlış mı yapıyorum diye, bu işlemi defalarca yaptım. Hep aynı şey oldu. İşlemi elle yaptığımda "virgül"ün başına bir şey gelmemekte ama makroyu çalıştırdığımda "virgül" yok olmakta.

Dosyayı ve makroyu inceleyip, makronun neden böyle problemli çalışmakta olduğunu bulmanız mümkün mü?
 
Merhaba @Adnan dosyanızı göremiyoruz. ama fikir olsun diye yazayım. Makro şart değil ise yan sütunda METNEÇEVİR işlemini kullanıp verilerinizi istediğiniz biçimde yazabilirsiniz. A2 de 1.234,567 gibi sayınız olsun. B2 ye bu formülü yazıp aşağı sürükleyerek deneyin.

Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
 
Web sitemizde dosya yükleme ve indirme işlevi artık sadece site üzerinden yapılmaktadır.
Harici sitelerdeki güvenlik sorunları nedeniyle bu sitelerin linkleri otomatik olarak engellenmektedir.

Bilginize sunarız.
 
Başka bir kaynaktan "kopyala / yapıştır"la aldığım, 1.234,567 formatındaki sayıları, makro ile 1234,567 formatına çevirmek istiyorum. Bu işlemi "bul ve değiştir ile yaptığımda hiç bir hata almıyorum. Ancak makro ile yaptığımda, sadece noktayı değil, virgülü de yok ediyor ve sayıyı 1234567 şekline getiriyor.

Aşağıya makronun içeriğini kopyalıyorum. İnceleyip, sorunun nereden kaynaklandığını söyleyebilirseniz, mutlu olurum. Şimdiden teşekkürler, kolay gelsin...

Range("B3:D3").Select
Selection.Replace What:=".", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
 
Başka bir kaynaktan "kopyala / yapıştır"la aldığım, 1.234,567 formatındaki sayıları....
Bence kritik kelime kırmızı renklendirdiğim kısım, yani verilerin gerçekten SAYI mı olduğu yoksa sayı GİBİ mi göründüğü sanırım.
Basitçe şöyle bir kontrol yapın: verilerinizi, kullandığınız asıl sayfa yerine, belgeye ekleyeceğiniz yeni bir sayfaya yapıştırın ve SAYIların olduğu sütunun sütun genişliğini biraz artırın. Bakın bakalım SAYI dedikleriniz SOLa mı yaslanmış yoksa SAĞA mı?
 
Ömer bey, kaynak siteden bazı fiyatları "kopyala / yapıştırl"a alıyorum. Kaynak sitenin sayı formatı bugüne kadar 123,456 şeklindeydi. Yani, sayı 1000'den küçüktü ve düne kadar hiç bir sorun yaşamamıştım. 123,456 formatlı sayıları kaynak dosyadan kopyala ile alıyor, tablomun yan tarafında geçici hücrelere "Değer olarak yapıştır" komutu ile yapıştırıyor, sonra da makro ile virgülleri noktaya çeviriyordum ve hiç bir sorun yaşamıyordum.

Dün kaynak site ilk defa 1000'den büyük fiyatlar girmeye başladı ve formatları 1.234,567 şeklinde. Böyle olunca da sorun yaşamaya başladım. Kaynaktan getirdiğim sayılar sayı formatında, eminim. Çünkü "bul değiştir" işlemini manuel olarak yaptığımda hiç bir hata almıyorum ve kaynaktan gelen sayılar "sayı" olarak görünüyorlar. Yani, o sayılarla, 4 işlem yapabiliyorum. Ancak makro ile "bul değiştir" yaptığımda, makronun saçma bir şekilde noktanın yanı sıra virgülü de yok etmesi, işi bozuyor...
 
Ama soruma cevap vermiş değilsiniz.
Toplama işlemini örneğin =A1+A2 gibi mi yapıyorsunuz yoksa =TOPLA(A1:A2) gibi mi yapıyorsunuz?
Ben hala verinin gerçekten SAYI olup olmadığından emin değilim.

Bir de şuna bakın, 1000'den büyük sayı olan hücreyi seçtiğinizde formül çubuğunda NOKTAyı görüyor musunuz, görmüyor musunuz?
 
Ömer bey, kaynak siteden aldığım sayıyı kendi sayfama "yapıştırdığımda" hem hücrede, hem de formül çubuğunda sayıyı, kaynak siteden geldiği haliyle yani, ilk basamaktan sonra noktalı, 4. basamaktan sonra virgüllü olarak görüyorum. Manuel olarak bu hücreye "bul değiştir" uyguladığımda, önce noktayı yok ediyorum, aynı komutla virgülü noktaya çeviriyorum. Hiç bir sorun çıkmıyor. "Bul değiştir"lerle istediğim formata dönüşmüş sayıya dört işlem uyguladığımda, error almıyorum...
 
Neden sorularıma cevap yazmayıp aynı şeyi tekrarlıyorsunuz?

1. SORU:
Basitçe şöyle bir kontrol yapın: verilerinizi, kullandığınız asıl sayfa yerine, belgeye ekleyeceğiniz yeni bir sayfaya yapıştırın ve SAYIların olduğu sütunun sütun genişliğini biraz artırın. Bakın bakalım SAYI dedikleriniz SOLa mı yaslanmış yoksa SAĞA mı?
2. SORU:
1000'den büyük sayı olan hücreyi seçtiğinizde formül çubuğunda NOKTAyı görüyor musunuz, görmüyor musunuz?
 
@Adnan yanlış anlamadıysam hücresel biçimi değişmişsiniz,
sayıyı kopyala yapıştır da sorun yok.. Dört işleme de izin veriyorsa verileriniz sayı halinde kopyalanıyordur. Sanırsam bu sütunun hücresel biçimlendirme ayarlarından GENEL olarak değil de kendiniz değiştirmişsiniz. Hücresel biçimlendirmeyle yapılan işlemler sadece GÖRÜNTÜ olarak değişir ve verilerinizin asıl kaynak formatı değişmez. Üstüne Bu görüntüyü makro kullanarak değiştirmeye çalışıyorsunuz... oysa oradaki veriniz sandığınız görüntüde (biçimde) kayıtlı değil. Özetle biçimlendirme ayarını GENEL yapıp asıl şeklini görüp işlemlerinizi (makro yada formül yada hücresel format) ona göre yapın
 
Ömer bey, kaynağından "kopyala" komutuyla çekmiş olduğum verileri, yepyeni bir sayfaya "Yapıştır" komutuyla tüm özellikleriyle yapıştırdım. (çünkü kullanmış olduğum sayfadaki biçimler çok farklı)

Hücreleri genişlettim, hücre içindeki veriler sağa yaslı durmakta.

Ayrıca, gerek hücrede, gerekse formül çubuğunda veriler aynı özelliklere sahip, yani ilk basamaktan sonra nokta, dördüncü basamaktan sonra virgül var.

Neyse, ben meseleyi şöyle bir yöntemle çözdüm. Makro benim sayımın ısrarla noktasını ve virgülünü yok ettiğine göre, sayımın olması gerektiğinden 1000 kat yüksek görünmekte olduğunu farkettim, yani 1 234.567 olması gereken sayı 1 234 567 şeklinde görünüyordu. Ben de makroya ilave bir işlem ekledim; bu sayıları yapıştırdığım hücrelerin tam altlarına, örneğin B4 hücresine =B3/1000 işlemi yaptırttım. Sonra da bu alt hücrede 1000'e bölünerek gerçek değerlerine dönüşmüş olan rakamları, bir üst hücreye kopyalattım, sorunum çözüldü.

Sizleri uğraştırdım, hakkınızı helal edin, hepinize ilgileriniz için teşekkürler ediyorum.

Belki birinin işine yarar diye ilgili kodu yapıştırıyorum...
Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(19 satır)
 
HAM veri üzerinde, şu kodlardan biriyle sorununuz çözülüyor olmalı (koddaki A1:A10 şeklindeki ALAN bilgisini düzenlersiniz)
İstediğiniz olmuyorsa ham veri içeren örnek belgeyi görmek gerekiyor demektir.

[REPLY]
VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(15 satır)
[/REPLY]
 
Geri
Üst