Döngü Oluşturma

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
403
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
26-10-2028
merhabalar kullanmakta olduğum dosyamda boş satır ekleme makrosu var herhangi bir yanlışlığa sebebiyet vermemek için butonla en alta boş bir satır ekleyerek o satırda sonlardaki sütun yani tutar sütunu dolmadan yeni satır ekleyemiyorum.
alttaki makroda ise son satırda hangi hücre boş ise beni o boş hücreye götürmekte ama burada B-Z Sütunların neredeyse tamamı için alttaki kodu uygulamam lazım.
bunu nasıl bir döngü haline getirip daha az bir kodla çözebiliriz.


birde son_satır benim en alttaki son boş satırım.
mesela B sütununda 80 satır varsa, 50. satır ve 80. satır boş ise önce beni 50. boş satıra götürüp oraya gerekli bilgileri girdikten sonra boş satır eklemeye çalıştığımda bu sefer en alttaki boş satıra götürmesi çok daha işime yarayabilir ama onu yapamadım bir türlü konuyla ilgili yardımlarınızı bekliyorum çok teşekkür ederim


If Range("B" & son_satır) = "" Then
HataMesajı "B Sütunu Boş Bilgi Giriniz.."
Application.EnableEvents = True
Range("B" & son_satır).Select
GoTo devam:
End If

If Range("C" & son_satır) = "" Then
HataMesajı "C Sütunu Boş Bilgi Giriniz.."
Application.EnableEvents = True
Range("C" & son_satır).Select
GoTo devam:
End If
 

hmtstc

Altın Üye
Katılım
20 Şubat 2014
Mesajlar
313
Excel Vers. ve Dili
Excel 2016 - Türkçe
Altın Üyelik Bitiş Tarihi
10-04-2025
son_satır verisini muhtemelen en dolu sütundan alıyorsunuz, 50. satırı bulmak için for next kullanabilirsiniz

for i = 2 to son_satır
if cells(i,10) = empty then
cells(i,10).select
msgbox i & " numaralı satır"
exit sub
end if
next i


bu şekilde kullanılabilir diye düşünüyorum. ben 10 yazdım sizin için hangi sütunsa o.


B-Z aralığı için de şöyle olabilir, ancak bu kod B-Z deki tüm sütunları kontrol eder, hariç olanlar varsa eklemelisiniz,

C#:
Sub tümünükontrolet()
For j = 2 To 27  ' son sütun numarası
    If j = 8 Or j = 10 Or j = 12 Or j = 15 Then GoTo 100 ' buraya hariç sütun noları eklenir.
    For i = 2 To son_satır
        If Cells(i, j) = Empty Then
            Cells(i, j).Select
            Exit Sub
        End If
    Next i
100
Next j

End Sub
göremediğim için bu kadar yorumlayabildim. umarım iş görür.
 

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
403
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
26-10-2028
son_satır verisini muhtemelen en dolu sütundan alıyorsunuz, 50. satırı bulmak için for next kullanabilirsiniz

for i = 2 to son_satır
if cells(i,10) = empty then
cells(i,10).select
msgbox i & " numaralı satır"
exit sub
end if
next i


bu şekilde kullanılabilir diye düşünüyorum. ben 10 yazdım sizin için hangi sütunsa o.


B-Z aralığı için de şöyle olabilir, ancak bu kod B-Z deki tüm sütunları kontrol eder, hariç olanlar varsa eklemelisiniz,

C#:
Sub tümünükontrolet()
For j = 2 To 27  ' son sütun numarası
    If j = 8 Or j = 10 Or j = 12 Or j = 15 Then GoTo 100 ' buraya hariç sütun noları eklenir.
    For i = 2 To son_satır
        If Cells(i, j) = Empty Then
            Cells(i, j).Select
            Exit Sub
        End If
    Next i
100
Next j

End Sub
göremediğim için bu kadar yorumlayabildim. umarım iş görür.
yardımlarınızdan dolayı çok teşekkür ederim haloldu birşey daha sormak istiyorum.

Son boş satırımı gösteren yine SonSatır
B sütunundan S sütununa son satır tamamen boş ise yine uyarı almak için nasıl bir yol izleyebiliriz. teşekkür ederim
 

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
403
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
26-10-2028
burada yanlış olan şey ne acaba
sütun 1 den büyük 19 dan küçük ise ve son satır boş ise exit sub yap ve BOŞ SATIR MEVCUT mesajı göster.

If Sütun > 1 And Sütun < 19 Then
If SonSatır And Sütun = "" Then
MsgBox (" BOŞ SATIR MEVCUT ")
Exit Sub
End If
End If
 

hmtstc

Altın Üye
Katılım
20 Şubat 2014
Mesajlar
313
Excel Vers. ve Dili
Excel 2016 - Türkçe
Altın Üyelik Bitiş Tarihi
10-04-2025
son satırın boş olup olmadığını bu şekilde kontrol edemezsiniz, burada son satır numarasını kontrol ediyorsunuz üstteki yorumunuzda.
alttaki örneği inceleyiniz, ancak şöyle bir durum var, eğer son satırınız 1 den 19 sütuna kadar komple boş ise anlayamazsınız, ama 1 dolu ve diğerleri boş ise bu işlemi yapmasını istiyorsanız olur.

formülü uyarlayabilirsiniz diye düşünüyorum.

Dim dolu As Integer
dolu = WorksheetFunction.CountA(Range(Cells(sonsatır, 1), Cells(sonsatır, 19)))

if dolu > 0 then
msgbox "Veri var, boş değil"
else
msgbox "son satır boş"
end if
 

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
403
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
26-10-2028
Kod:
    SonSatır = Cells(65000, "B").End(3).Row - 1
     Alan = "B" & SonSatır & ":S" & SonSatır
    DoluSayısı = WorksheetFunction.CountA(Range(Alan))
    If DoluSayısı = 3 Then
        HataMesajı (Satır & "MEVCUT BOŞ SATIRDA İŞLEM YAPMANIZ GEREKMEKTEDİR ..!!")
        Cells(SonSatır, "B").Select
        Exit Sub
    End If

hocam çok teşekkür ederim yukarıda ki kodu kullanarak yapmak istediğim sonuca ulaşabildim ilgi ve yardımlarınızdan dolayı çok teşekkür ederim.
 
Üst