• DİKKAT

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

faklı sütunların değişimine göre otomatik işleml

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,677
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
arkadaşlar merhaba aşağıdaki kodda b ve d sütünlarındaki değişikliklere göre tepkiler vermesini istedim ama istediğim gibi çalıştıramadım

kodun nasıl düzeltmek gerekiyor, iyi çalışmalar

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Intersect(Target, [d:d]) Is Nothing Then Exit Sub
For i = 1 To [d1000].End(3).Row
If Len(Cells(i, 4)) = 11 Then
Cells(i, 5) = Cells(i, 4)
Cells(i, 4).Clear
End If
Next i
If Intersect(Target, [b:b]) Is Nothing Then Exit Sub
For k = 1 To [b1000].End(3).Row
Cells(i, 1) = Cells(i, 1).Row
Cells(i, 3) = "TÜRKİYE"
Next k
Application.ScreenUpdating = True
End Sub
 
arkadaşlar merhaba aşağıdaki kodda b ve d sütünlarındaki değişikliklere göre tepkiler vermesini istedim ama istediğim gibi çalıştıramadım

kodun nasıl düzeltmek gerekiyor, iyi çalışmalar

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Intersect(Target, [d:d]) Is Nothing Then Exit Sub
For i = 1 To [d1000].End(3).Row
If Len(Cells(i, 4)) = 11 Then
Cells(i, 5) = Cells(i, 4)
Cells(i, 4).Clear
End If
Next i
If Intersect(Target, [b:b]) Is Nothing Then Exit Sub
For k = 1 To [b1000].End(3).Row
Cells(i, 1) = Cells(i, 1).Row
Cells(i, 3) = "TÜRKİYE"
Next k
Application.ScreenUpdating = True
End Sub
Niye döngüye giriyorsunuz ki.
Bu, sayfadaki olaylar döngüye girmeden bulunduğu yerde işlem yapmak için yapılmış.Eşyanın tabiatına aykırı.Doğrusu bir anlam veremedim.:cool.
 
Niye döngüye giriyorsunuz ki.
Bu, sayfadaki olaylar döngüye girmeden bulunduğu yerde işlem yapmak için yapılmış.Eşyanın tabiatına aykırı.Doğrusu bir anlam veremedim.:cool.

haklısınız döngüye girmeye gerek yok

biraz uğraşayım, bakalım nasıl yapıcam
 
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
    If Target.Value <> "" Then
        Cells(Target.Row, 1).Value = Target.Row
        Cells(Target.Row, 3).Value = "Türkiye"
    Else
        Cells(Target.Row, 1).Value = ""
        Cells(Target.Row, 3).Value = ""
    End If
End If
If Target.Column = 4 Then
If Len(Target) = 11 Then
        Cells(Target.Row, 5) = Cells(Target.Row, 4)
        Cells(Target.Row, 4).Clear
End If
End If
End Sub

evren bey dediğiniz gibi döngüye girmeden , rahatlıkla yapabildim

bazen kendi kendimizi sıkıntıya sokuyoruz
 
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo son
If Target.Column = 2 Then
    If Target.Value <> "" Then
        Cells(Target.Row, 1).Value = Target.Row
        Cells(Target.Row, 3).Value = "Türkiye"
    Else
        Cells(Target.Row, 1).Value = ""
        Cells(Target.Row, 3).Value = ""
    End If
End If
If Target.Column = 4 Then
If Len(Target) = 11 Then
        Cells(Target.Row, 5) = Cells(Target.Row, 4)
        Cells(Target.Row, 4).Clear
End If
End If
son:
End Sub

yukarıdaki kodu elle hücreye veri girdiğim zaman çalıştırabiliyorum ama kopyala-yapıştır işlemlerinde çalışmıyor, nasıl bir düzeltme yapmak gerekir.
 
yukarıdaki kodu elle hücreye veri girdiğim zaman çalıştırabiliyorum ama kopyala-yapıştır işlemlerinde çalışmıyor, nasıl bir düzeltme yapmak gerekir.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo son
If Target.Column = 2 Then
    If Target.Value <> "" Then
        Cells(Target.Row, 1).Value = Target.Row
        Cells(Target.Row, 3).Value = "Türkiye"
    Else
        Cells(Target.Row, 1).Value = ""
        Cells(Target.Row, 3).Value = ""
    End If
End If
If Target.Column = 4 Then
If Len(Target) = 11 Then
        Cells(Target.Row, 5) = Cells(Target.Row, 4)
        Cells(Target.Row, 4).Clear
End If
End If
son:
End Sub

Yukarıdaki kod bir event(Olay) içine yazılmış.Bu olay sayfada changed olayı.Yani bir hücreye elle bir veri girdiğiniz zaman hücreden çıktığınıda çalışır.Kopyala yapıştırda bu olay tetiklenmiyor.Dolayısı ile bu kodlar çalışmıyor.
Ancak kopyala yapıştırı bir kod bloğu içine (Evente değil.) yazar ve başka kodlarıda yazarak ayni anda kopyala yapıştır yapabilirsiniz ve o kod bloğu içine ne gibi işlemleri yazdıysanız o kodlarda çalışır.Tabii bu bir event olmadığı için bir butona bağlayıp çalıştırabilirsniz veya kısayol tuşuna atarsınız bu kodu veya alt + f8 ile makro penceresini çağırıp çalıştırısınız.:cool:
 
Geri
Üst