Clever-Excel-Forum

Normale Version: Eine Zeile einer Listbox Aktualisieren !
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo !

Ich Kämpfe gerade mit einem Problem, wobei ich Hilfe gebrauchen könnte.

In einer Listbox die auch Filtern kann, wird durch Doppelklick auf einen Datensatz
eine andere Listbox geöffnet.
in dieser Listbox wird der Selektierte Datensatz in Textboxen angezeigt, es kann geändert werden und per Button wird der geänderte Datensatz in die QuellTabelle übernommen.
Das Funktioniert :)
Nun zu meinem Problem:
Da ich auch im gefilterten Zustand Doppelklicke, würde ich gerne den geänderten Datensatz
auch in der Listbox übernehmen.
Sprich nur den einen Selektierten Datensatz Aktualisieren.

Mein Gedanke: da ich mit Datensatz Selektieren dann Löschen einen Datensatz aus der
listbox ansprechen kann, müsste das ja mit Aktualisieren genau so funktionieren.
Und genau da liegt mein Problem !
Hab das Gerüst von Datensatz löschen genommen, und Gebastelt. leider ohne Erfolg
Eine BeispielDatei hänge ich an.
Währe Klasse wenn ihr mir da Helfen könntet.

LG Gerhard
Hallo Gerhard,


Zitat:In einer Listbox die auch Filtern kann, wird durch Doppelklick auf einen Datensatz

eine andere Listbox geöffnet.


was da geöffnet wird, ist keine andere ListBox, sondern ein zweites UserForm. Für diese Zwecke würde übrigens ein Userform völlig ausreichen.
Hi Klaus Dieter

Stimmt, hab mich verschrieben. Sorry
Hallo Gerhard,

OK, hatte schon befürchtet, du weißt es nicht besser. Das hätte die Kommunikation erschwert. Gleich noch eine Frage: warum programmierst du zwei UserForms für so ein paar Objekte? Das lässt sich doch prima auf einem UserForm unterbringen, was einiges vereinfachen würde.
Hallo Klaus Dieter

wie du schon schreibst "Ich weiß es nicht besser"

Hab halt mit den mitteln die ich kenne, versucht etwas hinzubekommen.
was anscheinend doch etwas umständlich ist, aber hat mich trotzdem
riesig gefreut, das es Gröstenteils gut funktioniert.
Auf einer Userform, ja war auch erst mein erster Versuch. Ging garnicht,
darum die zweite Userform. wo es Funktioniert.

lg Gerhard
Hi Klaus Dieter,

Nachtrag:Hab mich da aber sehr Missverständlich Ausgedrückt.
Mit "ich weiss es nicht besser" Antworte ich auf deine Frage: warum ich
zwei Userforms benutze. Hatte es mit einer nicht hinbekommen.
Wollte es nur richtig stellen.
Ist es den möglich,mit den zwei Userformen so zu Programieren das mein
Wunschergebnis erreicht werden kann ?
oder sollte man wie du Schreibst, alles mit einer Userform machen ?

lg Gerhard
Hallo,

auf jedem Fall mit einem UserForm.
Hi

ist doch ganz Ok was du bis jetzt hast.
Versuch es mal mit der Anpassung.
Code:
Private Sub cmdEintragTeilelisteAendern_Click()
'Schreibt die Veränderten Texte in die Tabelle("Teileliste")
    Dim inti As Integer
    With Sheets("Teileliste")
        For inti = 5 To .Range("A200").End(xlUp).Row
            If .Cells(inti, 1) = lblMaterialcode.Caption Then
               .Cells(inti, 2) = tbxTeileNummer.Text
               .Cells(inti, 3) = tbxBauteil.Text
               .Cells(inti, 4) = tbxSuchName.Text
            End If
        Next inti
    End With
    MsgBox "Daten/Änderung gespeichert!", vbInformation
   
    With frmTeileListe
      .lstDaten.Column(1, .lstDaten.ListIndex) = tbxTeileNummer
      .lstDaten.Column(2, .lstDaten.ListIndex) = tbxBauteil
      .lstDaten.Column(3, .lstDaten.ListIndex) = tbxSuchName
    End With
   
    Unload Me
End Sub
Gruß Elex
Hi Elex,

Genauso sieht mein Wunschergebnis aus, Herzlichen Dank.

LG Gerhard
Code:
Private Sub UserForm_Initialize()
    lstDaten.List = Sheets("Teileliste").Cells(5, 1).CurrentRegion.Value
End Sub

Reicht schon, (schau mal: https://www.snb-vba.eu/VBA_Fill_combobox...ox_en.html)
.columncount 4 sollte man als Eigenschaft im Design Modus speichern.

Und verzichte immer auf 'merged cells'.