Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Daten der Tabelle über Listbox ändern | Herbers Excel-Forum


Betrifft: Daten der Tabelle über Listbox ändern von: Lisa
Geschrieben am: 20.02.2012 13:01:36

Hallo zusammen, ich benötige bitte wieder Eure Hilfe!

Ich habe eine Userform mit einer Listbox, zwei Comboboxen und einer Textbox!

die Daten der Listbox bekomme ich aus der Tabelle1!

Private Sub userform_initialize()
    With ListBox1
        .RowSource = "Tabelle1!A2:C100"
        .ColumnHeads = True
    End With
End Sub
Nun möchte ich gern einen Datensatz aus der Listbox anklicken, verändern und speichern,
also genau auch in der Tabelle und in der alten Zeile!

zum ändern hole ich mir die die Daten aus der Listbox und übergebe sie an eine CBB1, CBB2 und TXTB1 der Userform1
Private Sub ListBox1_Click()
    'klick = ListBox1.ListIndex
    With ListBox1
        UserForm1.ComboBox1 = .List(.ListIndex, 0)
        UserForm1.ComboBox2 = .List(.ListIndex, 1)
        UserForm1.TextBox1 = .List(.ListIndex, 2)
        
    End With

End Sub

Da neue Daten ebenfalls über die genannten Objekte erfasst werden weiß ich nun nicht wie ich die geä. Daten abspeichern kann.

Private Sub CommandButton3_Click()
Cells(Cells(Rows.Count, "A").End(xlUp).Row + 1, "A").Value = ComboBox1
Cells(Cells(Rows.Count, "A").End(xlUp).Row + 0, "B").Value = ComboBox2
Cells(Cells(Rows.Count, "A").End(xlUp).Row + 0, "C").Value = CDbl(TextBox1.Value)
End Sub
kann mir hierzu bitte jemand helfen?

lg Lisa

  

Betrifft: AW: Daten der Tabelle über Listbox ändern von: Tino
Geschrieben am: 20.02.2012 13:41:47

Hallo,
verwende den Listindex der Listbox, nicht getestet!

with Range("Tabelle1!A2:C100")
 .cells(Listbox1.listindex+1,1).Value = ComboBox1
 .cells(Listbox1.listindex+1,2).Value = ComboBox2
 .cells(Listbox1.listindex+1,3).Value = CDbl(TextBox1.Value)
end with
Gruß Tino


  

Betrifft: AW: Daten der Tabelle über Listbox ändern von: Lisa
Geschrieben am: 20.02.2012 14:46:26

hallo, nein das funktioniert leider nicht!
trotzdem danke für die schnelle Antwort!

Ich lasse die Anfrage noch als offen stehen

danke für die Hilfen!

Lg Lisa


  

Betrifft: hab dies mal nachgebaut von: Tino
Geschrieben am: 20.02.2012 15:38:22

Hallo,
bei mir gehts.

https://www.herber.de/bbs/user/79002.xls

Gruß Tino


  

Betrifft: AW: hab dies mal nachgebaut von: Lisa
Geschrieben am: 20.02.2012 15:51:32

Hallo Tino, danke das du dir soviel Mühe gemacht hast, ich habe deine Datei offen und deinen Nachbau getestet!

Jetzt weiß ich warum es bei dir funktioniert und bei mir nicht,
es wird nur der veränderte Wert der ComboBox1 zurückgeschrieben.
Combobox2 und Textbox1 kann ich zwar änder aber geä. zurückgeschrieben wird es nicht

Ich habe es unter Office 2010 und auch 2003 getestet, beides mit dem gleichen Effekt!

Hast du noch einen Idee?

trotzdem vielen vielen Dank für deine Mühe!!

Lg Lisa


  

Betrifft: AW: hab dies mal nachgebaut von: Tino
Geschrieben am: 20.02.2012 15:59:52

Hallo,
ja ich habe noch eine Idee.

Private Sub CommandButton3_Click()
With Range("Tabelle1!A2:C100")
  Me.Tag = "1"
  .Cells(ListBox1.ListIndex + 1, 1).Value = ComboBox1
  .Cells(ListBox1.ListIndex + 1, 2).Value = ComboBox2
  .Cells(ListBox1.ListIndex + 1, 3).Value = CDbl(TextBox1.Value)
  Me.Tag = ""
End With
End Sub

Private Sub userform_initialize()
      With ListBox1
          .RowSource = "Tabelle1!A2:C100"
          .ColumnHeads = True
      End With
End Sub

Private Sub ListBox1_Click()
If Me.Tag = "1" Then Exit Sub
'klick = ListBox1.ListIndex
With ListBox1
    UserForm1.ComboBox1 = .List(.ListIndex, 0)
    UserForm1.ComboBox2 = .List(.ListIndex, 1)
    UserForm1.TextBox1 = .List(.ListIndex, 2)
End With
End Sub
Gruß Tino


  

Betrifft: AW: freu von: Lisa
Geschrieben am: 20.02.2012 16:37:03

Hallo Tino nun klappt es wie gewünscht, vielen Dank für deine Zeit und der Hilfe!

lg lisa


Beiträge aus den Excel-Beispielen zum Thema "Daten der Tabelle über Listbox ändern"