Makro ile boş hücreyi bulmak

Katılım
10 Nisan 2014
Mesajlar
113
Excel Vers. ve Dili
2013 ingilizce
Altın Üyelik Bitiş Tarihi
08/11/2017
Arkadaşlar merhaba

Bir sayfada A5 hücresine “Aaaaaa”, a5 hücresinden sonra A kolonundaki ilk boş hücreye “bbbbbb” sonraki boş hücreye “cccccc” sonraki boş hücreye ”dddddd” yazdırmak istiyorum Bunu makro ile nasıl yapabilirim yardımcı olursanız sevinirim

Teşekkürler
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,376
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Sorunun mantığını tam olarak anlamadım, mantıklı da bulmadım. Tabi ayrıntıyı bilmeyince böyle düşünmem doğal.

Eğer A sütununda boş hücre sayısı aktarılacak değerden fazla ise kod döngüden çıkar.
Fikir olması açısından aşağıdaki kodları inceleyin. Boş hücrelerin arka planını kırmızı yapar, siz bu kodu kaldırabilirsiniz.

Kod:
Sub Makro1()

    Dim Hcr As Range
    Dim Dgr
    Dim i   As Integer
    Dgr = Array("aaaa", "bbbb", "cccc", "dddd", "eeee", "fffff")
    
    For Each Hcr In Columns("A:A").SpecialCells(xlCellTypeBlanks)
        With Hcr
            .Value = Dgr(i)
            .Interior.ColorIndex = 3
        End With
        i = i + 1
        If i > UBound(Dgr) Then Exit For
    Next Hcr
    
End Sub
 

Korhan Ayhan

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

Alternatif;

"A" sütununda başlık satırınız varsa aşağıdaki kod ilk boş hücreyi bulur. Aralarda boş hücrelerin olmadığı varsayılmıştır.

Kod:
Sub TEST()
    Son = Cells(Rows.Count, "A").End(3)(2).Row
    MsgBox Son
End Sub
 
Katılım
10 Nisan 2014
Mesajlar
113
Excel Vers. ve Dili
2013 ingilizce
Altın Üyelik Bitiş Tarihi
08/11/2017
Merhaba,

Sorunun mantığını tam olarak anlamadım, mantıklı da bulmadım. Tabi ayrıntıyı bilmeyince böyle düşünmem doğal.

Eğer A sütununda boş hücre sayısı aktarılacak değerden fazla ise kod döngüden çıkar.
Fikir olması açısından aşağıdaki kodları inceleyin. Boş hücrelerin arka planını kırmızı yapar, siz bu kodu kaldırabilirsiniz.

Kod:
Sub Makro1()

    Dim Hcr As Range
    Dim Dgr
    Dim i   As Integer
    Dgr = Array("aaaa", "bbbb", "cccc", "dddd", "eeee", "fffff")
    
    For Each Hcr In Columns("A:A").SpecialCells(xlCellTypeBlanks)
        With Hcr
            .Value = Dgr(i)
            .Interior.ColorIndex = 3
        End With
        i = i + 1
        If i > UBound(Dgr) Then Exit For
    Next Hcr
    
End Sub
Merhaba

Öncelikle cevaplarınız İçin teşekkür ederim. Kısa yoldan anlatmam gerekirse satır sayısı değişen bir özet sayfam var. Makro vasıtasıyla değişik sayfalardan veri alıp bu sayfada özetliyor

A kolonundaki ilk boş satıra “İlk boş satır”
A kolonundaki ikinci boş satıra “ikinci boş satır”
A kolonundaki üçüncü boş satıra “üçüncü boş satır”
A kolonundaki dördüncü boş satıra “dördüncü boş satır”

Yazdırmak istiyorum. Vereceğiniz kodu diğer sayfalardan veri çeken makroma ekleyeceğim

Teşekkürler
 
Katılım
10 Nisan 2014
Mesajlar
113
Excel Vers. ve Dili
2013 ingilizce
Altın Üyelik Bitiş Tarihi
08/11/2017
Merhaba,

Sorunun mantığını tam olarak anlamadım, mantıklı da bulmadım. Tabi ayrıntıyı bilmeyince böyle düşünmem doğal.

Eğer A sütununda boş hücre sayısı aktarılacak değerden fazla ise kod döngüden çıkar.
Fikir olması açısından aşağıdaki kodları inceleyin. Boş hücrelerin arka planını kırmızı yapar, siz bu kodu kaldırabilirsiniz.

Kod:
Sub Makro1()

    Dim Hcr As Range
    Dim Dgr
    Dim i   As Integer
    Dgr = Array("aaaa", "bbbb", "cccc", "dddd", "eeee", "fffff")
    
    For Each Hcr In Columns("A:A").SpecialCells(xlCellTypeBlanks)
        With Hcr
            .Value = Dgr(i)
            .Interior.ColorIndex = 3
        End With
        i = i + 1
        If i > UBound(Dgr) Then Exit For
    Next Hcr
    
End Sub
Necdet Bey teşekkürler. Verdiğiniz kod işimi gördü. Emeğinize sağlık
 
Katılım
22 Şubat 2021
Mesajlar
106
Excel Vers. ve Dili
Ofis 360 Türkçe
Arkadaşlar selam, ben de benzer bir işlem yapmak istiyorum. Ancak benim sütunda değil satırda.. Bir sonraki boş satıra kadar değerleri toplamasını nasıl yazabilirim kodla? Şimdiden teşekkürler..
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Arkadaşlar selam, ben de benzer bir işlem yapmak istiyorum. Ancak benim sütunda değil satırda.. Bir sonraki boş satıra kadar değerleri toplamasını nasıl yazabilirim kodla? Şimdiden teşekkürler..
Örnek dosya ve örnek dosyada istediğiniz sonucu göstererek paylaşırsanız iyi olur.
 
Katılım
22 Şubat 2021
Mesajlar
106
Excel Vers. ve Dili
Ofis 360 Türkçe
Hocam nasıl ekleyebilirim?
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
İmzamda belirttiğim gibi paylaşabilirsiniz.
 
Katılım
22 Şubat 2021
Mesajlar
106
Excel Vers. ve Dili
Ofis 360 Türkçe
Drive link hocam burdan olur mu?
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Erişim izni vermemişsiniz.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Dosyanızdaki kodları silip aşağıdaki kodları bir modüle kopyalayıp deneyiniz:

PHP:
Sub seli()
Sheets("REF").Activate
son = Cells(Rows.Count, "K").End(3).Row
For toplam = 2 To son
    toplama = 0
    For sat = toplam + 1 To son
        If IsNumeric(Cells(sat, "K")) Then
            toplama = toplama + Cells(sat, "K")
        Else
            Cells(toplam, "K") = toplama
            toplam = sat - 1
            sat = son
        End If
    Next
Next
End Sub
 
Katılım
22 Şubat 2021
Mesajlar
106
Excel Vers. ve Dili
Ofis 360 Türkçe
Hocam denedim ilk satır için toplamı 38 getirdi.. 32 olması gerekiyordu aradaki boşluğu geçmemiş.. Ben 20. satıra göre yaptım hocam toplam=20 den baslasın dedım ama olmadı..
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Dosyanızda Toplamın yazılacağı hücrelerde birçok boşluk karakteri olduğu için ben kodu "eğer hücre sayıya toplama ekle değilse alttaki hücrelerin toplamını o hücreye yaz" diye ayarlamıştım. Eğer 38 verdiyse ikinci toplam hücresinde boşluklar yoktur, hücre tamamen boştur.

Toplam yazılacak hücreler orjinalde boş mu yoksa boşluk gibi karakterler mi var?
 
Katılım
22 Şubat 2021
Mesajlar
106
Excel Vers. ve Dili
Ofis 360 Türkçe
Hocam öncelikle çok teşekkür ederim, şöyle K sütununda bir boşluk var değer yok içinde sonra tekrar bir boşluk var ve başka değerler yazıyor. Ben silip tekrar denediğim için boşluk kalmış olabilir orjinalinde hiçbir şey yok hocam boş..
 

Korhan Ayhan

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

C++:
Option Explicit

Sub Topla()
    Dim Veri As Range
    
    Columns("K:K").Replace What:=" ", Replacement:="", LookAt:=xlPart
    
    For Each Veri In Range("K20:K" & Cells(Rows.Count, "K").End(3).Row).SpecialCells(xlCellTypeConstants, 23).Areas
        If Veri.Cells(1, 1).Offset(-1).Row > 20 Then
            Veri.Cells(1, 1).Offset(-1) = WorksheetFunction.Sum(Veri)
        End If
    Next
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Katılım
22 Şubat 2021
Mesajlar
106
Excel Vers. ve Dili
Ofis 360 Türkçe
Hocam denedim sadece k21 ile 32 arasını toplamadı orayı almadan diğer boşluktan devam etti sanırım..
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,331
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Toplam alınacak hücrelerin boş olması gerekir.
 
Üst