• DİKKAT

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

Makroyu Harekete geçirmek

Katılım
7 Mart 2009
Mesajlar
32
Excel Vers. ve Dili
Excel 2003 Türkçe
Merhabalar,

Aşağıdaki kod B Hücresi dolu ise A hücresine sıra numarası veriyor. Fakat B hücresine değerler eğerli formülle geldiğinde a sütununa sıra numarası vermiyor. Kod çalışmıyor. B sütununda herhangi bir hücreye F2 tuşuna bastıktan sonra entere bastığımda kod çalışıyor ve a sütunundaki hüsrelere sıra numarası geliyor. F2 ve Enter tuşuna basmadan koda nasıl bir ekleme yapmam gerekli.

Yardımcı olursanız sevinirim.

Saygılarımla.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim s As Long
If Intersect(Target, Range("b4:b65536")) Is Nothing Then Exit Sub
For i = 4 To Range("b65536").End(3).Row
If Cells(i, 2).Value = "" Then
Cells(i, 1).Value = ""
Else
s = s + 1
Cells(i, 1).Value = s
Calculate
End If
Next i
End Sub
 
Sayın Akyürek,
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
kısmını
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
olarak değiştirin.
 
Sayın Akyürek,
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
kısmını
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
olarak değiştirin.

Merhaba
Yeterli olmaz. Aşağıdaki satırıda silin.
Kod:
If Intersect(Target, Range("b4:b65536")) Is Nothing Then Exit Sub
 
Sayın uzmanamele,
o satırın olması ya da olmaması pek birşey ifade etmiyor çünkü
Kod:
If Cells(i, 2).Value = "" Then
Cells(i, 1).Value = ""
satırları hücreleri boşaltırken
Kod:
If Intersect(Target, Range("b4:b65536")) Is Nothing Then Exit Sub
satırı da b sütununda seçilen hücre boşsa makroyu durduruyor dolayısıyla veri yazılmıyor.Sayın Akyürek'in sıkıntısı hücre seçilince kodların çalışmamasıydı.Bunun sebebi de selection olmamasıydı.Hatam varsa düzeltin.
 
Sayın uzmanamele,
o satırın olması ya da olmaması pek birşey ifade etmiyor çünkü
Kod:
If Cells(i, 2).Value = "" Then
Cells(i, 1).Value = ""
satırları hücreleri boşaltırken
Kod:
If Intersect(Target, Range("b4:b65536")) Is Nothing Then Exit Sub
satırı da b sütununda seçilen hücre boşsa makroyu durduruyor dolayısıyla veri yazılmıyor.Sayın Akyürek'in sıkıntısı hücre seçilince kodların çalışmamasıydı.Bunun sebebi de selection olmamasıydı.Hatam varsa düzeltin.

Kodun çalışması için 2 genel şart koşulmuş.
1.si Worksheet_Change ile değişim olunca tetiklenmesi,
2.si değişimin Intersect(Target, Range("b4:b65536")) b sütununda olması.

Worksheet_SelectionChange ile seçim olduğunda tetiklenir ancak bu seçimin yine b sütununda olma şartı aranır.
Bunun için görev alanı sınırlandırmasınıda kaldırmak gerekir.
 
Sayın akyürek'in de istediği B sütunundaki hücrelere tıklayınca kodun çalışması.Zaten bu şekilde olmazsa yani kodlar sınırlandırılmazsa sürekli bir kod akışı olur.Akyürek ilk mesajında

B sütununda herhangi bir hücreye F2 tuşuna bastıktan sonra entere bastığımda kod çalışıyor ve a sütunundaki hüsrelere sıra numarası geliyor. F2 ve Enter tuşuna basmadan koda nasıl bir ekleme yapmam gerekli.
diyerek B sütununda çalışmak istediğini belirtmiş.Ama işin diğer tarafı,asıl sorun selection kısmının yazılı olmamasıydı çünkü selection olmazsa,hangi hücreyi tıklarsanız tıklayın kod çalışmaz.Akyürek'in yaptığı gibi ya F2 ile ya da çift tıklayarak hücreye gireceksiniz,oradan çıkış yaptığınızda kodlar çalışır.Ama selection yazarsanız hücreyi tıklar tıklamaz kodlar çalışır.
 
Geri
Üst