• DİKKAT

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

Kodu düğmeye atamada hata nereden kaynaklanmaktadır.

  • Konbuyu başlatan Konbuyu başlatan mars2
  • Başlangıç tarihi Başlangıç tarihi

mars2

Altın Üye
Katılım
2 Eylül 2004
Mesajlar
613
Excel Vers. ve Dili
2016 - Türkçe
2019 - Türkçe
İyi Günler;

"Toplam" sayfasının "P" sutundaki toplamı "isimyıltoplam" sayfasındaki C sutundaki isim yanındaki "D" sutuna aşağıdaki makro ile aktarmaktayım.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, [C2:C1900]) Is Nothing Then Exit Sub
If Target.Value = Empty Then Exit Sub
Set s1 = Sheets("İsimyıltoplam"): Set s2 = Sheets("toplam")
For Each bul In s2.Range("C6:C1500")
If bul = Target.Value Then sat = bul.Row
Next
If sat = "" Then
MsgBox "ARADIĞINIZ BİLGİ BULUNAMADI.", vbInformation, "BİLGİ"
Exit Sub
End If

s1.Cells(Target.Row, "D").Value = s2.Cells(sat, "p").Value
Set s1 = Nothing
Set s2 = Nothing

End Sub

Ancak, yukarıdaki makroyu düğmeye uyarlamaya çalıştığımda
If Intersect(Target, Range(SonSat)) Is Nothing Then Exit Sub
range object hatası vermektedir.

Hata nerede nereden kaynaklanmaktadır.

Sub Düğme9_Tıkla()

Dim SonSat As Long

Sheets("İsimyıltoplam").Activate

SonSat = Range("C" & Rows.Count).End(xlUp).Row

If Intersect(Target, Range(SonSat)) Is Nothing Then Exit Sub

If ActiveCell.Column = 3 And Cells(ActiveCell.Row, "C") = "" Then
Exit Sub

Set s1 = Sheets("İsimyıltoplam"): Set s2 = Sheets("toplam")
For Each bul In s2.Range("C6:C1500")
If bul = Target.Value Then sat = bul.Row
Next
End If

If sat = "" Then
MsgBox "ARADIĞINIZ İSİM BULUNAMADI.", vbInformation, "BİLGİ"
Exit Sub
End If

s1.Cells(Target.Row, "D").Value = s2.Cells(sat, "P").Value


End Sub
 
Target sayfa olaylarında kullanılır.

Modül için ActiveCell kullanabilirsiniz.
 
Sayın Korhan Ayhan;
Cevabınız için teşekkürler amacak,
Intersect yer,ne ActiveCell kullanmma rağmen

If ActiveCell(Target, Range(SonSat)) Is Nothing Then satırında,

Method 'Range' of object'_global' failed error 1004 hata vermektedir.
 
Mesajımı dikkatli okuyun lütfen..
 
Sayın Korhan;

İlginize ve ikazınıza teşekkürler.
Konu hakkında yardımcı olursanız sevinirim.
 
Bu kodu bir dene

Kod:
Sub deneme()


a = ActiveWindow.Selection.Row
b = ActiveWindow.Selection.Column

If Intersect(ActiveCell, Range("c2:c1900")) Is Nothing Then Exit Sub

If Cells(a, b).Value = "" Then Exit Sub
Set s1 = Sheets("İsimyıltoplam"): Set s2 = Sheets("toplam")
For Each bul In s2.Range("C6:C1500")


If s2.Cells(bul.Row, bul.Column).Value = s1.Cells(a, b).Value Then sat = bul.Row
Next
If sat = "" Then
MsgBox "ARADIĞINIZ BİLGİ BULUNAMADI.", vbInformation, "BİLGİ"
Exit Sub
End If

s1.Cells(ActiveWindow.Selection.Row, "D").Value = s2.Cells(sat, "p").Value
Set s1 = Nothing
Set s2 = Nothing

End Sub
 
Sayın Halit bey;

Kod için teşekkürler,
Kodu Butona uyguladığım zaman verileri alamadım.
hata ettiğim bir nokta mı var?

"Toplam" Sayfasında 1500 adet veri var.
C Sutunuda isimler mevcut, P sutunda tahsilat toplamları bulunmaktadır.

"İsimyıltoplam" sayfasında ise C sutunda isimler D sutuna ise tahsilat toplamını aktarmak istiyorum.
 
Sizin kodunuz aktif C sutunundaki hücreden çıkınca tek hücre için çalışıyor.
Bu kod da C sürunundaki aktif hücredeyken tek hücre için çalışır.
 
Bu kodu dene
Kod:
Sub deneme2()

Set s1 = Sheets("İsimyıltoplam"): Set s2 = Sheets("toplam")
For r = 2 To s1.Cells(Rows.Count, "c").End(3).Row

For Each bul In s2.Range("C6:C1500")
If bul.Value = s1.Cells(r, "c").Value Then
s1.Cells(r, "D").Value = s2.Cells(bul.Row, "p").Value
Exit For
End If
Next
Next r

Set s1 = Nothing
Set s2 = Nothing

End Sub
 
Son düzenleme:
Sayın hakit3;
İlgi ve cevabınız için teşekkürler
 
Acaba şöyle yazabilirmiyiz? ;)
Rich (BB code):
If bul.Value = s1.Cells(r, "c").Value Then
 
Geri
Üst