Filtre edilmiş listbox üzerinden birden fazla satır seçerek güncelleme.

Hakan ERDOST

Destek Ekibi
Destek Ekibi
Katılım
12 Eylül 2004
Mesajlar
871
Excel Vers. ve Dili
Excel 2019 Türkçe (Ev)
Excel 2013 Türkçe (Okul)
Kod:
Private Sub CommandButton7_Click()
 Dim selectedRows() As Integer
    Dim selectedCount As Integer
    Dim i As Integer
    On Error Resume Next
    ' Seçili satırları selectedRows dizisine ekleyin
     For i = 0 To UserForm17.ListBox1.ListCount - 1
        If UserForm17.ListBox1.Selected(i) Then
            ReDim Preserve selectedRows(selectedCount)
            selectedRows(selectedCount) = i
            selectedCount = selectedCount + 1
        End If
    Next i
    ' Seçili satırların 8. sütununa tarih değerini ve 9. sütununa seçenek düğmesi değerini aktarın
    Dim selectedOption As String
    If OptionButton1.Value = True Then
    selectedOption = OptionButton1.Caption
        ElseIf OptionButton2.Value = True Then
    selectedOption = OptionButton2.Caption
        ElseIf OptionButton8.Value = True Then
    selectedOption = OptionButton8.Caption
        ElseIf OptionButton7.Value = True Then
    selectedOption = OptionButton7.Caption
        End If
    For i = 0 To UBound(selectedRows)
        Worksheets("ÖDEV_VERİTABANI").Cells(selectedRows(i) + 2, 9).Value = TextBox4.Value
        'Worksheets("ÖDEV_VERİTABANI").Cells(selectedRows(i) + 2, 10).Value = UserForm59.OptionButton1.Caption ' seçenek düğmesinin caption değerine göre değiştirin
        Worksheets("ÖDEV_VERİTABANI").Cells(selectedRows(i) + 2, 10).Value = selectedOption
    Next i
    End Sub
Bu kod ile tek satır seçilyken güncelleme yaparken, birden fazla seçim yaptığımda doğal olarak kayıt yapamıyorum. Takıldığım yer "sanırım" listbox filitrelemesinde değişen index numaraları. Bunu bir diziye almak gerekiyor ama burada kaldım.
 

Hakan ERDOST

Destek Ekibi
Destek Ekibi
Katılım
12 Eylül 2004
Mesajlar
871
Excel Vers. ve Dili
Excel 2019 Türkçe (Ev)
Excel 2013 Türkçe (Okul)
Konu güncel arkadaşlar.
 

Hakan ERDOST

Destek Ekibi
Destek Ekibi
Katılım
12 Eylül 2004
Mesajlar
871
Excel Vers. ve Dili
Excel 2019 Türkçe (Ev)
Excel 2013 Türkçe (Okul)
Sorun çözülmüştür.Çözüm kodu;
Kod:
Private Sub CommandButton7_Click()
    Dim selectedRows() As Integer
    Dim selectedCount As Integer
    Dim i As Integer
    Dim ws As Worksheet
    Dim selectedOption As String
    
    'ÖDEV_VERİTABANI adlı çalışma sayfasını tanımla
    Set ws = ThisWorkbook.Worksheets("ÖDEV_VERİTABANI")
    
    On Error Resume Next
    ' Seçili satırları selectedRows dizisine ekleyin
    For i = 0 To UserForm17.ListBox1.ListCount - 1
        If UserForm17.ListBox1.Selected(i) Then
            ReDim Preserve selectedRows(selectedCount)
            selectedRows(selectedCount) = ws.Range("A:A").Find(UserForm17.ListBox1.List(i), LookIn:=xlValues).Row
            selectedCount = selectedCount + 1
        End If
    Next i
    
    ' Seçili satırların 9. sütununa TextBox4'teki değeri ve 10. sütununa seçili OptionButton'un değerini aktarın
    If OptionButton1.Value = True Then
        selectedOption = OptionButton1.Caption
    ElseIf OptionButton2.Value = True Then
        selectedOption = OptionButton2.Caption
    ElseIf OptionButton8.Value = True Then
        selectedOption = OptionButton8.Caption
    ElseIf OptionButton7.Value = True Then
        selectedOption = OptionButton7.Caption
    End If
    For i = 0 To UBound(selectedRows)
        ws.Cells(selectedRows(i), 9).Value = TextBox4.Value
        ws.Cells(selectedRows(i), 10).Value = selectedOption
    Next i
    MsgBox "Öğrenciye ait ödev kontrol girişi yapılmıştır.", vbOKOnly
End Sub
 
Üst