Soru Compile Error:Ambiguous name detected:Worksheet_Change

MESUT K

Altın Üye
Katılım
26 Nisan 2019
Mesajlar
221
Excel Vers. ve Dili
İş'te:Excel 2016 eng
Ev'de:Excel 2013 tr
Altın Üyelik Bitiş Tarihi
29-04-2025
Herkese Selamlar
Aşağıdaki kod düzeninde;
"Private Sub Worksheet_Change(ByVal Target As Range)" olmak üzere iki ayrı chance dizilimi var.
Bu kodları tek "Private Sub Worksheet_Change(ByVal Target As Range)" altında birleştiremediğim için aşağıdaki gibi hata alıyorum
215420

Aşağıdaki kod düzenini tek "Private Sub Worksheet_Change(ByVal Target As Range)" altında birleştirilmesi için yardım istiyorum.
Saygılarımla

********************KODLAR**************************
'SATIR GİZLEME'
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [Q1]) Is Nothing Then Exit Sub
If [Q1] = "ada" Then
Rows("4:19").EntireRow.Hidden = False
Rows("20:41").EntireRow.Hidden = True
Rows("42:55").EntireRow.Hidden = True
Rows("56:71").EntireRow.Hidden = True
Rows("73:109").EntireRow.Hidden = False
ElseIf [Q1] = "parsel" Then
Rows("4:19").EntireRow.Hidden = True
Rows("20:41").EntireRow.Hidden = False
Rows("42:55").EntireRow.Hidden = True
Rows("56:71").EntireRow.Hidden = True
Rows("73:109").EntireRow.Hidden = False
End If

'OTOMATİK İSİM TARAMA'
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then
If Not UserForm1.ListBox1.Tag = "off" Then Exit Sub
If Intersect(Target, Range("W88")) Is Nothing Then Exit Sub
Dim deger As Range
sayac = 0
derlenen = Target.Address
bakilan = UCase(Replace(Replace(Target.Value, "i", "İ"), "ı", "I"))
For Each deger In Sheets("VERITABANI").Range("C295:C494")
If Not IsEmpty(deger.Value) And Left(deger.Value, Len(bakilan)) = bakilan Then
sayac = sayac + 1
sonuc = deger.Value
If sayac = 1 Then
UserForm1.ListBox1.Clear
End If
UserForm1.ListBox1.AddItem deger.Value
End If
Next
If sayac > 1 Then
UserForm1.Tag = derlenen
UserForm1.Caption = "Birden Cok Uygun Kayit Var, Lutfen Birini Seciniz"
UserForm1.ListBox1.Tag = "off"
UserForm1.Show
UserForm1.ListBox1.Tag = ""
ElseIf sayac = 1 Then
UserForm1.ListBox1.Tag = "off"
Range(derlenen) = sonuc
Else
UserForm1.ListBox1.Tag = "off"
bakilan = ""
sayac = 0
For Each deger In Sheets("VERITABANI").Range("C295:C494")
If Not IsEmpty(deger.Value) And Left(deger.Value, Len(bakilan)) = bakilan Then
sayac = sayac + 1
sonuc = deger.Value
If sayac = 1 Then
UserForm1.ListBox1.Clear
End If
UserForm1.ListBox1.AddItem deger.Value
End If
Next
UserForm1.Tag = derlenen
UserForm1.Caption = "Uygun Kayit Bulunamadi, Lutfen Listeden Birini Seciniz"
Range(derlenen) = ""
UserForm1.Show
End If
Else
UserForm1.ListBox1.Tag = ""
End If
End Sub
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Aşağıdaki gibi deneyin. Hata verirse örnek dosya paylaşın ki kodu deneyip hatayı görebilelim:

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
'OTOMATİK İSİM TARAMA'
If Target.Cells.Count > 1 Then
    If Not UserForm1.ListBox1.Tag = "off" Then Exit Sub
    If Intersect(Target, Range("W88")) Is Nothing Then GoTo 10
    Dim deger As Range
    sayac = 0
    derlenen = Target.Address
    bakilan = UCase(Replace(Replace(Target.Value, "i", "İ"), "ı", "I"))
    For Each deger In Sheets("VERITABANI").Range("C295:C494")
        If Not IsEmpty(deger.Value) And Left(deger.Value, Len(bakilan)) = bakilan Then
            sayac = sayac + 1
            sonuc = deger.Value
            If sayac = 1 Then
                UserForm1.ListBox1.Clear
            End If
            UserForm1.ListBox1.AddItem deger.Value
        End If
    Next
    If sayac > 1 Then
        UserForm1.Tag = derlenen
        UserForm1.Caption = "Birden Cok Uygun Kayit Var, Lutfen Birini Seciniz"
        UserForm1.ListBox1.Tag = "off"
        UserForm1.Show
        UserForm1.ListBox1.Tag = ""
    ElseIf sayac = 1 Then
        UserForm1.ListBox1.Tag = "off"
        Range(derlenen) = sonuc
    Else
        UserForm1.ListBox1.Tag = "off"
        bakilan = ""
        sayac = 0
        For Each deger In Sheets("VERITABANI").Range("C295:C494")
            If Not IsEmpty(deger.Value) And Left(deger.Value, Len(bakilan)) = bakilan Then
                sayac = sayac + 1
                sonuc = deger.Value
                If sayac = 1 Then
                    UserForm1.ListBox1.Clear
                End If
                UserForm1.ListBox1.AddItem deger.Value
            End If
        Next
        UserForm1.Tag = derlenen
        UserForm1.Caption = "Uygun Kayit Bulunamadi, Lutfen Listeden Birini Seciniz"
        Range(derlenen) = ""
        UserForm1.Show
    End If
Else
    UserForm1.ListBox1.Tag = ""
End If

'SATIR GİZLEME'
10:
If Intersect(Target, [Q1]) Is Nothing Then Exit Sub
If [Q1] = "ada" Then
    Rows("4:19").EntireRow.Hidden = False
    Rows("20:41").EntireRow.Hidden = True
    Rows("42:55").EntireRow.Hidden = True
    Rows("56:71").EntireRow.Hidden = True
    Rows("73:109").EntireRow.Hidden = False
ElseIf [Q1] = "parsel" Then
    Rows("4:19").EntireRow.Hidden = True
    Rows("20:41").EntireRow.Hidden = False
    Rows("42:55").EntireRow.Hidden = True
    Rows("56:71").EntireRow.Hidden = True
    Rows("73:109").EntireRow.Hidden = False
End If
End Sub
 

MESUT K

Altın Üye
Katılım
26 Nisan 2019
Mesajlar
221
Excel Vers. ve Dili
İş'te:Excel 2016 eng
Ev'de:Excel 2013 tr
Altın Üyelik Bitiş Tarihi
29-04-2025
Örnek hata vermiyor.Şuan verdiğiniz kodu uyguladığımda satır gizleme çalışıyor ,otomatik isim tarama çalışmıyor
 

MESUT K

Altın Üye
Katılım
26 Nisan 2019
Mesajlar
221
Excel Vers. ve Dili
İş'te:Excel 2016 eng
Ev'de:Excel 2013 tr
Altın Üyelik Bitiş Tarihi
29-04-2025
Örnek dosyada
Private Sub Worksheet_Change(ByVal Target As Range) altında

*OTOMATİK İSİM BULMA
*SATIR GİZLEME
*RENKLENDİRME

olmak üzere kod dizisi var.Kodların Dosyanın Giriş yazan sekmesinde 3 işlevin çalışma yerleri bellidir.

Şuan sadece satır gizleme işlevi çalışmaktadır.Diğer iki işlev çalışmamaktadır

örnek dosya ektedir

link:https://dosya.co/1qwhm55j18wm/dosya.xlsm.html
 

Ekli dosyalar

MESUT K

Altın Üye
Katılım
26 Nisan 2019
Mesajlar
221
Excel Vers. ve Dili
İş'te:Excel 2016 eng
Ev'de:Excel 2013 tr
Altın Üyelik Bitiş Tarihi
29-04-2025
Aşağıdaki 2 ayrı olayı tek change altında çalıştıramadım.Aşağıdaki kod diziliminde 'OTOMATİK İSİM TARAMA' çalışıyor,'SATIR GİZLEME' çalışmıyor

Yardım istiyorum

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
'OTOMATİK İSİM TARAMA'
If Target.Cells.Count > 1 Then
    If Not UserForm1.ListBox1.Tag = "off" Then Exit Sub
    If Intersect(Target, Range("W88")) Is Nothing Then GoTo 10
    Dim deger As Range
    sayac = 0
    derlenen = Target.Address
    bakilan = UCase(Replace(Replace(Target.Value, "i", "İ"), "ı", "I"))
    For Each deger In Sheets("VERITABANI").Range("C295:C494")
        If Not IsEmpty(deger.Value) And Left(deger.Value, Len(bakilan)) = bakilan Then
            sayac = sayac + 1
            sonuc = deger.Value
            If sayac = 1 Then
                UserForm1.ListBox1.Clear
            End If
            UserForm1.ListBox1.AddItem deger.Value
        End If
    Next
    If sayac > 1 Then
        UserForm1.Tag = derlenen
        UserForm1.Caption = "Birden Cok Uygun Kayit Var, Lutfen Birini Seciniz"
        UserForm1.ListBox1.Tag = "off"
        UserForm1.Show
        UserForm1.ListBox1.Tag = ""
    ElseIf sayac = 1 Then
        UserForm1.ListBox1.Tag = "off"
        Range(derlenen) = sonuc
    Else
        UserForm1.ListBox1.Tag = "off"
        bakilan = ""
        sayac = 0
        For Each deger In Sheets("VERITABANI").Range("C295:C494")
            If Not IsEmpty(deger.Value) And Left(deger.Value, Len(bakilan)) = bakilan Then
                sayac = sayac + 1
                sonuc = deger.Value
                If sayac = 1 Then
                    UserForm1.ListBox1.Clear
                End If
                UserForm1.ListBox1.AddItem deger.Value
            End If
        Next
        UserForm1.Tag = derlenen
        UserForm1.Caption = "Uygun Kayit Bulunamadi, Lutfen Listeden Birini Seciniz"
        Range(derlenen) = ""
        UserForm1.Show
    End If
Else
    UserForm1.ListBox1.Tag = ""
End If

'SATIR GİZLEME'
10:
If Intersect(Target, [Q1]) Is Nothing Then Exit Sub
If [Q1] = "ada" Then
    Rows("4:19").EntireRow.Hidden = False
    Rows("20:41").EntireRow.Hidden = True
    Rows("42:55").EntireRow.Hidden = True
    Rows("56:71").EntireRow.Hidden = True
    Rows("73:109").EntireRow.Hidden = False
ElseIf [Q1] = "parsel" Then
    Rows("4:19").EntireRow.Hidden = True
    Rows("20:41").EntireRow.Hidden = False
    Rows("42:55").EntireRow.Hidden = True
    Rows("56:71").EntireRow.Hidden = True
    Rows("73:109").EntireRow.Hidden = False
End If
End Sub
 

MESUT K

Altın Üye
Katılım
26 Nisan 2019
Mesajlar
221
Excel Vers. ve Dili
İş'te:Excel 2016 eng
Ev'de:Excel 2013 tr
Altın Üyelik Bitiş Tarihi
29-04-2025
kod sıralamasını şu şekilde düzenleyince çalıştı

--------------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
'SATIR GİZLEME'

If Intersect(Target, [Q1]) Is Nothing Then GoTo 10
If [Q1] = "ada" Then
Rows("4:19").EntireRow.Hidden = False
Rows("20:41").EntireRow.Hidden = True
Rows("42:55").EntireRow.Hidden = True
Rows("56:71").EntireRow.Hidden = True
Rows("73:109").EntireRow.Hidden = False
ElseIf [Q1] = "parsel" Then
Rows("4:19").EntireRow.Hidden = True
Rows("20:41").EntireRow.Hidden = False
Rows("42:55").EntireRow.Hidden = True
Rows("56:71").EntireRow.Hidden = True
Rows("73:109").EntireRow.Hidden = False
End If
10:

'OTOMATİK İSİM TARAMA'
If Target.Cells.Count > 1 Then
If Not UserForm1.ListBox1.Tag = "off" Then Exit Sub
If Intersect(Target, Range("W88")) Is Nothing Then Exit Sub
Dim deger As Range
sayac = 0
derlenen = Target.Address
bakilan = UCase(Replace(Replace(Target.Value, "i", "İ"), "ı", "I"))
For Each deger In Sheets("VERITABANI").Range("C295:C494")
If Not IsEmpty(deger.Value) And Left(deger.Value, Len(bakilan)) = bakilan Then
sayac = sayac + 1
sonuc = deger.Value
If sayac = 1 Then
UserForm1.ListBox1.Clear
End If
UserForm1.ListBox1.AddItem deger.Value
End If
Next
If sayac > 1 Then
UserForm1.Tag = derlenen
UserForm1.Caption = "Birden Cok Uygun Kayit Var, Lutfen Birini Seciniz"
UserForm1.ListBox1.Tag = "off"
UserForm1.Show
UserForm1.ListBox1.Tag = ""
ElseIf sayac = 1 Then
UserForm1.ListBox1.Tag = "off"
Range(derlenen) = sonuc
Else
UserForm1.ListBox1.Tag = "off"
bakilan = ""
sayac = 0
For Each deger In Sheets("VERITABANI").Range("C295:C494")
If Not IsEmpty(deger.Value) And Left(deger.Value, Len(bakilan)) = bakilan Then
sayac = sayac + 1
sonuc = deger.Value
If sayac = 1 Then
UserForm1.ListBox1.Clear
End If
UserForm1.ListBox1.AddItem deger.Value
End If
Next
UserForm1.Tag = derlenen
UserForm1.Caption = "Uygun Kayit Bulunamadi, Lutfen Listeden Birini Seciniz"
Range(derlenen) = ""
UserForm1.Show
End If
Else
UserForm1.ListBox1.Tag = ""
End If
End Sub
 

berkayDmn

Altın Üye
Katılım
25 Mayıs 2019
Mesajlar
6
Excel Vers. ve Dili
excel 365 türkce
Altın Üyelik Bitiş Tarihi
15-09-2025
Merhaba;

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A66:A1030]) Is Nothing Then Exit Sub
sat = "A" & Target.Row & ":AH" & Target.Row
Select Case Target
Case "": Range(sat).Interior.ColorIndex = 0
Case Is = "10USD": Range(sat).Interior.ColorIndex = 15
Case Is = "10TL": Range(sat).Interior.ColorIndex = 16
Case Is = "9USD": Range(sat).Interior.ColorIndex = 15
Case Is = "9TL": Range(sat).Interior.ColorIndex = 16
Case Is = "8USD": Range(sat).Interior.ColorIndex = 15
Case Is = "8TL": Range(sat).Interior.ColorIndex = 16
Case Is = "7USD": Range(sat).Interior.ColorIndex = 15
Case Is = "7TL": Range(sat).Interior.ColorIndex = 16
Case Is = "6USD": Range(sat).Interior.ColorIndex = 15
Case Is = "6TL": Range(sat).Interior.ColorIndex = 16
Case Is = "5USD": Range(sat).Interior.ColorIndex = 15
Case Is = "5TL": Range(sat).Interior.ColorIndex = 16
Case Is = "4USD": Range(sat).Interior.ColorIndex = 15
Case Is = "4TL": Range(sat).Interior.ColorIndex = 16
Case Is = "3USD": Range(sat).Interior.ColorIndex = 15
Case Is = "3TL": Range(sat).Interior.ColorIndex = 16
Case Is = "2USD": Range(sat).Interior.ColorIndex = 15
Case Is = "2TL": Range(sat).Interior.ColorIndex = 16
Case Is = "1USD": Range(sat).Interior.ColorIndex = 15
Case Is = "1TL": Range(sat).Interior.ColorIndex = 16


End Select

End Sub

'Dim Eski_Değer

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Satır = WorksheetFunction.CountA(Sheets("YEDEK").Range("A:A")) + 1
Sheets("YEDEK").Cells(Satır, 1) = Satır - 1
Sheets("YEDEK").Cells(Satır, 2) = Date
Sheets("YEDEK").Cells(Satır, 3) = Time
Sheets("YEDEK").Cells(Satır, 4) = Application.UserName
Sheets("YEDEK").Cells(Satır, 5) = ActiveSheet.Name & "!" & Target.Address(1, 1)
Sheets("YEDEK").Cells(Satır, 6) = IIf(Eski_Değer = "", "Boş Hücre", Eski_Değer)
Sheets("YEDEK").Cells(Satır, 7) = IIf(Target = "", "Değer Silindi !", Target)
Sheets("YEDEK").Cells.EntireColumn.AutoFit
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Eski_Değer = Target
End Sub


burada hata alıyorum yardımcı olabilirmisiniz ?
 
Üst