Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1456to1460
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

Abfrage Name Vorname

Abfrage Name Vorname
09.11.2015 08:16:25
Werner
Hallo Zusammen,
ich habe in einer Tabelle in Spalte E Namen Stehen und in der Spalte F die Vornamen.
Über eine User Form lasse ich Daten in diese Tabelle schreiben. Das die Namen nicht 2 mal eingetragen werden können, frage ich ab ob die Namen schon eingetragen wurden.
In der Spalte F möchte ich die Vornamen dazu abfragen. So wie ich das mache funktioniert das nicht, da wird nicht der dazugehörige Vorname abgefragt sondern geprüft ob der Vorname schon mal in der Spalte enthalten ist.
Wie muss der Code geändert werden , dass der zugehörige Vorname abgefragt wird.
'Abfrage ob der Name in der E und der Vorname in Spalte F schon enthalten ist, wenn ja Abbruch
If WorksheetFunction.CountIfs(Sheets("Eingaben").Columns(5), cboName) Then
If WorksheetFunction.CountIfs(Sheets("Eingaben").Columns(6), txtVorname) Then
MsgBox ("Name steht schon in der Liste," & vbCrLf & vbCrLf & "kann nicht 2 mal eigegeben werden!!!")
GoTo Sprung2
End If
End If
Gruß Werner

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

Betreff
Datum
Anwender
Anzeige
AW: mit find und findnext
09.11.2015 08:50:43
hary
Moin
Dazu brauchst du find. Der Nachname koennte auch Doppelt sein.
Probier mal(ungetestet).
Dim c As Object
Dim firstAddress As String
With Worksheets("Eingaben").Columns(5)
Set c = .Find(cboName, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
If c.Offset(0, 1) = txtVorname Then
MsgBox "doppelt"
Exit Sub
End If
Set c = .FindNext(c)
If c.Address = firstAddress Then Exit Sub
Loop While Not c Is Nothing
End If
End With

gruss hary

AW: mit find und findnext
09.11.2015 10:23:03
Werner
Hallo Hary,
ich schicke mal den kompletten Code.
Wenn ich da diene Änderung reinkopiere wird keine Eintragung gemacht.
Private Sub cmdEintragen_Click()
If cboName.text = "" Then
MsgBox ("Bitte den Namen auswählen oder eintragen!!!")
GoTo Sprung
End If
'Abfrage ob der Name in der E und der Vorname in Spalte F schon enthalten ist, wenn ja abbruch
If WorksheetFunction.CountIfs(Sheets("Eingaben").Columns(5), cboName) Then
If WorksheetFunction.CountIfs(Sheets("Eingaben").Columns(6), txtVorname) Then
MsgBox ("Name steht schon in der Liste," & vbCrLf & vbCrLf & "kann nicht 2 mal eigegeben  _
werden!!!")
GoTo Sprung2
End If
'End If
If cboName.text = "" Then
MsgBox ("Bitte den Namen auswählen!!!")
GoTo Sprung
End If
'If txtVorname.Text = "" Then
If (Me.txtVorname = "" Or (Me.txtVorname) = "Vorname") Then
MsgBox ("Bitte die Vornamen eintragen!!!")
GoTo Sprung
End If
'If cboParkplatz.Text = "" Then
If (Me.cboParkplatz = "" Or (Me.cboParkplatz) = "Parkplatz") Then
MsgBox ("Bitte den Parkplatz auswählen!!!")
GoTo Sprung
End If
'If cboAbteilung.Text = "" Then
If (Me.cboAbteilung = "" Or (Me.cboAbteilung) = "Abteilung") Then
MsgBox ("Bitte die Abteilung auswählen!!!")
GoTo Sprung
End If
ActiveSheet.Unprotect Password:="Eisenach32" 'Passwort aufheben
txtAusfahrt = "" 'Textbox Ausfahrt bei Einfahrt löschen
Dim ZEingabe As Range 'Deklaration einer Variablen
'Zeiger auf Zelle A2 auf dem Blatt Eingabe setzen
Set ZEingabe = Sheets("Eingaben").[A2]
While ZEingabe  "" 'Prüft ob Zelle leer
'wenn Zelle A3 belegt eine Zelle nach unten
Set ZEingabe = ZEingabe.Offset(1, 0)
Wend
'wert aus txtDatum (Datum) in erste leere Zelle der Spalte A schreiben
ZEingabe = Me.txtDatum
'wert 1 Zelle nach rechts aus txtUhrzeit (Uhrzeit) schreiben
ZEingabe.Offset(0, 1) = Me.txtEinfahrt
'wert 2 Zelle nach rechts aus txtUhrzeit (Uhrzeit) schreiben
ZEingabe.Offset(0, 2) = Me.txtAusfahrt
'wert 3 Zelle nach rechts aus cboKennzeichen (Kennzeichen) schreiben
ZEingabe.Offset(0, 3) = Me.cboFirma
'wert 4 Zellen nach rechts aus cboName (Name) schreiben
ZEingabe.Offset(0, 4) = Me.cboName
'wert 5 Zellen nach rechts aus txtVorname (Vorname) schreiben
ZEingabe.Offset(0, 5) = Me.txtVorname
'wert 7 Zellen nach rechts aus cboParkplatz (Parkplatz) schreiben
ZEingabe.Offset(0, 7) = Me.cboParkplatz
'wert 8 Zellen nach rechts aus cboAbteilung (Abteilung) schreiben
ZEingabe.Offset(0, 8) = Me.cboAbteilung
'wert 10 Zellen nach rechts aus txtPersonen (Personen) schreiben
ZEingabe.Offset(0, 10) = Me.txtPersonen
'wert 11 Zellen nach rechts aus chkBrilleAusg (Brille ausgegeben) schreiben
ZEingabe.Offset(0, 14) = "Einfahrgenehmigung"
ActiveSheet.Protect Password:="Eisenach32" 'Passwort aufheben
Unload frmAbteilungsleiterEinf
ActiveWorkbook.Save
Sprung:
Sprung2:
End Sub
Gruß Werner

Anzeige
AW: mit find und findnext
09.11.2015 10:52:21
hary
Moin
Dein Code kann noch eingekuerzt/vereinfacht werden.
Habe aber nicht die Zeit/Lust das Form. nachzubauen.
Bsp.-mappe waere hilfreich.
Ist das aktive Blatt "Eingaben" ?
Dim c As Object
Dim firstAddress As String
With Worksheets("Eingaben").Columns(5)
Set c = .Find("hallo", LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
If c.Offset(0, 1) = "aber" Then
MsgBox "doppelt"
Exit Sub
End If
Set c = .FindNext(c)
If c.Address = firstAddress Then Exit Sub
Loop While Not c Is Nothing
Else 'wenn Name nicht vorhanden dann eintragen in naechste freie
' hier Code zum eintragen
End If
End With

gruss hary

Anzeige
AW: Abfrage Name Vorname
09.11.2015 10:32:19
Daniel
Hi
du musst die Prüfung so schreiben, in ein ZählenWenns:
das überprüft dann ob innerhalb eine Zeile Name UND Vorname mit den Eigaben übereinstimmen.
If Worksheetfunction.Countifs(Sheets("Eingaben").Columns(5), cboName, Sheets("Eingaben"). _
Columns(6), txtVorname) then
Msgbox "..."
Goto Sprung2
End If
Gruß Daniel

AW: Abfrage Name Vorname
09.11.2015 10:38:59
Werner
Hallo Daniel,
danke für die schnelle Hilfe, so funktioniert es.
Gruß Werner

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige