• DİKKAT

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

Sayfa değişimlerinde formdaki comboboxa hatalı veri çekilmesi.

Hakan ERDOST

Destek Ekibi
Destek Ekibi
Katılım
12 Eylül 2004
Mesajlar
885
Excel Vers. ve Dili
Excel 2019 Türkçe (Ev)
Excel 2013 Türkçe (Okul)
Form üzerinde iki combobox ile il ve ilçeleri çekiyorum. ancak formu değştirip başka bir formda işlem yaptıktan sonra ilgili comboboxların bulunduğu forma döndüğümde, comboboxlara son işem yapılan sayfadan veri alıyor.
Kod:
Private Sub ComboBox2_Change()

ComboBox3.Clear
Sheets("İL_İLÇE").Select
    For X = 2 To Cells(65536, "B").End(xlUp).Row
        If Cells(X, "A").Value = ComboBox2.Text Then
            If WorksheetFunction.CountIf(Range("B1:B" & X), Cells(X, "B")) = 1 Then
            ComboBox3.AddItem Cells(X, "B").Value
            End If
        End If
    Next
  
End Sub


Private Sub ComboBox3_Click()

Dim X, S, DHS
On Error Resume Next
Sheets("İL_İLÇE").Select
S = 0
DHS = WorksheetFunction.CountA(Range("B1:B65536"))
    For X = 1 To DHS
            If Range("B" & X) Like ComboBox2 Then
            
            End If
    Next
If S <> 0 Then
Else
End If


End Sub


Private Sub CommandButton1_Click()
Unload Me
UserForm3.Show
End Sub

Private Sub UserForm_Initialize()
Dim X As Long
For X = 2 To Cells(65536, "A").End(xlUp).Row
If WorksheetFunction.CountIf(Range("A1:A" & X), Cells(X, "A")) = 1 Then
ComboBox2.AddItem Cells(X, "A").Value
End If
Next
End Sub
kodlar!...
 
Kodları yazarken SELECT komutunu mümkün olduğunca kullanmayın.

Sayfadaki hücreleri sorgulamak için en iyi yöntem tanımlama yapmaktır.

Sayfa ismini değişkene alıp sonra hücre sorgularında sayfa ismi ile beraber hücre adresini sorgulayın.

Basit bir örnek;

Kod:
Private Sub UserForm_Initialize()
Dim S1 As WorkSheet, X As Long
Set S1 = Sheets("İL_İLÇE")
For X = 2 To S1.Cells(65536, "A").End(xlUp).Row
If WorksheetFunction.CountIf(S1.Range("A1:A" & X), S1.Cells(X, "A")) = 1 Then
ComboBox2.AddItem S1.Cells(X, "A").Value
End If
Next
End Sub
 
Form üzerinde iki combobox ile il ve ilçeleri çekiyorum. ancak formu değştirip başka bir formda işlem yaptıktan sonra ilgili comboboxların bulunduğu forma döndüğümde, comboboxlara son işem yapılan sayfadan veri alıyor.
Kod:
[B]Private Sub ComboBox2_Change()[/B]
ComboBox3.Clear
[B][COLOR="Red"]With Sheets("İL_İLÇE")[/COLOR][/B]
    For X = 2 To [B][COLOR="red"][SIZE="4"].[/SIZE][/COLOR][/B]Cells(65536, "B").End(xlUp).Row
        If [B][COLOR="red"][SIZE="4"].[/SIZE][/COLOR][/B]Cells(X, "A").Value = ComboBox2.Text Then
            If WorksheetFunction.CountIf([B][COLOR="red"][SIZE="4"].[/SIZE][/COLOR][/B]Range("B1:B" & X), [B][COLOR="red"][SIZE="4"].[/SIZE][/COLOR][/B]Cells(X, "B")) = 1 Then
            ComboBox3.AddItem [B][COLOR="red"][SIZE="4"].[/SIZE][/COLOR][/B]Cells(X, "B").Value
            End If
        End If
    Next
[B][COLOR="red"]End With[/COLOR][/B]
[B]End Sub[/B]

.............
.............

[B]Private Sub UserForm_Initialize()[/B]
Dim X As Long
[B][COLOR="Red"]With Sheets("İL_İLÇE")[/COLOR][/B]
For X = 2 To [B][COLOR="red"][SIZE="4"].[/SIZE][/COLOR][/B]Cells(65536, "A").End(xlUp).Row
If WorksheetFunction.CountIf([B][COLOR="red"][SIZE="4"].[/SIZE][/COLOR][/B]Range("A1:A" & X), [B][COLOR="red"][SIZE="4"].[/SIZE][/COLOR][/B]Cells(X, "A")) = 1 Then
ComboBox2.AddItem [B][COLOR="red"][SIZE="4"].[/SIZE][/COLOR][/B]Cells(X, "A").Value
End If
Next
[B][COLOR="red"]End With[/COLOR][/B]
[B]End Sub[/B]
kodlar!...
Alternatif.

Kodlarınızda kırmızı işaretlediğim ve eklediğim kısımlarla (kırmızı NOKTA işaretlerine dikkat) istediğinizin gerçekleşmesi lazım.
Sayfa isimlerini umarım yanlış belirtmedim.
Özetle yapılacak işlem; Combobox'a alınacak verilerin hangi sayfadaki veri olduğunun belirtilmesinden ibaret.
.
 
Korhan Bey, Ömer Bey teşekkürler..
 
Geri
Üst