aktif hücre dolu ise sonraki hücreye kayıt

Katılım
14 Kasım 2004
Mesajlar
297
Excel Vers. ve Dili
microsoft office professional plus 2016
bir userform üzerinde 2 adet textbox ve bir adet commandbutton var. textbox1 deki değeri veri isimli sayfanın a1 sutununa textbox2 deki değeri de veri isimli sayfanın b1 sutununa yazdırmak istiyorum ama eğer a1 hücresi doluysa a2 ye, a2 hücresi doluysa a3 yazdırmasını yine texbox2 deki değeri de veri sayfasındaki b1 hücresi doluysa b2 ye, b2 hücresi doluysa b3 yazdırmasını istiyorum activecell.offseti denedim yapamadım üzerine yazıyor sanırım do while not koşuluyla yazılaması gerekiyor ama beceremedim yardımlarınızı bekliyorum. iyi bayramlar
 

Ayhan Ercan

Özel Üye
Katılım
10 Ağustos 2005
Mesajlar
1,573
Excel Vers. ve Dili
Microsoft 365- Türkçe
Merhaba

Bunun için Do while Loop döngüsüne gerek yokki..
Siz bunun illa "Do while loop" döngüsü ile yapılmasını mı istiyorsunuz
 

Ayhan Ercan

Özel Üye
Katılım
10 Ağustos 2005
Mesajlar
1,573
Excel Vers. ve Dili
Microsoft 365- Türkçe
Do while Loop döngüsü için örnek bir kod..

Kendinize uyarlamaya çalışın....

Kod:
Private Sub CommandButton1_Click()
[a1].Activate
Do While Not ActiveCell = Empty
ActiveCell.Offset(1, 0).Activate
Loop
ActiveCell = TextBox1
End Sub
 
Katılım
14 Kasım 2004
Mesajlar
297
Excel Vers. ve Dili
microsoft office professional plus 2016
ayhan bey teşekkür ederim
peki başka yolu varmı veya daha basit yolu
 
Katılım
14 Kasım 2004
Mesajlar
297
Excel Vers. ve Dili
microsoft office professional plus 2016
hata

Ahyan bey
örnek dosyadan da anlaşılacağı üzere sizin vermiş olduğunuz kodları yerleştirdim ancak textbox1 deki verileri kaydediyor ama textbox2 deki verileri kaydetmiyor bi ilgilernirseniz memnun olurum.
 

Ekli dosyalar

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,470
Excel Vers. ve Dili
Office 2010 & 2013 tr
Kod:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Sheets("plaka").Select
Sat = [a65536].End(3).Row + 1
Sat2 = [b65536].End(3).Row + 1
Cells(Sat, "a") = TextBox1
Cells(Sat2, "b") = TextBox2
Sheets("giriş").Select
End Sub
Farklı bir metod... Alternatif olarak düşünülebilir. Kod her iki tektbox için düzenlendi...
 

Ekli dosyalar

Ayhan Ercan

Özel Üye
Katılım
10 Ağustos 2005
Mesajlar
1,573
Excel Vers. ve Dili
Microsoft 365- Türkçe
Sayın leumruk çözüme gidecek yolun (bana göre en basitini) sunmuş..

Ancak ben yinede Sayfaları seçmeden bunun yapılmasını daha sade buluyorum. Aşağıdaki kodu alternatif olarak düşünebilirsiniz...

Kod:
Private Sub CommandButton1_Click()
Dim son As Long, son2 As Long
With Sheets("plaka")
    son = .[A65536].End(3).Row + 1
    son2 = .[B65536].End(3).Row + 1
    .Cells(son, 1) = TextBox1.Value
    .Cells(son2, 2) = TextBox2.Value
End With
MsgBox "Kayıt İşlemi tamamdır", vbInformation, "KAYIT"
TextBox1 = ""
TextBox2 = ""
TextBox1.SetFocus
End Sub
 
Üst