combobox gelen aynı isimleri textbox sayfaya kaydetme

netvolxxx

Altın Üye
Katılım
29 Ağustos 2023
Mesajlar
138
Excel Vers. ve Dili
2013 Türkçe
Altın Üyelik Bitiş Tarihi
07-03-2025
merhaba forumda arkadaşın yazdığı kod var onu kullanıyorum şöyle bir ihtiyacım oldu kod kısmında revize nasıl edicem

sayfada belirli yerlerdeki isimleri combobox getiriyor textbox yazdığım seçilen ürüne kayıt yapıyor

sorunum şu sayfada hücrelerde aynı isim var hücre de b28 test10 yazıyor b38 de test10 yazıyor combobox ikiside geliyor fakat sadece textbox ile ilk sıradakine kayıt yapıyor.

kullandığım kodlar


UserForm'un Initialize olayına aşağıdaki kodu ekleyin:

Kod:
Private Sub UserForm_Initialize()
Dim i As Long
For i = 10 To 100 Step 5
If ThisWorkbook.Sheets("Sayfa1").Cells(i, "B").Value <> "" Then
ComboBox1.AddItem ThisWorkbook.Sheets("Sayfa1").Cells(i, "B").Value
End If
Next i
End Sub
Kaydet butonuna (CommandButton1) tıklama olayına aşağıdaki kodu ekleyin:
Kod:
Private Sub CommandButton1_Click()
Dim urunAdi As String
Dim urunSatir As Long
Dim i As Long
Dim bulundu As Boolean
urunAdi = ComboBox1.Value
bulundu = False
For i = 10 To 100 Step 5
If ThisWorkbook.Sheets("Sayfa1").Cells(i, "B").Value = urunAdi Then
urunSatir = i
bulundu = True
Exit For
End If
Next i
If bulundu Then
ThisWorkbook.Sheets("Sayfa1").Cells(urunSatir + 4, "B").Value = TextBox1.Value
MsgBox "Kaydedildi.", vbInformation
Else
MsgBox "Ürün bulunamadı.", vbExclamation
End If
End Sub
 
Son düzenleme:

netvolxxx

Altın Üye
Katılım
29 Ağustos 2023
Mesajlar
138
Excel Vers. ve Dili
2013 Türkçe
Altın Üyelik Bitiş Tarihi
07-03-2025
örnek çalışma sayfası yükledim daha iyi anlaşılması için
 

Ekli dosyalar

md3m1ray

Altın Üye
Katılım
21 Şubat 2024
Mesajlar
45
Excel Vers. ve Dili
Excel 2021
Altın Üyelik Bitiş Tarihi
23-10-2025
örnek çalışma sayfası yükledim daha iyi anlaşılması için
bu kod aynı olan ürün ismlerinin hepsinin açıklamasını aynı anda aynı yapar:

Kod:
Private Sub UserForm_Initialize()
Dim i As Long
For i = 10 To 100 Step 5
If ThisWorkbook.Sheets("Sayfa1").Cells(i, "B").Value <> "" Then
ComboBox1.AddItem ThisWorkbook.Sheets("Sayfa1").Cells(i, "B").Value
End If
Next i
End Sub

Private Sub CommandButton1_Click()
Dim urunAdi As String
Dim urunSatir As Long
Dim i As Long
Dim bulundu As Boolean
urunAdi = ComboBox1.Value
bulundu = False

For i = 10 To 100 Step 5
Do While i < 101
If ThisWorkbook.Sheets("Sayfa1").Cells(i, "B").Value = urunAdi Then
urunSatir = i
ThisWorkbook.Sheets("Sayfa1").Cells(urunSatir + 4, "B").Value = TextBox1.Value
End If
i = i + 5
Loop
MsgBox "Kaydedildi.", vbInformation
Exit For
Next i

End Sub
-------------------------
bu kod ise comboboxta hangi sıradakini seçtiysen sadece onun açıklamasını değiştirir sanırım isteğiniz bu olabilir:

Kod:
Private Sub UserForm_Initialize()
Dim i As Long
For i = 10 To 100 Step 5
If ThisWorkbook.Sheets("Sayfa1").Cells(i, "B").Value <> "" Then
ComboBox1.AddItem ThisWorkbook.Sheets("Sayfa1").Cells(i, "B").Value
End If
Next i
End Sub


Private Sub CommandButton1_Click()
Dim urunAdi As String
Dim urunSatir As Long
urunAdi = ComboBox1.Value

If ThisWorkbook.Sheets("Sayfa1").Cells(((ComboBox1.ListIndex + 2) * 5), "B").Value = urunAdi Then
urunSatir = (ComboBox1.ListIndex + 2) * 5
ThisWorkbook.Sheets("Sayfa1").Cells(urunSatir + 4, "B").Value = TextBox1.Value

MsgBox "Kaydedildi.", vbInformation
End If
End Sub
 

netvolxxx

Altın Üye
Katılım
29 Ağustos 2023
Mesajlar
138
Excel Vers. ve Dili
2013 Türkçe
Altın Üyelik Bitiş Tarihi
07-03-2025
bu kod aynı olan ürün ismlerinin hepsinin açıklamasını aynı anda aynı yapar:

Kod:
Private Sub UserForm_Initialize()
Dim i As Long
For i = 10 To 100 Step 5
If ThisWorkbook.Sheets("Sayfa1").Cells(i, "B").Value <> "" Then
ComboBox1.AddItem ThisWorkbook.Sheets("Sayfa1").Cells(i, "B").Value
End If
Next i
End Sub

Private Sub CommandButton1_Click()
Dim urunAdi As String
Dim urunSatir As Long
Dim i As Long
Dim bulundu As Boolean
urunAdi = ComboBox1.Value
bulundu = False

For i = 10 To 100 Step 5
Do While i < 101
If ThisWorkbook.Sheets("Sayfa1").Cells(i, "B").Value = urunAdi Then
urunSatir = i
ThisWorkbook.Sheets("Sayfa1").Cells(urunSatir + 4, "B").Value = TextBox1.Value
End If
i = i + 5
Loop
MsgBox "Kaydedildi.", vbInformation
Exit For
Next i

End Sub
-------------------------
bu kod ise comboboxta hangi sıradakini seçtiysen sadece onun açıklamasını değiştirir sanırım isteğiniz bu olabilir:

Kod:
Private Sub UserForm_Initialize()
Dim i As Long
For i = 10 To 100 Step 5
If ThisWorkbook.Sheets("Sayfa1").Cells(i, "B").Value <> "" Then
ComboBox1.AddItem ThisWorkbook.Sheets("Sayfa1").Cells(i, "B").Value
End If
Next i
End Sub


Private Sub CommandButton1_Click()
Dim urunAdi As String
Dim urunSatir As Long
urunAdi = ComboBox1.Value

If ThisWorkbook.Sheets("Sayfa1").Cells(((ComboBox1.ListIndex + 2) * 5), "B").Value = urunAdi Then
urunSatir = (ComboBox1.ListIndex + 2) * 5
ThisWorkbook.Sheets("Sayfa1").Cells(urunSatir + 4, "B").Value = TextBox1.Value

MsgBox "Kaydedildi.", vbInformation
End If
End Sub
merhaba ustad bu ikinci verdiğin kod çalışıyor yanlız şöyle bir değişiklik yapmak istedim olmadı b alanı değilde c alanı olarak değiştirdim birde başlangç bitiş 28 to 77 yaptım combobox geliyor fakat kaydet dediğimde bi işlem yapmıyor anlamadım koddaki mantığı

+ 2) * 5), "B bu kodda +2 ne anlamı * 5 step 5 satır atlayarak yazması şekli "b ise kayıt yapılcağı alan değilmi

nerde hata yapıyorum ben
 

md3m1ray

Altın Üye
Katılım
21 Şubat 2024
Mesajlar
45
Excel Vers. ve Dili
Excel 2021
Altın Üyelik Bitiş Tarihi
23-10-2025
burdaki mantık comboxtaki değerin hangi satırda olduğunu bulmak,
sizin dosyada 10 dan başlayıp 5 er 5 er gittiği için bu şekilde yazdım
örneğin combox ta ilk sıradakini seçersen index değeri 0 olduğu için 2 ekleyip 5 ile çarpınca 10. satırda olduğu belirleniyor ikinci seçilirse index 1 oludğu için 2 ekleyip 5 ile çarpılınca 15 oluyor gibi ...
eğer comboboxa aktarılacak değerlerin yerleri değiştiyse ona göre uyarlamak lazım
 

netvolxxx

Altın Üye
Katılım
29 Ağustos 2023
Mesajlar
138
Excel Vers. ve Dili
2013 Türkçe
Altın Üyelik Bitiş Tarihi
07-03-2025
burdaki mantık comboxtaki değerin hangi satırda olduğunu bulmak,
sizin dosyada 10 dan başlayıp 5 er 5 er gittiği için bu şekilde yazdım
örneğin combox ta ilk sıradakini seçersen index değeri 0 olduğu için 2 ekleyip 5 ile çarpınca 10. satırda olduğu belirleniyor ikinci seçilirse index 1 oludğu için 2 ekleyip 5 ile çarpılınca 15 oluyor gibi ...
eğer comboboxa aktarılacak değerlerin yerleri değiştiyse ona göre uyarlamak lazım
üstad çok sağol anladım mantığı düzenlemeyi yaptım tekrardan sağolasın teşekürr ederim....
 

md3m1ray

Altın Üye
Katılım
21 Şubat 2024
Mesajlar
45
Excel Vers. ve Dili
Excel 2021
Altın Üyelik Bitiş Tarihi
23-10-2025
ne demek rica ederim iyi çalışmalar
 

netvolxxx

Altın Üye
Katılım
29 Ağustos 2023
Mesajlar
138
Excel Vers. ve Dili
2013 Türkçe
Altın Üyelik Bitiş Tarihi
07-03-2025
ya biraz erken davrandım galiba mantıkta ilk satırta gelen vereyi kayıt yapınca

28 den başlıyor 477 de bitiyor ben 2 ekleyip *14 yaptım nasıl yazmam gerekiyor...
 

md3m1ray

Altın Üye
Katılım
21 Şubat 2024
Mesajlar
45
Excel Vers. ve Dili
Excel 2021
Altın Üyelik Bitiş Tarihi
23-10-2025
kaçar kaçar gidiyor ya da örnek var mı bakayım
 

netvolxxx

Altın Üye
Katılım
29 Ağustos 2023
Mesajlar
138
Excel Vers. ve Dili
2013 Türkçe
Altın Üyelik Bitiş Tarihi
07-03-2025
dosyayı yükledim örnek
 

Ekli dosyalar

md3m1ray

Altın Üye
Katılım
21 Şubat 2024
Mesajlar
45
Excel Vers. ve Dili
Excel 2021
Altın Üyelik Bitiş Tarihi
23-10-2025
deneyiniz
Kod:
Private Sub UserForm_Initialize()
Dim i As Long
For i = 28 To 77 Step 5
If ThisWorkbook.Sheets("Sayfa1").Cells(i, "C").Value <> "" Then
ComboBox1.AddItem ThisWorkbook.Sheets("Sayfa1").Cells(i, "C").Value
End If
Next i
End Sub


Private Sub CommandButton1_Click()
Dim urunAdi As String
Dim urunSatir As Long
urunAdi = ComboBox1.Value
urunSatir = ((ComboBox1.ListIndex + 6) * 5) - 2
If ThisWorkbook.Sheets("Sayfa1").Cells(urunSatir, "C").Value = urunAdi Then

ThisWorkbook.Sheets("Sayfa1").Cells(urunSatir + 4, "C").Value = TextBox1.Value

MsgBox "Kaydedildi.", vbInformation
End If
End Sub
 

netvolxxx

Altın Üye
Katılım
29 Ağustos 2023
Mesajlar
138
Excel Vers. ve Dili
2013 Türkçe
Altın Üyelik Bitiş Tarihi
07-03-2025
hocam sizleri çok yordum ama yukarda tam yazmıştım 28 den başlıyor 477 de bitiyor .diye kod 77 satıra kadar sorunsuz çalışıyor şunu öğrenmek istiyorum ayrıca +6*5 30 sayısını bulup -2 28 satır bulma anlamdığım bu olay biten satır değişince mantık nerde değişiyor.
 

md3m1ray

Altın Üye
Katılım
21 Şubat 2024
Mesajlar
45
Excel Vers. ve Dili
Excel 2021
Altın Üyelik Bitiş Tarihi
23-10-2025
burdaki mantık comboxtaki değerin hangi satırda olduğunu bulmak,
sizin dosyada 10 dan başlayıp 5 er 5 er gittiği için bu şekilde yazdım
örneğin combox ta ilk sıradakini seçersen index değeri 0 olduğu için 2 ekleyip 5 ile çarpınca 10. satırda olduğu belirleniyor ikinci seçilirse index 1 oludğu için 2 ekleyip 5 ile çarpılınca 15 oluyor gibi ...
eğer comboboxa aktarılacak değerlerin yerleri değiştiyse ona göre uyarlamak lazım
burda yazdığım gibi comboboxın değer aldığı satırı bulmak için

For i = 28 To 77 Step 5
burdaki 77 yi kendinize göre değişitiriniz
 

md3m1ray

Altın Üye
Katılım
21 Şubat 2024
Mesajlar
45
Excel Vers. ve Dili
Excel 2021
Altın Üyelik Bitiş Tarihi
23-10-2025
mesela combobox şöyle olsun:

28. satır = ürünadı1 (combobox ilk eleman 0. index) (0+6)*5-2 = 28
33. satır = ürünadı2 (combobox ikinci eleman 1. index) (1+6)*5 -2 = 33
38. satır = ürünadı1 (combobox üçüncü eleman 2. index) (2+6)*5 -2 =38

şimdi burda combobxta ürünadı1 seçtiğinde hangi ürünadı1 seçildiğini anlaması için hangi satırda olduğunu
(ComboBox1.ListIndex + 6) * 5) - 2 bu olayla buldum çünkü ComboBox1.ListIndex işlemi 0 dan başlayarak combobox listesindeki indexleri veriyor belki başka yöntemle de bulunabilirdi ama benim aklıma bu geldi
 
Son düzenleme:

netvolxxx

Altın Üye
Katılım
29 Ağustos 2023
Mesajlar
138
Excel Vers. ve Dili
2013 Türkçe
Altın Üyelik Bitiş Tarihi
07-03-2025
hocam çok teşeküür ederim sağolasın yordum senide ben şöyle çözdüm olayı

Dim urunAdi As String
Dim urunSatir As Long
Dim i As Long
Dim bulundu As Boolean
urunAdi = ComboBox4.Value
bulundu = False

For i = 28 To 477 Step 5
urunSatir = ((ComboBox4.ListIndex + 6) * 5) - 2

If ThisWorkbook.Sheets("sayfa1").Cells(i, "C").Value = urunAdi Then
urunSatir = i
bulundu = True
Exit For
End If
Next i
If bulundu Then
ThisWorkbook.Sheets("sayfa1").Cells(urunSatir + 4, "c").Value = TextBox1.Value
TextBox1 = ""
Else
End If

End Sub
 

md3m1ray

Altın Üye
Katılım
21 Şubat 2024
Mesajlar
45
Excel Vers. ve Dili
Excel 2021
Altın Üyelik Bitiş Tarihi
23-10-2025
hocam çok teşeküür ederim sağolasın yordum senide ben şöyle çözdüm olayı

Dim urunAdi As String
Dim urunSatir As Long
Dim i As Long
Dim bulundu As Boolean
urunAdi = ComboBox4.Value
bulundu = False

For i = 28 To 477 Step 5
urunSatir = ((ComboBox4.ListIndex + 6) * 5) - 2

If ThisWorkbook.Sheets("sayfa1").Cells(i, "C").Value = urunAdi Then
urunSatir = i
bulundu = True
Exit For
End If
Next i
If bulundu Then
ThisWorkbook.Sheets("sayfa1").Cells(urunSatir + 4, "c").Value = TextBox1.Value
TextBox1 = ""
Else
End If

End Sub
biraz uzamış sadece mantığı anladınız sanırım kendi kodlanıza göre hangisi hoşunuza gittiyse ona göre uyarlarsınız artık
 

netvolxxx

Altın Üye
Katılım
29 Ağustos 2023
Mesajlar
138
Excel Vers. ve Dili
2013 Türkçe
Altın Üyelik Bitiş Tarihi
07-03-2025
biraz uzamış sadece mantığı anladınız sanırım kendi kodlanıza göre hangisi hoşunuza gittiyse ona göre uyarlarsınız artık
eyvallah hocam anladım mantığı yardımlarınız için teşekürr ederim.....
 
Üst