sayfada farklı hücrelerden combobox getir seçili olan işlem yap

netvolxxx

Altın Üye
Katılım
29 Ağustos 2023
Mesajlar
196
Excel Vers. ve Dili
2013 Türkçe
Altın Üyelik Bitiş Tarihi
15-04-2027
merhaba konu biraz yapmak istediğim beni aşıyor tam buna benzer bi örnek bulamadım

userform da combobox sayfada ki ürün adlarının gelmesini ve seçtiğim ürün hangisi ise textbox yazdığım kaydet dediğimde o ürüne ait hücreye kayıt yapmısı

örnek çalışma dosyası ekte yükledim yapmak istediğim de tam olarak açıklamaya çalıştım.

ürün adları sayfada b10-b15-b20 hep 5 artarak devam ediyor
bu alanlarda dolu olanlar formda combobox alanına gelmesi

diyelimki b20 deki ürün seçtim
textbox yazdım kaydet dediğimde bunu b24 alanına kaydetmesini sağlamak

ürün adları sayfada hep b10-b15-b20-b25
açıklamalar ise yani b9-b14-b19-b24 diye gidiyor
 

Ekli dosyalar

netvolxxx

Altın Üye
Katılım
29 Ağustos 2023
Mesajlar
196
Excel Vers. ve Dili
2013 Türkçe
Altın Üyelik Bitiş Tarihi
15-04-2027
merhaba konu ile ilgili destek olabilecek bi üstad yardımcı olacak arkadaş dünden beri bakıyorum bi yol bulamadım....
 

netvolxxx

Altın Üye
Katılım
29 Ağustos 2023
Mesajlar
196
Excel Vers. ve Dili
2013 Türkçe
Altın Üyelik Bitiş Tarihi
15-04-2027
Merhaba, 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
ustad çok teşeküür ederim süper allah razı olsun dunden beri uğraşıyodum istediğim buydu çok sağol......
 

netvolxxx

Altın Üye
Katılım
29 Ağustos 2023
Mesajlar
196
Excel Vers. ve Dili
2013 Türkçe
Altın Üyelik Bitiş Tarihi
15-04-2027
Allah sizden de razı olsun, iyi çalışmalar.
Üstad merhaba şöyle bir sorum olcaktı sayfada diyelim aynı isimler var combobox a ikitane testa testa geliyor kaydet me işlemini ilk sıradakinde yapıyor bunun için kodda revize yapılcak yer ne yazmam gerekiyor....
 

netvolxxx

Altın Üye
Katılım
29 Ağustos 2023
Mesajlar
196
Excel Vers. ve Dili
2013 Türkçe
Altın Üyelik Bitiş Tarihi
15-04-2027
Merhaba, UserForm'un Initialize olayına şu şekilde;
Kod:
Private Sub UserForm_Initialize()
    Dim i As Long
    ComboBox1.ColumnCount = 2      
    ComboBox1.ColumnWidths = "100;0"
    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
            ComboBox1.List(ComboBox1.ListCount - 1, 1) = i
        End If
    Next i
End Sub
Kaydet butonuna (CommandButton1) tıklama olayını şu şekilde güncelleyin;

Kod:
Private Sub CommandButton1_Click()
    Dim urunAdi As String
    Dim urunSatir As Long
    If ComboBox1.ListIndex = -1 Then
        MsgBox "Lütfen bir ürün seçiniz.", vbExclamation
        Exit Sub
    End If
    urunAdi = ComboBox1.Value
    urunSatir = ComboBox1.List(ComboBox1.ListIndex, 1)
    ThisWorkbook.Sheets("Sayfa1").Cells(urunSatir + 4, "B").Value = TextBox1.Value
    MsgBox "Kaydedildi.", vbInformation
End Sub
merhaba üstad çok teşekürr ederim sağol geç cevap yazdım
 

netvolxxx

Altın Üye
Katılım
29 Ağustos 2023
Mesajlar
196
Excel Vers. ve Dili
2013 Türkçe
Altın Üyelik Bitiş Tarihi
15-04-2027
Merhaba, UserForm'un Initialize olayına şu şekilde;
Kod:
Private Sub UserForm_Initialize()
    Dim i As Long
    ComboBox1.ColumnCount = 2      
    ComboBox1.ColumnWidths = "100;0"
    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
            ComboBox1.List(ComboBox1.ListCount - 1, 1) = i
        End If
    Next i
End Sub
Kaydet butonuna (CommandButton1) tıklama olayını şu şekilde güncelleyin;

Kod:
Private Sub CommandButton1_Click()
    Dim urunAdi As String
    Dim urunSatir As Long
    If ComboBox1.ListIndex = -1 Then
        MsgBox "Lütfen bir ürün seçiniz.", vbExclamation
        Exit Sub
    End If
    urunAdi = ComboBox1.Value
    urunSatir = ComboBox1.List(ComboBox1.ListIndex, 1)
    ThisWorkbook.Sheets("Sayfa1").Cells(urunSatir + 4, "B").Value = TextBox1.Value
    MsgBox "Kaydedildi.", vbInformation
End Sub
bu kod olayına ilave şöyle bir şey var kullandığım nasıl aktif edebilirim bu olaya acaba

h alanına x yazdığımda x yazılı olan hücreleri gizliyor istediğim gizli olanlar combobox a gelmesin nasıl yapabilirim bunu

hocam birde user formda ilave bitanede textbox3 var bunada combobox1 den seçilen sıra no sunu nasıl yazdırırım sayfa1 de s.no yazanlar kastım

bu tüm işlemleri hepsini sayfa2 kaydet tuşu ile nasıl kaydetcem

combobox1 den seçtim örnek
mehmet (mehmet sıra no olarak 6 da olsun)
textbox3 e sıra nosu geldi 6 diye
textbox4 de denemeler test yazdım kaydet dediğim zaman
sayfa2 a10-b10-c10 kaydetcek
a10 sıra no
b10 combobox1 de değer mehmet
c10 da açıklama

soru biraz uzun oldu hocam ama uğraşıyorum bi türlü yapamadım yardımlarınızı bekliyorum..


satır gizleme kodu aşağıda kullandığım


Private Sub CommandButton2_Click()
On Local Error Resume Next
Dim i As Integer, a As Integer
Application.ScreenUpdating = True
For i = 10 To 100
a = Cells(i, "H").MergeArea.Cells.Count
If Cells(i, "H") = 0 Then
Rows(i).Resize(a, 1).EntireRow.Hidden = True
End If
If a > 1 Then i = i + a - 1
Next i
end sub


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error Resume Next
If Intersect(Target, [H10:H100]) Is Nothing Then Exit Sub
Target.Value = "X"
Cancel = True
End Sub
 

netvolxxx

Altın Üye
Katılım
29 Ağustos 2023
Mesajlar
196
Excel Vers. ve Dili
2013 Türkçe
Altın Üyelik Bitiş Tarihi
15-04-2027
Merhaba, satır gizlemek için;

Kod:
Private Sub UserForm_Initialize()
    Dim i As Long
    ComboBox1.ColumnCount = 2    
    ComboBox1.ColumnWidths = "100;0"
    For i = 10 To 100 Step 5
        If Not ThisWorkbook.Sheets("Sayfa1").Rows(i).Hidden Then
            If ThisWorkbook.Sheets("Sayfa1").Cells(i, "B").Value <> "" Then
                ComboBox1.AddItem ThisWorkbook.Sheets("Sayfa1").Cells(i, "B").Value
                ComboBox1.List(ComboBox1.ListCount - 1, 1) = i
            End If
        End If
    Next i
End Sub
TextBox3'e yazdırmak için;

Kod:
Private Sub ComboBox1_Change()
    If ComboBox1.ListIndex <> -1 Then
        TextBox3.Value = ComboBox1.List(ComboBox1.ListIndex, 1)
    Else
        TextBox3.Value = ""
    End If
End Sub
Verileri Sayfa2'ye kaydetmek için
Kod:
Private Sub CommandButton1_Click()
    Dim urunAdi As String
    Dim urunSatir As Long
    Dim siraNo As Long
    Dim aciklama As String
    Dim hedefSatir As Long
    If ComboBox1.ListIndex = -1 Then
        MsgBox "Lütfen bir ürün seçiniz.", vbExclamation
        Exit Sub
    End If
    urunAdi = ComboBox1.Value
    urunSatir = ComboBox1.List(ComboBox1.ListIndex, 1)
    siraNo = CLng(TextBox3.Value)
    aciklama = TextBox4.Value
    With ThisWorkbook.Sheets("Sayfa2")
        hedefSatir = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
        If hedefSatir < 10 Then hedefSatir = 10
        .Cells(hedefSatir, "A").Value = siraNo
        .Cells(hedefSatir, "B").Value = urunAdi
        .Cells(hedefSatir, "C").Value = aciklama
    End With
    MsgBox "Veriler başarıyla kaydedildi.", vbInformation
End Sub
Kod:
Private Sub CommandButton2_Click()
    Dim i As Long
    Application.ScreenUpdating = False
    For i = 10 To 100
        If Cells(i, "H").Value = "X" Then
            Rows(i).Hidden = True
        Else
            Rows(i).Hidden = False
        End If
    Next i
    Application.ScreenUpdating = True
    UserForm_Initialize
End Sub
Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("H10:H100")) Is Nothing Then
        Target.Value = "X"
        Cancel = True
        Call CommandButton2_Click
    End If
End Sub
üstad süpersin yaaa hepsi tam istediğim gibi olmuş sağolasın teşekürr ederim sağolasın.....
 
Üst