Boşluk Karakteri Olan Hücreler

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
546
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Selamlar

Örnek dosyamın ÇALIŞMA adlı sayfasında, B2:Z1000 alanında,

D6 , H11 , K2
gibi hücrelerde boşluk karakterleri vardır.

Bu boşlukların bulunduğu hücrelerin hangileri olduğunu, RAPOR1 ADLI sayfadaki M sütununa dökecek kodları, değerli hocalarımızdan rica ederim.

Teşekkürler.
 

Ekli dosyalar

N.Ziya Hiçdurmaz

Özel Üye
Katılım
28 Nisan 2007
Mesajlar
2,218
Excel Vers. ve Dili
Office 2013 TR / 32 Bit
merhaba; aşağıdaki kodu deneyiniz.

Sub test()
s = 2
For Each alan In Sayfa2.Range("a2:z1000")
If Left(alan, 1) = " " Then
Sayfa1.Cells(s, "m") = alan.Address
s = s + 1
End If
Next
End Sub
 

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
546
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
merhaba; aşağıdaki kodu deneyiniz.

Sub test()
s = 2
For Each alan In Sayfa2.Range("a2:z1000")
If Left(alan, 1) = " " Then
Sayfa1.Cells(s, "m") = alan.Address
s = s + 1
End If
Next
End Sub
N. Ziya Hiçdurmaz hocam çok güzel olmuş. Emeğinize sağlık.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Alternatif;

C++:
Option Explicit

Sub Space_Cells_Address()
    Dim S1 As Worksheet, S2 As Worksheet, Bul As Range, Adres As String
    
    Set S1 = Sheets("ÇALIŞMA")
    Set S2 = Sheets("RAPOR1")
    
    S2.Range("M2:M" & S2.Rows.Count).ClearContents
    
    Set Bul = S1.Range("B2:Z1000").Find(" ")
    If Not Bul Is Nothing Then
        Adres = Bul.Address
        Do
            If Left(Bul.Value, 1) = " " Then
                S2.Cells(S2.Rows.Count, "M").End(3)(2, 1) = Bul.Address
            End If
            Set Bul = S1.Range("B2:Z1000").Find(What:=" ", After:=Bul, LookAt:=xlPart)
        Loop While Not Bul Is Nothing And Bul.Address <> Adres
    End If
    
    Set Bul = Nothing
    Set S1 = Nothing
    Set S2 = Nothing
    
    MsgBox "İşleminiz tamamlanmıştır."
End Sub
 

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
546
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Alternatif;

C++:
Option Explicit

Sub Space_Cells_Address()
    Dim S1 As Worksheet, S2 As Worksheet, Bul As Range, Adres As String
   
    Set S1 = Sheets("ÇALIŞMA")
    Set S2 = Sheets("RAPOR1")
   
    S2.Range("M2:M" & S2.Rows.Count).ClearContents
   
    Set Bul = S1.Range("B2:Z1000").Find(" ")
    If Not Bul Is Nothing Then
        Adres = Bul.Address
        Do
            S2.Cells(S2.Rows.Count, "M").End(3)(2, 1) = Bul.Address
            Set Bul = S1.Range("B2:Z1000").FindNext(Bul)
        Loop While Not Bul Is Nothing And Bul.Address <> Adres
    End If
   
    Set Bul = Nothing
    Set S1 = Nothing
    Set S2 = Nothing
   
    MsgBox "İşleminiz tamamlanmıştır."
End Sub
Korhan hocam emeğinize sağlık, teşekkürler, fakat galiba aralarında boşluk olan kelimeleri de buluyor. Sadece boşluk veya boşluklar olan hücreleri bulması lazım.
Sebebi de şu;
Çalışma sayfasındki verileri kullanıp rapor döken kodlar var, yanlışlıkla basılan boşluk karakterini de veri olarak gördüğü için, o alanda boşluk karakteri dahi olursa, hatalı sonuç olur hocam.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Koda küçük bir ekleme yaptım. Sanırım şimdi istediğiniz gibi çalışır.

Bu kod sayfadaki CTRL+F işlevini yaparak sonuca gitmektedir. Bu sebeple klasik döngüye göre daha hızlı sonuç verecektir.
 

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
546
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Koda küçük bir ekleme yaptım. Sanırım şimdi istediğiniz gibi çalışır.

Bu kod sayfadaki CTRL+F işlevini yaparak sonuca gitmektedir. Bu sebeple klasik döngüye göre daha hızlı sonuç verecektir.
Olmuştur hocam emeğinize sağlık.
 
Üst