Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
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

Problem in einem Formular

Problem in einem Formular
27.01.2017 15:23:38
Michael
Hallo zusammen
ich hab ein Problem. Ich erstelle gerade eine Mitgliederliste für einen Verein. Sieht soweit schon ganz gut aus, nur wenn ich in meinem Formular einen Namen, oder Geburtstag oder sonstiges eingebe und auf speichern gehe, springt er mir wieder auf dem allerersten Datensatz zurück, ich muss dann im Listfeld wieder runterscrollen und kann dann wieder weiter meine Mitglieder eingeben. Da ich mir die Makros zum teil aus dem Internet geholt habe stehe ich jetzt ein bissl auf dem Schlauch. In dem Listfeld(im Formular) hab ich auch ein Problem und zwar möchte ich das er die Lfd.NR.(Spalte A) mit dem Namen(Spalte C) und Vornamen(Spalte D) zusammen anzeigt. Ich hab im Internet auch schon was gefunden , es hat bei mir nur nicht funktioniert. Kann mir da jemand weiterhelfen?
Danke schon mal im voraus.
Hier meine Datei
https://www.herber.de/bbs/user/110943.xlsm
Gruass miche

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem in einem Formular
27.01.2017 16:44:20
Matthias
Hallo
Auszugsweise vom Code ...
Schau Dir die Zeile unter Call UserForm_Initialize an.
'Eintrag gefunden, TextBoxen in die Zellen schreiben
Tabelle1.Cells(lZeile, 3).Value = Trim(CStr(TextBox1.Text)) 'Name'
Tabelle1.Cells(lZeile, 4).Value = TextBox2.Text 'Vorname'
Tabelle1.Cells(lZeile, 5).Value = TextBox5.Text 'Strasse'
Tabelle1.Cells(lZeile, 6).Value = TextBox6.Text 'PLZ'
Tabelle1.Cells(lZeile, 7).Value = TextBox7.Text 'Ort'
Tabelle1.Cells(lZeile, 8).Value = TextBox8.Text 'Telefon'
Tabelle1.Cells(lZeile, 9).Value = TextBox3.Text 'Geburtstag'
Tabelle1.Cells(lZeile, 11).Value = TextBox4.Text 'Einritt in Verein'
Tabelle1.Cells(lZeile, 13).Value = ComboBox1.Text 'Dienstgrad'
Tabelle1.Cells(lZeile, 14).Value = TextBox9.Text 'Email'
Tabelle1.Cells(lZeile, 15).Value = TextBox10.Text 'Verdienste'
Tabelle1.Cells(lZeile, 16).Value = TextBox11.Text '25er'
Tabelle1.Cells(lZeile, 17).Value = TextBox12.Text '50er'
Tabelle1.Cells(lZeile, 18).Value = TextBox13.Text 'Gau'
Tabelle1.Cells(lZeile, 2).Value = ComboBox2.Text 'AktivPassiv Ehrenmitglied'
Tabelle1.Cells(lZeile, 19).Value = TextBox14.Text 'Gau'
'Die ListBox muss nun neu geladen werden
'allerdings nur, wenn sich der Name (ID) geändert hat
If ListBox1.Text Trim(CStr(TextBox1.Text)) Then
Call UserForm_Initialize
If ListBox1.ListCount > 0 Then ListBox1.ListIndex = ListBox1.ListCount - 1
End If
Exit Do 'Vorzeitiges Ende, da der Datensatz schon gefunden ist
End If
lZeile = lZeile + 1 'Nächste Zeile bearbeiten
Loop
End Sub
Gruß Matthias
Anzeige
AW: Problem in einem Formular
27.01.2017 16:53:43
Michael
Hallo Matthias
er springt jetzt quasi zum Schluss an die Tabelle . Kann man es so machen das er auf dem Datensatz bleibt, wo man gerade was geändert hat?
Danke schon mal für die Lösung.
Gruss Miche
AW: Problem in einem Formular
27.01.2017 17:05:27
Matthias
Hallo
Private Sub CommandButton3_Click()
'Speichern Schaltfläche Ereignisroutine
Dim lZeile As Long, MyListIndex As Long
'Wenn kein Datensatz in der ListBox markiert wurde, wird die Routine beendet
If ListBox1.ListIndex = -1 Then Exit Sub
'Wir müssen prüfen, ob die ID Spalte auch gefüllt ist!!
If Trim(CStr(TextBox1.Text)) = "" Then
'Meldung ausgeben
MsgBox "Sie müssen mindestens einen Namen eingeben!", vbCritical + vbOKOnly, "FEHLER!" _
'Abbrechen der Speicherroutine
Exit Sub
End If
'Ausbauoption: Prüfen, ob die ID in Tabelle1 Spalte 1 schon vorhanden ist!
'Zum Speichern benötigen wir die Zeilennummer des ausgewählten Datensatzes
lZeile = 6 'Start in Zeile 2, Zeile 1 sind ja die Überschriften
'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht
Do While Trim(CStr(Tabelle1.Cells(lZeile, 1).Value))  ""
'Datensatz ID Spalte mit selektiertem Eintrag der ListBox vergleichen
If ListBox1.Text = Trim(CStr(Tabelle1.Cells(lZeile, 1).Value)) Then
'Eintrag gefunden, TextBoxen in die Zellen schreiben
Tabelle1.Cells(lZeile, 3).Value = Trim(CStr(TextBox1.Text)) 'Name'
Tabelle1.Cells(lZeile, 4).Value = TextBox2.Text 'Vorname'
Tabelle1.Cells(lZeile, 5).Value = TextBox5.Text 'Strasse'
Tabelle1.Cells(lZeile, 6).Value = TextBox6.Text 'PLZ'
Tabelle1.Cells(lZeile, 7).Value = TextBox7.Text 'Ort'
Tabelle1.Cells(lZeile, 8).Value = TextBox8.Text 'Telefon'
Tabelle1.Cells(lZeile, 9).Value = TextBox3.Text 'Geburtstag'
Tabelle1.Cells(lZeile, 11).Value = TextBox4.Text 'Einritt in Verein'
Tabelle1.Cells(lZeile, 13).Value = ComboBox1.Text 'Dienstgrad'
Tabelle1.Cells(lZeile, 14).Value = TextBox9.Text 'Email'
Tabelle1.Cells(lZeile, 15).Value = TextBox10.Text 'Verdienste'
Tabelle1.Cells(lZeile, 16).Value = TextBox11.Text '25er'
Tabelle1.Cells(lZeile, 17).Value = TextBox12.Text '50er'
Tabelle1.Cells(lZeile, 18).Value = TextBox13.Text 'Gau'
Tabelle1.Cells(lZeile, 2).Value = ComboBox2.Text 'AktivPassiv Ehrenmitglied'
Tabelle1.Cells(lZeile, 19).Value = TextBox14.Text 'Gau'
'Die ListBox muss nun neu geladen werden
'allerdings nur, wenn sich der Name (ID) geändert hat
If ListBox1.Text  Trim(CStr(TextBox1.Text)) Then
MyListIndex = ListBox1.ListIndex
Call UserForm_Initialize
If ListBox1.ListCount > 0 Then ListBox1.ListIndex = MyListIndex
End If
Exit Do 'Vorzeitiges Ende, da der Datensatz schon gefunden ist
End If
lZeile = lZeile + 1 'Nächste Zeile bearbeiten
Loop
End Sub
Gruß Matthias
Anzeige
AW: Problem in einem Formular
27.01.2017 17:35:19
Michael
Hallo Matthias
Danke für deine Hilfe! Funktioniert.
Gruass miche
Danke für Deine Rückmeldung ... owT
27.01.2017 17:40:59
Matthias

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige