- Katılım
- 29 Ocak 2024
- Mesajlar
- 227
- Excel Vers. ve Dili
- Office 2016
Kıymetli Hocalarım selamlar, saygılar.
Bir sayfada C6 hücresinde: Satıcı Kodu, D6 hücresinde :Satıcı Adı yer almakta;
Aşağıdaki kod üzerinde görüneceği üzere Bu iki değer de aslında birbirine bağlı; Katalog adlı sayfadan eşlenen değer getiriliyor.
Burada örneğin C6 hücresinde Satıcı Kodu'nu değiştirince , D6 hücresinde yer alan "Satıcı Adı" da değiştiği için kod tekrar çalışmaya başlıyor,
oysa bu durumda kod çalışmasın, özetle sayfa üzerinden manuel değişklik yaptığım zaman çalışssın, otomatik yapılan değişiklerde kod çalışmasın;
yardımlarınız için şimdiden teşekkürler,
iyi Çalışmalar dilerim.
Bir sayfada C6 hücresinde: Satıcı Kodu, D6 hücresinde :Satıcı Adı yer almakta;
Aşağıdaki kod üzerinde görüneceği üzere Bu iki değer de aslında birbirine bağlı; Katalog adlı sayfadan eşlenen değer getiriliyor.
Burada örneğin C6 hücresinde Satıcı Kodu'nu değiştirince , D6 hücresinde yer alan "Satıcı Adı" da değiştiği için kod tekrar çalışmaya başlıyor,
oysa bu durumda kod çalışmasın, özetle sayfa üzerinden manuel değişklik yaptığım zaman çalışssın, otomatik yapılan değişiklerde kod çalışmasın;
yardımlarınız için şimdiden teşekkürler,
Kod:
Private Const SRC_SHEET As String = "Katalog" ' B:Satıcı Kodu, C:Satıcı Adı
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Me.Range("C6,D6")) Is Nothing Then Exit Sub
Dim SH As Worksheet: On Error Resume Next
Set SH = ThisWorkbook.Worksheets(SRC_SHEET)
On Error GoTo 0
If SH Is Nothing Then
MsgBox "Kaynak sayfa bulunamadı: " & SRC_SHEET, vbCritical
Exit Sub
End If
Application.EnableEvents = False
On Error GoTo done
'' --- Satıcı: Kod -> Ad
If Not Intersect(Target, Me.Range("C6")) Is Nothing Then
If Me.Range("C6").Value = "" Then
Me.Range("D6").ClearContents
Else
Dim r1 As Variant
r1 = Application.Match(Me.Range("C6").Value, SH.Columns("B"), 0) ' B: Satıcı Kodu
If Not IsError(r1) Then Me.Range("D6").Value = SH.Cells(r1, "C").Value ' C: Satıcı Adı
End If
End If
'' --- Satıcı: Ad -> Kod
If Not Intersect(Target, Me.Range("D6")) Is Nothing Then
If Me.Range("D6").Value = "" Then
Me.Range("C6").ClearContents
Else
Dim r2 As Variant
r2 = Application.Match(Me.Range("D6").Value, SH.Columns("C"), 0) ' C: Satıcı Adı
If Not IsError(r2) Then Me.Range("C6").Value = SH.Cells(r2, "B").Value ' B: Satıcı Kodu
End If
End If
End Sub
iyi Çalışmalar dilerim.