Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1656to1660
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
Zeile ermittlen anhand von 3 ComboBoxen
25.11.2018 13:00:43
3
Hi liebe Leute,
ich habe ein paar Basiskentnisse in VBA und benötige bitte eure Hilfe.
Bei meiner Tabelle werden über eine userform Mitglieder unseres Fitnessstudios eingetragen. Mein Code ermittelt die letzte Zeile oder die zu bearbeitende Zeile anhand des Nachnamens. Ist der Nachname vorhanden, wird der Eintrag bearbeitet. Ist er nicht vorhanden, wird am Ende der Tabelle ein neuer Eintrag erstellt. Das funktioniert soweit ganz gut. Sobald natürlich zwei Mitglieder den selben Nachnamen haben, aber unterschiedliche Vornamen, wird der bisherige Eintrag mit dem neuen Vornamen überschrieben.
Wie kann ich hier einen Abgleich von 3 Kriterien einbauen?
Ich möchte nur noch einen neuen Eintrag anlegen, wenn ComboBoxVorname, ComboBoxNachname, ComboBoxStudio nicht in dieser Konstellation vorhanden sind.
BSP:
Alex Maier aus Berlin wird nicht mehr von Alex Maier aus Düsseldorf überschrieben. Es sollten danach beide Einträge vorhanden sein
Ich freue mich auf euer Feedback :)
Private Sub UserForm_Activate()
If l = 0 Then GoTo Ende
ComboBoxVorname = cellS(l + 6, 4)
ComboBoxNachname = cellS(l + 6, 3)
ComboBoxStudio = cellS(l + 6, 5)
Ende:
End Sub
Private Sub btnCancel_Click()
l = 0
Unload Me
End Sub
Private Sub btnOk_click()
'Definieren der Comboboxen, Suche startet ab Zeile 7
Dim lZeile As Variant
Dim rgSearchV As Range
Dim rgSearchN As Range
Dim rgSearchS As Range
Set rgSearchV = Range("D7:D1006")
Set rgSearchN = Range("C7:C1006")
Set rgSearchS = Range("E7:E1006")
Dim ZelleV As Range
Dim ZelleN As Range
Dim ZelleS As Range
Set ZelleV = rgSearchV.Find(ComboBoxVorname.Value)
Set ZelleN = rgSearchN.Find(ComboBoxNachname.Value)
Set ZelleS = rgSearchS.Find(ComboBoxStudio.Value)
'ermitteln der nächsten freien Zeile
lZeile = Evaluate("=MATCH(TRUE,INDEX(C7:C1006="""",0,0),0)+6")
If IsNumeric(lZeile) Then
If l > 0 Then lZeile = l + 6 'Tabelle beginnt in Zeile 7
Else
MsgBox "Alle Zeilen belegt"
Exit Sub
End If
'Sicherheitsabfrage
If ComboBoxVorname.Value = "" Then
MsgBox "Bitte einen Vornamen eingeben!", _
vbExclamation
Exit Sub
Else
'Sicherheitsabfrage
If ComboBoxNachname.Value = "" Then
MsgBox "Bitte einen Nachnamen eingeben!", _
vbExclamation
Exit Sub
Else
'Sicherheitsabfrage
If ComboBoxStudio.Value = "" Then
MsgBox "Bitte ein Studio angeben!", _
vbExclamation
Exit Sub
Else
ActiveSheet.Unprotect
'Neuer Eintrag, falls Nachname nicht vorhanden
If ZelleN Is Nothing Then
'Werte auslesen und eintragen
cellS(lZeile, 4).Value = ComboBoxVorname
cellS(lZeile, 3).Value = ComboBoxNachname
cellS(lZeile, 5).Value = ComboBoxStudio
cellS(lZeile, 6) = Date
'Nachname vorhanden, Zeile bearbeiten
Else
lZeile = ZelleN.Row
'Ermitteln wie oft er uns diesen Monat schon besucht hat (Max 4x pro  _
Monat möglich)
anzahl = Application.CountA(cellS(lZeile, 6).Resize(1, 4)) + 1
If anzahl 
Private Sub UserForm_Initialize()
Overlay_Besucher_Eintrag.ComboBoxVorname.SetFocus
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then i = 0
End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile ermittlen anhand von 3 ComboBoxen
25.11.2018 13:12:19
3
Hallo Matthias,
ein Vorschlag:
Warum vergibst du nicht für deine Mitglieder "einmalige" Kundennummern und fragst die dann auf ihr Vorhandensein ab?
Ich nehme mal an, dass es in Berlin durchaus mehrere Alex Maier gibt. Und wenn zwei davon bei dir im Fitnes-Studio Mitglied werden wollen, dann stehst du wieder vor dem gleichen Dilemma. Selbst wenn du dann noch ein Geburtsdatum mit in die Prüfung aufnimmst, kannst du Mehrfachvorkommen nicht ausschließen.
Das Spiel kannst dann ja weiter treiben und noch den Mädchenname der Mutter mit erfassen.
Also einfach eine "eindeutige und einmalige" Mitgliedsnummer vergeben und du bist das ganze Problem los.
Und noch was. Es wird hier kaum jemand Lust dazu verspüren deine Datei mit der Userform nachzubauen. Deine Chance auf Hilfe steigt deutlich, wenn du deine Datei hier hochlädst (Mitgliedernamen anonymisieren).
Gruß Werner
Anzeige
AW: Zeile ermittlen anhand von 3 ComboBoxen
25.11.2018 14:39:57
3
Hallo Werner,
tut mir leid. Du hattest hierzu natürlich nicht genügend Informationen von mir bekommen. Wir haben in unserem Franchising eine Absprache. Mitglieder innerhalb unseres Franchisings können in jedem Standort (deutschlandweit) 4x pro Monat kostenlos trainieren. Genau hierfür möchte ich eine Tabelle führen um den Überblick zu behalten.
Das heißt die Liste spiegelt nicht meine Kunden, sondern lediglich Fremdmitglieder. Da wir an unseren Standorten teilweise unterschiedliche Software verwenden, haben wir keinen Überblick wie oft Fremdmitglieder bei uns wirklich trainieren.
Ich habe die Liste wie gewünscht anonymsiert hochgeladen :)
https://www.herber.de/bbs/user/125645.xlsb
Anzeige
AW: Zeile ermittlen anhand von 3 ComboBoxen
25.11.2018 15:00:16
3
Ich habe den Beitrag nochmal als offene Frage markiert :)
AW: Zeile ermittlen anhand von 3 ComboBoxen
25.11.2018 16:45:51
3
Hallo Matthias,
hier mal deine Mappe. Deinen Code im OK Button habe ich komplett auskommentiert und jetzt mal nur den Code zur Prüfung, ob die in der Userform erfasste Person (Vorname, Nachname, Studio) bereits vorhanden ist.
https://www.herber.de/bbs/user/125647.xlsb
Gruß Werner
und falsch noch dazu...
25.11.2018 18:47:32
Werner
Hallo Onur,
...kann mir deine Version im Moment leider nicht anschauen. Aber meine ist eh falsch, da so nur der erste Fund geprüft wird, wenn dann müsste noch eine Do Loop Schleife rein.
Gruß Werner
Anzeige
AW: und falsch noch dazu...
25.11.2018 18:52:09
onur
Hi Werner,
Sorry, Mißverständnis: mit "kompliziert" meinte ich nicht Deinen, sondern den Originalcode.
Ich pflege normalerweise nicht den Code von anderen Helfern testen und zu bewerten, da das ja eigentlich die Aufgabe des Thread-Eröffners ist.
Gruß
Onur
AW: und falsch noch dazu...
28.11.2018 01:58:01
Matthias
Hallo Onur und Werner,
ich danke euch vielmals für die Hilfe. Der Code von Onur hat mein Problem gelöst.
Es tut mir leid das mein Originalcode so kompliziert ist. Bin eben noch in der Lernphase :)

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige