• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Soru Aktif Satırdaki Son Dolu Sütuna Gitmek

Katılım
20 Kasım 2009
Mesajlar
89
Excel Vers. ve Dili
MS Office 2016 TR
Merhaba, birçok satır olan bir tablo düşünün sağa doğru 71 adet sütun var. Benim yapmak istediğim, aktif seçili olan satırın 71.ci hücresini seçtirmektir. Bu konuda yardımcı olabilirseniz çok sevinirim. Burada önemli olan o an aktif seçili olan satırın 71.ci sütununu seçtirmek. Şimdiden teşekkürler.
 
Merhaba,

İstediğiniz bu mu?
Kod:
Sub test()
    Cells(71, ActiveCell.Column).Select
End Sub
 
Sizin kodla aktif hücrenin 71.satırına gitti. Benim istediğim aktif satırın 71.sütununa gitmesini istiyorum. Örnek verecek olursam o an A14 aktif ise 71.sütunun 14.satırına gitmesini istiyorum. Eğer A20 seçili ise 71.sütunun 20.satırına gitmesini istiyorum.
 
Niye o hücreyi seçmek istiyorsunuz?
 
Bir hücre ile ilgili işlem yapmak için seçmenize gerek yok.
 
Bir hücre ile ilgili işlem yapmak için seçmenize gerek yok.
Yaptığımın daha kolay yolu varsa tarif ederseniz sevinirim. Aslında tam olarak şöyle, Userform üzerinde listbox var, listbox üzerinde ki bir satırı seçtiğimde ilgili satırı excel sayfası üzerinde A sütununda seçiyor. Bu seçtiği hücreye bir bilgi yazıyor sonrada aynı satırın son (71.sütununa) başka bir bilgi yazmasını istiyorum. O yüzden önce seçtirip sonrada seçtiği aktif hücereye bilgiyi yazdırıyorum.

NOT: Listbox üzerinde hangi satırı seçersem sayfada da onunla ilgili satırı seçtiği içinsabit bir hücre değil değişken o yüzden biraz bu yolu seçtim.
 
Belirtildiği gibi hücreye veri girmek için seçmeye gerek yoktur. Hangi hücreyi seçeceğini bilen makro hangi hücreye veri gireceğini de bilir doğal olarak.

Kodlarınızda

abc.select

gibi bir satırla veri girilecek hücreyi seçiyorsuınuzdur. Bunun yerine

abc = "def"

şeklinde o hücreye doğrudan veri yazdırabilirsiniz.

71. sütun için ise

abc.offset(0,70) = "mno"

şeklinde kodu düzenleyebilirsiniz.
 
Belirtildiği gibi hücreye veri girmek için seçmeye gerek yoktur. Hangi hücreyi seçeceğini bilen makro hangi hücreye veri gireceğini de bilir doğal olarak.

Kodlarınızda

abc.select

gibi bir satırla veri girilecek hücreyi seçiyorsuınuzdur. Bunun yerine

abc = "def"

şeklinde o hücreye doğrudan veri yazdırabilirsiniz.

71. sütun için ise

abc.offset(0,70) = "mno"

şeklinde kodu düzenleyebilirsiniz.
Söylediğiniz anladım fakat yapamadım :)
Range("BS").Offset(0, 70) = "ms" bu şekilde yaptım fakat hata verdi
 
Range("BS") dediğiniz nedir, BS sütunu mu yoksa bir değişken mi? Bu şekilde kullanılıyorsa yani BS sütunuysa satırın da belirtilmesi gerekir.

Kodunuz önceden Range("BS") = "ab" şeklinde miydi? (Muhtemelen değildir, bir şeyleri eksik yapmışsınızdır.

Tam çözüm için örnek dosya paylaşmanız iyi olur.
 
Range("BS") dediğiniz nedir, BS sütunu mu yoksa bir değişken mi? Bu şekilde kullanılıyorsa yani BS sütunuysa satırın da belirtilmesi gerekir.

Kodunuz önceden Range("BS") = "ab" şeklinde miydi? (Muhtemelen değildir, bir şeyleri eksik yapmışsınızdır.

Tam çözüm için örnek dosya paylaşmanız iyi olur.
Hücreyi seçtirerek veri yazdırdığım kodlar bu şekildeydi. BS sütunun ismi bu arada

Private Sub CommandButton2_Click()
Sheets("SiparisListesi").Select
If MsgBox("Muhasebe-2 kaydı yapıldı olarak işaretlenecek" & vbCrLf & vbCrLf & "Devam edilsin mi?", vbQuestion + vbYesNo) = vbYes Then
ActiveCell.Offset(0, 70).Select
ActiveCell.Value = "MK2"
End If
End Sub
 
Burda activecell'i nasıl seçtirdiğiniz önemli. Yazdıklarımı tekrar okursanız anlayabileceğinizi düşünüyorum. Yani "Şu hücreyi seç" yerine "Şu hücreye şunu yaz" diyebiliyoruz.
 
Burda activecell'i nasıl seçtirdiğiniz önemli. Yazdıklarımı tekrar okursanız anlayabileceğinizi düşünüyorum. Yani "Şu hücreyi seç" yerine "Şu hücreye şunu yaz" diyebiliyoruz.
Yusuf bey merhaba,

Cells(ActiveCell.Row, 71) = "MK2"

Bu şekilde yapınca oldu. Seç sonra da seçtiğin yere yaz yerine bu şekilde tek satır ile yapılabiliyor. İlginiz için teşekkür ederim.
 
Sonuçta burda da bir seçim yapmış oluyorsunuz ama.

Anlatmak istediğimiz o seçimi de yapmadan işlem yapabilirsiniz.
 
Sonuçta burda da bir seçim yapmış oluyorsunuz ama.

Anlatmak istediğimiz o seçimi de yapmadan işlem yapabilirsiniz.
Söylediğinizi şimdi anladım. Fakat, ben aktarılacak bilgiyi listbox üzerinde seçtiğim satıra göre aktardığım için her şekilde seçim yaptırmam gerekmiyor mu? Listboxa tıkladığımda sayfada ilgili satırı Range("A" & ListBox1.ListIndex + 1).Select bu kod ile seçtiriyorum. Sonra da seçili olan satırın 71.sütununa "MK2" bilgisini yazdırıyorum. Bilgi aktaracağım yer değişken olduğu için seçtirmek zorunda kalıyorum. Bu mantıkta düşündüğünüzde seçtirmeden bilgi girmeyi nasıl yaparım bilemiyorum.
 
Range("A" & ListBox1.ListIndex + 1).Offset(0,70) = "MK2"

Olabilir.

Ya da 71. sütun sabit olduğundan yani BS sütunu olduğundan:

Range("BS" & ListBox1.ListIndex + 1)="MK2"

Olabilir.
 
Range("A" & ListBox1.ListIndex + 1).Offset(0,70) = "MK2"

Olabilir.

Ya da 71. sütun sabit olduğundan yani BS sütunu olduğundan:

Range("BS" & ListBox1.ListIndex + 1)="MK2"

Olabilir.

Evet söylediğiniz gibi oldu teşekkürler sayenizde bir şey daha öğrendim. İzninizle bir şey sormak istiyorum 2 ayrı buton ile aktarım yapıyordum bu şekilde tek buton ile yapabileceğimi düşünüyorum ama yöntemini bilmiyorum. Şöyleki; Listboxa göre 1.sütuna textbox11 değerini 71.sütuna da textbox12 değerini atamak istiyorum aşağıdaki gibi yazınca olmadı yardımcı olabilir misiniz?

Range("A" & ListBox1.ListIndex + 1).Offset(0, 0) = TextBox11.Value
Range("A" & ListBox1.ListIndex + 1).Offset(0, 70) = TextBox12.Value
 
İlk hücre için offset kısmını kullanmadan dener misiniz?

Range("A" & ListBox1.ListIndex + 1)= TextBox11.Value

Kod yazımında bir hata görünmüyor.
 
Geri
Üst