Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1536to1540
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Textboxen ändern und in Tabelle zurückschreiben

Textboxen ändern und in Tabelle zurückschreiben
01.02.2017 12:58:30
Christian
Hallo zusammen, vorweg der Betreff ist für mich in der Kürze der möglichen Zeichen wohl nicht ganz informativ...
Zu meinem Anliegen:
Ich habe eine Userform auf der habe ich eine Listbox ("Listbox3"), welche über ein Dropdownmenü gesteuert wird. Das funktioniert alles wunderbar.
Die Listbox zeigt nur 4 Spalten an Daten an, es ist nur ein Bruchteil da das Tabellenblatt 22 Spalten beinhaltet. Die Listbox ist auch nur als Navigationshilfe gedacht. Ich lese die Werte mittels Textboxen aus. Auch das funktioniert einwandfrei.
Nun zum Problem. Ich möchte es ermöglichen, dass die Inhalte der Textboxen editierbar sind, so dass diese nach Anpassung auch ihren neuen Wert genau dort ablegen, an dem sie ihn gefunden haben.
Mein bisheriger Code (gekürzt)
'Zum Auslesen der Listbox3 für die Textboxen damit alle 22 Spalten angezeigt werden können - Es sind nicht alle Textboxen aufgelistet - habe dies aus optischen Gründen gekürzt.
_____________________________________________________________________________________

Private Sub ListBox3_Click()
With ListBox3
EG_Alle.TextBox58 = .List(.ListIndex, 0)
End With
Dim varTMP As Variant
With Tabelle10 'Ist ein zusätzliches Tabellenblatt auf dem 2 Informationen abgegriffen werden
varTMP = Application.Match(TextBox58.Text, .Range("A:A"), 0)
If Not IsError(varTMP) Then
TextBox60.Text = .Cells(varTMP, 2).Value
TextBox59.Text = .Cells(varTMP, 3).Value
End If
End With
With Tabelle12 ' Dieses Tabellenblatt enthält die Werte, die auch angepasst werden sollen
varTMP = Application.Match(TextBox58.Text, .Range("A:A"), 0)
If Not IsError(varTMP) Then
TextBox64.Text = .Cells(varTMP, 2).Value
TextBox66.Text = .Cells(varTMP, 3).Value
TextBox67.Text = .Cells(varTMP, 4).Value
TextBox65.Text = .Cells(varTMP, 6).Value
TextBox61.Text = .Cells(varTMP, 8).Value
TextBox73.Text = .Cells(varTMP, 12).Value
TextBox68.Text = .Cells(varTMP, 5).Value
TextBox76.Text = .Cells(varTMP, 7).Value
TextBox78.Text = .Cells(varTMP, 13).Value
TextBox69.Value = .Cells(varTMP, 10).Value
TextBox71.Value = .Cells(varTMP, 11).Value
End If
End With
End Sub

_____________________________________________________________________________________
Auf Knopfdruck werden die Textboxen auf "Locked = False" gesetzt und können angepasst werden. Aber wie bringe ich den Textboxen bei, den angepassten Wert auch wieder dahinzuschreiben wo sie den alten gefunden haben?
Ich hoffe das ich es verständlich geschrieben habe :-D
Vielen Dank und viele Grüße
Christian Heinz

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textboxen ändern und in Tabelle zurückschreiben
01.02.2017 13:10:29
ChrisL
Hi Christian
varTMP = Application.Match(TextBox58.Text, .Range("A:A"), 0)
Sieht so aus, als ob du einen Primärschlüssel hast. In dem Fall einfach das Spiel umdrehen.
.Cells(varTMP, 2).Value = TextBox64.Text
.Cells(varTMP, 3).Value = TextBox66.Text
Der Primärschlüssel darf natürlich nie geändert werden und muss eindeutig sein.
Eine andere Variante ist beim Laden der ListBox die Zeilennummer in einer 5. Spalte zu speichern und die Listbox-Spaltenbreite auf null zu stellen (Spalte ausblenden).
cu
Chris
AW: Textboxen ändern und in Tabelle zurücks.
01.02.2017 14:22:10
Christian
Hallo Chris,
Du hast das richtig erkannt, ich nutze einen Primärschlüssel, welcher jeder Zeile vorsteht.
Deine Hilfe ist 1.klassig. Es funktioniert einwandfrei!
Vielen Dank dafür!!
Gruß
Christian Heinz
Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige