Supportnet / Forum / Tabellenkalkulation
Problem mit VBA ( UserFrom ) Code
Frage
Hallo,
ich habe mir von Oliver`s HP folgenden Code geladen, nun habe ich folgendes Problem mit dem Code, bei den Code wird nach dem Nachnamen und dann nach Vorname gesucht, ich müßte aber nach PLZ und dann nach Ort suchen und ich finde nicht die stelle wo ich das ändern muß und bei mir müßte die suche auch nicht in der Zeile zwei sondern ab der Zeile drei anfangen.
Die drei zusätzlichen Spalten konnte ich noch einfügen aber mit dem anderen Problem komme ich nicht weiter ,ich hoffe es kann mir jemand helfen.
Gruß
Achim
Antwort 1 von achim115
nach folgend der Codein zwei teile.
Teil 1
Private Sub Daten_übernehmen_Click()
Dim Zeile As Long
´Schleife und Abfrage zum Prüfen ob Datensatz in Tabellenblatt bereits vorhanden
For Wiederholungen_Eintrag = 2 To Range("B65536").End(xlUp).Row
If Nachname.Text = Cells(Wiederholungen_Eintrag, 2) _
And Vorname.Text = Cells(Wiederholungen_Eintrag, 1) Then
Eintrag_vorhanden = 1
Zeile_Eintrag = Wiederholungen_Eintrag
End If
Next
´Wenn Eintrag bereits vorhanden, die Daten in der entsprechenden Zeile abändern
If Eintrag_vorhanden = 1 Then
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 1) = Vorname
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 2) = Nachname
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 3) = Strasse
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 4) = Nummer
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 5) = Postleitzahl
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 6) = Ort
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 7) = Geburtsdatum
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 8) = Bemerkungen
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 9) = test1
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 10) = test2
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 11) = test3
SendKeys "{TAB}"
SendKeys "{TAB}"
´ansonsten Daten in erste leere Zeile eintragen
Else
Zeile_Blatt_2 = Sheets("Eingabe, Suchen und Ändern 2").Range("A65536").End(xlUp).Offset(1, 0).Row
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 1) = Vorname
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 2) = Nachname
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 3) = Strasse
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 4) = Nummer
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 5) = Postleitzahl
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 6) = Ort
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 7) = Geburtsdatum
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 8) = Bemerkungen
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 9) = test1
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 10) = test2
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 11) = test3
SendKeys "{TAB}"
SendKeys "{TAB}"
End If
´Kombinationsfelder "Vorname" und "Nachname" leeren
Nachname.Clear
Vorname.Clear
´Schleife und Abfrage zum erneuten Füllen der ComboBox "Nachname"
For Wiederholungen = 2 To Range("A65536").End(xlUp).Row
If WorksheetFunction.CountIf(Range("B2:B" & Wiederholungen), _
Cells(Wiederholungen, 2)) = 1 Then _
Teil 1
Private Sub Daten_übernehmen_Click()
Dim Zeile As Long
´Schleife und Abfrage zum Prüfen ob Datensatz in Tabellenblatt bereits vorhanden
For Wiederholungen_Eintrag = 2 To Range("B65536").End(xlUp).Row
If Nachname.Text = Cells(Wiederholungen_Eintrag, 2) _
And Vorname.Text = Cells(Wiederholungen_Eintrag, 1) Then
Eintrag_vorhanden = 1
Zeile_Eintrag = Wiederholungen_Eintrag
End If
Next
´Wenn Eintrag bereits vorhanden, die Daten in der entsprechenden Zeile abändern
If Eintrag_vorhanden = 1 Then
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 1) = Vorname
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 2) = Nachname
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 3) = Strasse
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 4) = Nummer
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 5) = Postleitzahl
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 6) = Ort
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 7) = Geburtsdatum
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 8) = Bemerkungen
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 9) = test1
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 10) = test2
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 11) = test3
SendKeys "{TAB}"
SendKeys "{TAB}"
´ansonsten Daten in erste leere Zeile eintragen
Else
Zeile_Blatt_2 = Sheets("Eingabe, Suchen und Ändern 2").Range("A65536").End(xlUp).Offset(1, 0).Row
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 1) = Vorname
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 2) = Nachname
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 3) = Strasse
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 4) = Nummer
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 5) = Postleitzahl
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 6) = Ort
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 7) = Geburtsdatum
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 8) = Bemerkungen
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 9) = test1
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 10) = test2
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 11) = test3
SendKeys "{TAB}"
SendKeys "{TAB}"
End If
´Kombinationsfelder "Vorname" und "Nachname" leeren
Nachname.Clear
Vorname.Clear
´Schleife und Abfrage zum erneuten Füllen der ComboBox "Nachname"
For Wiederholungen = 2 To Range("A65536").End(xlUp).Row
If WorksheetFunction.CountIf(Range("B2:B" & Wiederholungen), _
Cells(Wiederholungen, 2)) = 1 Then _
Antwort 2 von achim115
zweiter Teil:
Nachname.AddItem Cells(Wiederholungen, 2)
Next
End Sub
Private Sub Eingabe_beenden_Click()
Unload Me
End Sub
Private Sub Nachname_Change()
Vorname.Clear
´Schleife und If Abfrage zum Finden von passenden Vornamen zu dem ausgewähleten Nachnamen
For Wiederholungen = 2 To Range("B65536").End(xlUp).Row
If Nachname.Text = Cells(Wiederholungen, 2) Then
´gefundene Vornamen in Spalte IV auflisten
Cells(Range("IV65536").End(xlUp).Offset(1, 0).Row, 256) = Cells(Wiederholungen, 1)
End If
Next
´Schleife und If Abfrage zum Füllen der ComboBox "Vorname"
For Wiederholungen = 2 To Range("IV65536").End(xlUp).Row
Vorname.AddItem (Cells(Wiederholungen, 256))
Next
´Aufgelistete Vornamen löschen
Range("IV:IV").ClearContents
End Sub
Private Sub UserForm_Initialize()
MsgBox "Bitte zuerst den Nachnamen und danach den Vornahmen wählen, damit Datensätze angezeigt werden können."
´Schleife zum Füllen der ComboBox "Nachname" ohne Duplikate
For Wiederholungen = 2 To Range("A65536").End(xlUp).Row
If WorksheetFunction.CountIf(Range("B2:B" & Wiederholungen), _
Cells(Wiederholungen, 2)) = 1 Then _
Nachname.AddItem Cells(Wiederholungen, 2)
Next
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
´Fehlermeldung, wenn versucht wird, die UserForm über das rote
´Schließenkreuz oben rechts zu schließen
If CloseMode = 0 Then
Cancel = 1
MsgBox "Bitte verlassen Sie das Dialogfeld mit den Schaltflächen.", _
vbOKOnly + vbInformation, "Bitte Schaltfläche betätigen."
End If
End Sub
Private Sub Vorname_Change()
´Schleife und If Abfrage zum Füllen der restlichen Textfelder
For Wiederholungen_Vorname = 2 To Range("B65536").End(xlUp).Row
If Nachname.Text = Cells(Wiederholungen_Vorname, 2) _
And Vorname.Text = Cells(Wiederholungen_Vorname, 1) Then
Strasse = Cells(Wiederholungen_Vorname, 3)
Nummer = Cells(Wiederholungen_Vorname, 4)
Postleitzahl = Cells(Wiederholungen_Vorname, 5)
Ort = Cells(Wiederholungen_Vorname, 6)
End If
Next
For Wiederholungen_Vorname = 2 To Sheets("Eingabe, Suchen und Ändern 2").Range("B65536").End(xlUp).Row
If Nachname.Text = Sheets("Eingabe, Suchen und Ändern 2").Cells(Wiederholungen_Vorname, 2) _
And Vorname.Text = Sheets("Eingabe, Suchen und Ändern 2").Cells(Wiederholungen_Vorname, 1) Then
Geburtsdatum = Sheets("Eingabe, Suchen und Ändern 2").Cells(Wiederholungen_Vorname, 7)
Bemerkungen = Sheets("Eingabe, Suchen und Ändern 2").Cells(Wiederholungen_Vorname, 8)
test1 = Sheets("Eingabe, Suchen und Ändern 2").Cells(Wiederholungen_Vorname, 9)
test2 = Sheets("Eingabe, Suchen und Ändern 2").Cells(Wiederholungen_Vorname, 10)
test3 = Sheets("Eingabe, Suchen und Ändern 2").Cells(Wiederholungen_Vorname, 11)
End If
Next
End Sub
Grüße Achim
Nachname.AddItem Cells(Wiederholungen, 2)
Next
End Sub
Private Sub Eingabe_beenden_Click()
Unload Me
End Sub
Private Sub Nachname_Change()
Vorname.Clear
´Schleife und If Abfrage zum Finden von passenden Vornamen zu dem ausgewähleten Nachnamen
For Wiederholungen = 2 To Range("B65536").End(xlUp).Row
If Nachname.Text = Cells(Wiederholungen, 2) Then
´gefundene Vornamen in Spalte IV auflisten
Cells(Range("IV65536").End(xlUp).Offset(1, 0).Row, 256) = Cells(Wiederholungen, 1)
End If
Next
´Schleife und If Abfrage zum Füllen der ComboBox "Vorname"
For Wiederholungen = 2 To Range("IV65536").End(xlUp).Row
Vorname.AddItem (Cells(Wiederholungen, 256))
Next
´Aufgelistete Vornamen löschen
Range("IV:IV").ClearContents
End Sub
Private Sub UserForm_Initialize()
MsgBox "Bitte zuerst den Nachnamen und danach den Vornahmen wählen, damit Datensätze angezeigt werden können."
´Schleife zum Füllen der ComboBox "Nachname" ohne Duplikate
For Wiederholungen = 2 To Range("A65536").End(xlUp).Row
If WorksheetFunction.CountIf(Range("B2:B" & Wiederholungen), _
Cells(Wiederholungen, 2)) = 1 Then _
Nachname.AddItem Cells(Wiederholungen, 2)
Next
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
´Fehlermeldung, wenn versucht wird, die UserForm über das rote
´Schließenkreuz oben rechts zu schließen
If CloseMode = 0 Then
Cancel = 1
MsgBox "Bitte verlassen Sie das Dialogfeld mit den Schaltflächen.", _
vbOKOnly + vbInformation, "Bitte Schaltfläche betätigen."
End If
End Sub
Private Sub Vorname_Change()
´Schleife und If Abfrage zum Füllen der restlichen Textfelder
For Wiederholungen_Vorname = 2 To Range("B65536").End(xlUp).Row
If Nachname.Text = Cells(Wiederholungen_Vorname, 2) _
And Vorname.Text = Cells(Wiederholungen_Vorname, 1) Then
Strasse = Cells(Wiederholungen_Vorname, 3)
Nummer = Cells(Wiederholungen_Vorname, 4)
Postleitzahl = Cells(Wiederholungen_Vorname, 5)
Ort = Cells(Wiederholungen_Vorname, 6)
End If
Next
For Wiederholungen_Vorname = 2 To Sheets("Eingabe, Suchen und Ändern 2").Range("B65536").End(xlUp).Row
If Nachname.Text = Sheets("Eingabe, Suchen und Ändern 2").Cells(Wiederholungen_Vorname, 2) _
And Vorname.Text = Sheets("Eingabe, Suchen und Ändern 2").Cells(Wiederholungen_Vorname, 1) Then
Geburtsdatum = Sheets("Eingabe, Suchen und Ändern 2").Cells(Wiederholungen_Vorname, 7)
Bemerkungen = Sheets("Eingabe, Suchen und Ändern 2").Cells(Wiederholungen_Vorname, 8)
test1 = Sheets("Eingabe, Suchen und Ändern 2").Cells(Wiederholungen_Vorname, 9)
test2 = Sheets("Eingabe, Suchen und Ändern 2").Cells(Wiederholungen_Vorname, 10)
test3 = Sheets("Eingabe, Suchen und Ändern 2").Cells(Wiederholungen_Vorname, 11)
End If
Next
End Sub
Grüße Achim
Antwort 3 von coros
Hallo Achim,
so ganz weiß ich jetzt noch nicht, was Du mit
meinst. Geht es Dir nur beim Datenübernehmen darum oder auch beim Befüllen der Boxen in der UserForm?
Für das Problem, dass bei Dir die Daten erst ab Zeile 3 beginnen, suche in dem gesamten VBA Code die Zeilen, in der ein Befehl mit For beginnt. ändere hinter dem Gleichheitszeichen (=) die Zahl 2 in eine 3 um und es werden Dir die Daten erst ab Zeile 3 angezeigt.
Ich hoffe Dir erst mal weitergeholfen zu haben. Für die nicht beantwortetet Frage müsstest Du noch die erforderliche Antwort posten.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
so ganz weiß ich jetzt noch nicht, was Du mit
Zitat:
ich müßte aber nach PLZ und dann nach Ort suchen
ich müßte aber nach PLZ und dann nach Ort suchen
meinst. Geht es Dir nur beim Datenübernehmen darum oder auch beim Befüllen der Boxen in der UserForm?
Für das Problem, dass bei Dir die Daten erst ab Zeile 3 beginnen, suche in dem gesamten VBA Code die Zeilen, in der ein Befehl mit For beginnt. ändere hinter dem Gleichheitszeichen (=) die Zahl 2 in eine 3 um und es werden Dir die Daten erst ab Zeile 3 angezeigt.
Ich hoffe Dir erst mal weitergeholfen zu haben. Für die nicht beantwortetet Frage müsstest Du noch die erforderliche Antwort posten.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 4 von achim115
Hallo Oliver,
erst mal Danke für deine Hilfe, ich finde es wirklich super was Du ( Ihr ) da macht.
Aber nun zu meinen Problem.
Bei deinem Beispiel muß man ja erst den Nachnamen und dann den Vornamen angeben um die dazugehörigen Daten zu Suchen.
Bei mir müßte das ganze aber erst nach PLZ und dann Ort geschehen.
Es geht so mit nur um die Suche von Daten, wenn man Daten dazufügen will ist ja die Reihenfolge egal.
Ich hoffe so mit deine Frage beantwortet zu haben.
Ich lerne immer mehr dazu so langsam komme ich auch dahinter.
Gruß und noch einen schönen Abend
Achim
erst mal Danke für deine Hilfe, ich finde es wirklich super was Du ( Ihr ) da macht.
Aber nun zu meinen Problem.
Bei deinem Beispiel muß man ja erst den Nachnamen und dann den Vornamen angeben um die dazugehörigen Daten zu Suchen.
Bei mir müßte das ganze aber erst nach PLZ und dann Ort geschehen.
Es geht so mit nur um die Suche von Daten, wenn man Daten dazufügen will ist ja die Reihenfolge egal.
Ich hoffe so mit deine Frage beantwortet zu haben.
Ich lerne immer mehr dazu so langsam komme ich auch dahinter.
Gruß und noch einen schönen Abend
Achim
Antwort 5 von coros
Moin Micha,
tausche den nachfolgenden Code gegen den in der Beispieldatei aus.
Aufgrund der Länge des VBA Codes und die damit in diesem Forum vorhandenen Begrenzung, folgt der zweite Teil in der nächsten Antwort.
tausche den nachfolgenden Code gegen den in der Beispieldatei aus.
Private Sub Daten_übernehmen_Click()
Dim Zeile As Long
´Schleife und Abfrage zum Prüfen ob Datensatz in Tabellenblatt bereits vorhanden
For Wiederholungen_Eintrag = 2 To Range("B65536").End(xlUp).Row
If Nachname.Text = Cells(Wiederholungen_Eintrag, 6) _
And Vorname.Text = Cells(Wiederholungen_Eintrag, 5) Then
Eintrag_vorhanden = 1
Zeile_Eintrag = Wiederholungen_Eintrag
End If
Next
´Wenn Eintrag bereits vorhanden, die Daten in der entsprechenden Zeile abändern
If Eintrag_vorhanden = 1 Then
Sheets("Eingabe, Suchen und Ändern").Cells(Zeile_Eintrag, 1) = Vorname
Sheets("Eingabe, Suchen und Ändern").Cells(Zeile_Eintrag, 2) = Nachname
Sheets("Eingabe, Suchen und Ändern").Cells(Zeile_Eintrag, 3) = Strasse
Sheets("Eingabe, Suchen und Ändern").Cells(Zeile_Eintrag, 4) = Nummer
Sheets("Eingabe, Suchen und Ändern").Cells(Zeile_Eintrag, 5) = Postleitzahl
Sheets("Eingabe, Suchen und Ändern").Cells(Zeile_Eintrag, 6) = Ort
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 1) = Vorname
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 2) = Nachname
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 3) = Strasse
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 4) = Nummer
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 5) = Postleitzahl
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 6) = Ort
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 7) = Geburtsdatum
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Eintrag, 8) = Bemerkungen
SendKeys "{TAB}"
SendKeys "{TAB}"
´ansonsten Daten in erste leere Zeile eintragen
Else
Zeile_Blatt_1 = Sheets("Eingabe, Suchen und Ändern").Range("A65536").End(xlUp).Offset(1, 0).Row
Zeile_Blatt_2 = Sheets("Eingabe, Suchen und Ändern 2").Range("A65536").End(xlUp).Offset(1, 0).Row
Sheets("Eingabe, Suchen und Ändern").Cells(Zeile_Blatt_1, 1) = Vorname
Sheets("Eingabe, Suchen und Ändern").Cells(Zeile_Blatt_1, 2) = Nachname
Sheets("Eingabe, Suchen und Ändern").Cells(Zeile_Blatt_1, 3) = Strasse
Sheets("Eingabe, Suchen und Ändern").Cells(Zeile_Blatt_1, 4) = Nummer
Sheets("Eingabe, Suchen und Ändern").Cells(Zeile_Blatt_1, 5) = Postleitzahl
Sheets("Eingabe, Suchen und Ändern").Cells(Zeile_Blatt_1, 6) = Ort
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 1) = Vorname
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 2) = Nachname
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 3) = Strasse
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 4) = Nummer
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 5) = Postleitzahl
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 6) = Ort
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 7) = Geburtsdatum
Sheets("Eingabe, Suchen und Ändern 2").Cells(Zeile_Blatt_2, 8) = Bemerkungen
SendKeys "{TAB}"
SendKeys "{TAB}"
End If
´Kombinationsfelder "Vorname" und "Nachname" leeren
Nachname.Clear
Vorname.Clear
´Schleife und Abfrage zum erneuten Füllen der ComboBox "Nachname"
For Wiederholungen = 3 To Range("A65536").End(xlUp).Row
If WorksheetFunction.CountIf(Range("B2:B" & Wiederholungen), _
Cells(Wiederholungen, 6)) = 1 Then _
Nachname.AddItem Cells(Wiederholungen, 6)
Next
End Sub
Private Sub Eingabe_beenden_Click()
Unload Me
End Sub
Private Sub Nachname_Change()
Vorname.Clear
´Schleife und If Abfrage zum Finden von passenden Vornamen zu dem ausgewähleten Nachnamen
For Wiederholungen = 2 To Range("B65536").End(xlUp).Row
If Nachname.Text = Cells(Wiederholungen, 5) Then
´gefundene Vornamen in Spalte IV auflisten
Cells(Range("IV65536").End(xlUp).Offset(1, 0).Row, 256) = Cells(Wiederholungen, 6)
End If
Next
´Schleife und If Abfrage zum Füllen der ComboBox "Vorname"
For Wiederholungen = 2 To Range("IV65536").End(xlUp).Row
Vorname.AddItem (Cells(Wiederholungen, 256))
Next
´Aufgelistete Vornamen löschen
Range("IV:IV").ClearContents
End SubAufgrund der Länge des VBA Codes und die damit in diesem Forum vorhandenen Begrenzung, folgt der zweite Teil in der nächsten Antwort.
Antwort 6 von coros
Ab hier geht’s weiter.
Mit dem Code werden Dir die beiden ComboBoxen je nach Auswahl mit PLZ und Ort gefüllt.
Ich hoffe, Du kommst klar. Bei Fragen melde Dich bitte
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Private Sub UserForm_Initialize()
MsgBox "Bitte zuerst eine Postleitzahl und danach den Ort wählen, damit Datensätze angezeigt werden können."
´Schleife zum Füllen der ComboBox "Nachname" ohne Duplikate
For Wiederholungen = 3 To Range("A65536").End(xlUp).Row
If WorksheetFunction.CountIf(Range("E2:E" & Wiederholungen), _
Cells(Wiederholungen, 5)) = 1 Then _
Nachname.AddItem Cells(Wiederholungen, 5)
Next
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
´Fehlermeldung, wenn versucht wird, die UserForm über das rote
´Schließenkreuz oben rechts zu schließen
If CloseMode = 0 Then
Cancel = 1
MsgBox "Bitte verlassen Sie das Dialogfeld mit den Schaltflächen.", _
vbOKOnly + vbInformation, "Bitte Schaltfläche betätigen."
End If
End Sub
Private Sub Vorname_Change()
´Schleife und If Abfrage zum Füllen der restlichen Textfelder
For Wiederholungen_Vorname = 3 To Range("B65536").End(xlUp).Row
If Nachname.Text = Cells(Wiederholungen_Vorname, 5) _
And Vorname.Text = Cells(Wiederholungen_Vorname, 6) Then
Strasse = Cells(Wiederholungen_Vorname, 3)
Nummer = Cells(Wiederholungen_Vorname, 4)
Postleitzahl = Cells(Wiederholungen_Vorname, 1)
Ort = Cells(Wiederholungen_Vorname, 2)
End If
Next
For Wiederholungen_Vorname = 3 To Sheets("Eingabe, Suchen und Ändern 2").Range("B65536").End(xlUp).Row
If Nachname.Text = Sheets("Eingabe, Suchen und Ändern 2").Cells(Wiederholungen_Vorname, 5) _
And Vorname.Text = Sheets("Eingabe, Suchen und Ändern 2").Cells(Wiederholungen_Vorname, 6) Then
Geburtsdatum = Sheets("Eingabe, Suchen und Ändern 2").Cells(Wiederholungen_Vorname, 7)
Bemerkungen = Sheets("Eingabe, Suchen und Ändern 2").Cells(Wiederholungen_Vorname, 8)
End If
Next
End SubMit dem Code werden Dir die beiden ComboBoxen je nach Auswahl mit PLZ und Ort gefüllt.
Ich hoffe, Du kommst klar. Bei Fragen melde Dich bitte
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 7 von achim115
Hallo Oliver,
vielen Dank für deine Hilfe den Code den du mir geben hast funktionierte so weit ganz gut, ich mußte aber noch ein paar Änderungen machen da immer eine Fehlermeldung kam. Den Fehler habe ich aber nun doch selber gefunden, da ich ja wie gesagt dazu lernen möchte und nur durch solche Fehler lernt man dazu.
Also noch einmal vielen, vielen Dank, wenn ich nicht mehr weiter komme werd ich mich mit Sicherheit wieder melden.
Gruß
Achim
vielen Dank für deine Hilfe den Code den du mir geben hast funktionierte so weit ganz gut, ich mußte aber noch ein paar Änderungen machen da immer eine Fehlermeldung kam. Den Fehler habe ich aber nun doch selber gefunden, da ich ja wie gesagt dazu lernen möchte und nur durch solche Fehler lernt man dazu.
Also noch einmal vielen, vielen Dank, wenn ich nicht mehr weiter komme werd ich mich mit Sicherheit wieder melden.
Gruß
Achim
Antwort 8 von achim115
Hallo,
ich bin es wieder, ich habe leider noch ein kleines Problem mit dem oben genanten Code er funktioniert super, nur wenn ich die Daten über die EingabeBox eingebe und dann sortieren will ( Name , PlZ )funktioniert das ganze nicht, erst wenn ich die PLZ per Hand eingebe also in der Tabelle die Daten ändere und nicht über die EingabeBox. ( Die Spalte ist als Zahl formatiert )
Ich hoffe ich habe mich so einigermaßen deutlich ausgedrückt was ich meinte.
Gruß
Achim
ich bin es wieder, ich habe leider noch ein kleines Problem mit dem oben genanten Code er funktioniert super, nur wenn ich die Daten über die EingabeBox eingebe und dann sortieren will ( Name , PlZ )funktioniert das ganze nicht, erst wenn ich die PLZ per Hand eingebe also in der Tabelle die Daten ändere und nicht über die EingabeBox. ( Die Spalte ist als Zahl formatiert )
Ich hoffe ich habe mich so einigermaßen deutlich ausgedrückt was ich meinte.
Gruß
Achim
Zitat:
Admininfo: bitte vermeide Mehrfachanfragen in verschiedenen, bzw. gleichen Gruppen. Siehe FAQ 2.
Admininfo: bitte vermeide Mehrfachanfragen in verschiedenen, bzw. gleichen Gruppen. Siehe FAQ 2.

