• DİKKAT

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

Kodu Revize Etmek İçin Yardım

Katılım
3 Haziran 2017
Mesajlar
797
Excel Vers. ve Dili
2007, 32
Merhaba Arkadaşlar,

Bir form üzerinde 25 adet Combobox var.
Her biri için seçim yapmak gerekiyor ama bazen ardışık olarak 3'ü 5'i aynı olabiliyor.

Bundan yararlanarak hangisi için seçim yapsam, onu değerini diğerlerine yazacak bir kod yazdım. Bu kodu her bir Combobox'a atamak yerine genel bir kod yazmak mümkün mü? Mümkünse bu kodu formun hangi olayına atmak gerekiyor?



Kod:
Private Sub ComboBox1_Change()
For i = 2 To 25
Controls("ComboBox" & i).Text = ComboBox1.Text
Next i
End Sub

Yoksa aşağıdaki gibi uzun bir kod yazmak gerekiyor.

Kod:
Private Sub ComboBox1_Change()
For i = 2 To 25
Controls("ComboBox" & i).Text = ComboBox1.Text
Next i
End Sub

Private Sub ComboBox2_Change()
For i = 3 To 25
Controls("ComboBox" & i).Text = ComboBox2.Text
Next i
End Sub

Private Sub ComboBox3_Change()
For i = 4 To 25
Controls("ComboBox" & i).Text = ComboBox3.Text
Next i
End Sub

Private Sub ComboBox4_Change()
For i = 5 To 25
Controls("ComboBox" & i).Text = ComboBox4.Text
Next i
End Sub

Private Sub ComboBox5_Change()
For i = 6 To 25
Controls("ComboBox" & i).Text = ComboBox5.Text
Next i
End Sub

Private Sub ComboBox6_Change()
For i = 7 To 25
Controls("ComboBox" & i).Text = ComboBox6.Text
Next i
End Sub

Private Sub ComboBox7_Change()
For i = 8 To 25
Controls("ComboBox" & i).Text = ComboBox7.Text
Next i
End Sub

Private Sub ComboBox8_Change()
For i = 9 To 25
Controls("ComboBox" & i).Text = ComboBox8.Text
Next i
End Sub

Private Sub ComboBox9_Change()
For i = 10 To 25
Controls("ComboBox" & i).Text = ComboBox9.Text
Next i
End Sub
Private Sub ComboBox10_Change()
For i = 11 To 25
Controls("ComboBox" & i).Text = ComboBox10.Text
Next i
End Sub
Private Sub ComboBox11_Change()
For i = 12 To 25
Controls("ComboBox" & i).Text = ComboBox11.Text
Next i
End Sub
Private Sub ComboBox12_Change()
For i = 13 To 25
Controls("ComboBox" & i).Text = ComboBox12.Text
Next i
End Sub
Private Sub ComboBox13_Change()
For i = 14 To 25
Controls("ComboBox" & i).Text = ComboBox13.Text
Next i
End Sub
Private Sub ComboBox14_Change()
For i = 15 To 25
Controls("ComboBox" & i).Text = ComboBox14.Text
Next i
End Sub
Private Sub ComboBox15_Change()
For i = 16 To 25
Controls("ComboBox" & i).Text = ComboBox15.Text
Next i
End Sub
Private Sub ComboBox16_Change()
For i = 17 To 25
Controls("ComboBox" & i).Text = ComboBox16.Text
Next i
End Sub
Private Sub ComboBox17_Change()
For i = 18 To 25
Controls("ComboBox" & i).Text = ComboBox17.Text
Next i
End Sub
Private Sub ComboBox18_Change()
For i = 19 To 25
Controls("ComboBox" & i).Text = ComboBox18.Text
Next i
End Sub
Private Sub ComboBox19_Change()
For i = 20 To 25
Controls("ComboBox" & i).Text = ComboBox19.Text
Next i
End Sub
Private Sub ComboBox20_Change()
For i = 21 To 25
Controls("ComboBox" & i).Text = ComboBox20.Text
Next i
End Sub
Private Sub ComboBox21_Change()
For i = 22 To 25
Controls("ComboBox" & i).Text = ComboBox21.Text
Next i
End Sub
Private Sub ComboBox22_Change()
For i = 23 To 25
Controls("ComboBox" & i).Text = ComboBox22.Text
Next i
End Sub
Private Sub ComboBox24_Change()
ComboBox25.Text = ComboBox24.Text
End Sub
 
Son düzenleme:
Merhaba,

Yapmak istediğini tam anlayamadım ama uzun uzun yazdığın kod aşağıdaki gibi ikinci bir loop içine alarak kısaltılabilir.

Kod:
For j= 2 to 25
   For i = j To 25
   Controls("ComboBox" & i).Text = Controls("ComboBox" & j - 1).Text
   Next i
Next j
 
Merhaba,

Yapmak istediğini tam anlayamadım ama uzun uzun yazdığın kod aşağıdaki gibi ikinci bir loop içine alarak kısaltılabilir.

Kod:
For j= 2 to 25
   For i = j To 25
   Controls("ComboBox" & i).Text = Controls("ComboBox" & j - 1).Text
   Next i
Next j

Teşekkür ederim ilginiz için.
Peki bu kodu nereye atamam lazım? Uzun uzun yazdığım kodların her biri ayrı comboboxa atanmış. Bu nereye atanmalı?

Kısaca; her combobox kendinden sonrakilere kendi değerini yazdırmalı.
 
Combobox i sağ tuşla seçip daha sonra her combobox için atadığın makroyu mu çalıştırıyorsun? Deneme şansım olmadı ama eğer öyle ise seçili combobox in ismini öğrenip isminden numarasını ayrıştırarak bu numaraya dayalı bir loop yazabilirsin. Aşağıdaki gibi bir kod çalışıyor olmalu. Bu kodu ilgili sayfanın makrosuna yazımalı ve sağ tuş ile bir combobox seçtikten sonra çalıştırmalısın.

Kod:
Sub Combobox_Ch()
 
    Dim comboboxno, i As Integer
    comboboxno = Right(Selection.Name, Len(Selection.Name) - 8)
    
    For i = comboboxno + 1 To 25
        Controls("ComboBox" & i).Text = Controls("ComboBox" & comboboxno).Text
    Next i
  
End Sub
 
Combobox i sağ tuşla seçip daha sonra her combobox için atadığın makroyu mu çalıştırıyorsun?

İlginiz için teşekkür ederim.
Combobox'tan bir seçim yaptıktan sonra otomatik olarak diğerlerine kendi değerini yazdırıyor; çünkü kod combobox'un change olayına atanmış.

Kodunuz bence de çalışmalı ancak nereye atanmalı? İlgili sayfanın makrosu derken? Userformun Intilaize veya Actiavite olayına atasak çalışır mı? Diğer kodları denemiştim, çalışmamıştı.
 
Anladım.. Kaynak dosyayı combobox sayısını üçe beşe düşürerek dosya.tc, dosya.co gibi bir siteye yükleme şansın olur mu?
 
Geri
Üst