Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1484to1488
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
Überprüfen ob Name in Liste vorhanden
31.03.2016 17:19:45
Michael
Hallo liebe Excel Spezialisten,
ich komme mal wieder nicht weiter. Ich versuche mich schon seid Stunden an der Lösung, leider Erfolglos.
Wie unten zu sehen füge ich über eine userform Daten aus Textboxen in einem Tabellenblatt hinzu.
Jetzt möchte ich aber, dass vorher überprüft wir, ob in dieser Zeile:
Tabelle1.Cells(intErsteLeereZeile, 3).Value = Me.txtName.Value
der Name schon vorhanden ist! Wenn ja, soll eine Msg kommen und die Übertragung der Daten soll abgebrochen werden.
Private Sub cmdEingabe_Click()
Dim intErsteLeereZeile As Long
'Fragt ab der Mitarbeiter wirklich hinzugefügt  werden soll
If MsgBox("Möchtest du den Mitarbeiter wirklich hinzufügen?", vbYesNo) = vbNo Then
Unload Me
FormularMitarbeiter.Show
Else
'Sucht die letzte Zeile
intErsteLeereZeile = Tabelle1.Cells(Rows.Count, 3).End(xlUp).Row + 1
'Fügt neuen Mitarbeiter hinzu und schliesst das Formular
Tabelle1.Cells(intErsteLeereZeile, 1).Value = Me.txtPersonalnummer.Value
Tabelle1.Cells(intErsteLeereZeile, 2).Value = Me.txtVorname.Value
Tabelle1.Cells(intErsteLeereZeile, 3).Value = Me.txtName.Value
Tabelle1.Cells(intErsteLeereZeile, 4).Value = Me.txtGeburtsdatum.Value
Tabelle1.Cells(intErsteLeereZeile, 5).Value = Me.txtEintritt.Value
Tabelle1.Cells(intErsteLeereZeile, 7).Value = Me.txtBeruf.Value
Tabelle1.Cells(intErsteLeereZeile, 8).Value = Me.txtAbteilung.Value
Tabelle1.Cells(intErsteLeereZeile, 9).Value = Me.txtEntgeltgruppe.Value
Tabelle1.Cells(intErsteLeereZeile, 10).Value = Me.txtStufe.Value
Tabelle1.Cells(intErsteLeereZeile, 11).Value = Me.txtSchlüsselnummer.Value
Tabelle1.Cells(intErsteLeereZeile, 14).Value = Me.txtLeistungsbeurteilung.Value
Tabelle1.Cells(intErsteLeereZeile, 16).Value = Me.txtKF.Value
Tabelle1.Cells(intErsteLeereZeile, 23).Value = Me.txtKostenstelle.Value
Unload FormularMitarbeiter
FormularMitarbeiter.Show
End If
End Sub
Vielen Dank schonmal für euer Bemühen
Gruss aus dem Bergischen Land
Michael

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

Betreff
Datum
Anwender
Anzeige
AW: Überprüfen ob Name in Liste vorhanden
31.03.2016 17:41:29
Werner
Hallo Michael,
in der Zeile, die du hier angibst, kann kein Name vorhanden sein, denn es ist die erste leere Zeile, da steht also nichts drin.
Du willst wohl eher überprüft haben, ob in Spalte C der Name schon vorhanden ist, den du gerade über die Userform eintragen willst.
Das halte ich hier aber für ungünstig. Was wenn es ein neuer Mitarbeiter mit gleichem Familienname ist wie ein bereits erfasster Mitarbeiter? Dann müsstest du auch noch den Vornamen und das Geburtsdatum prüfen. Und selbst da könnte theoretisch eine Person mit gleichem Vor-/Familienname und Geburtsdatum existieren - unwahrscheinlich, dass diese beiden Personen dann auch noch bei der gleichen Firma beschäftigt sind - aber möglich.
Wäre es nicht möglich die Personalnummer zu prüfen? Die sollte eigentlich einmalig sein.
Gruß Werner

Anzeige
AW: Überprüfen ob Name in Liste vorhanden
31.03.2016 20:07:09
Michael
Hallo Beverly und Werner, ersmal vielen Dank für die Antworten.
Als VBA Anfänger habe ich mich wohl missverständlich ausgedrückt.
Es wird in Tabelle1, Spalte 3 die letzte beschriebene Zeile gesucht, wenn diese gefunden wurde werden die Eingaben aus Textboxen (siehe oben, z.B txtName) durch eine CommandButton Bestätigumg in die Zellen 1,2,3,4,5,7,8,9,10,11,14,16 und 23 der Tabelle1 geschrieben.
Jetzt möchte ich vorher Prüfen ob in Spalte3 der Tabelle1 (dort stehen ja die Namen), wir können auch Spalte1 (dort stehen ja die Personalnummern) nehmen, der Name/die Personalnummer schon vorhanden ist und wenn ja eine Msg und einen Abbruch der Eingabe bekommen.
Ich habe die Befehle von Beerly schon rein kopier, aber leider klappt das nicht.
Gruß Michael

Anzeige
AW: Überprüfen ob Name in Liste vorhanden
31.03.2016 20:10:36
Beverly
Hi Michael,
und WAS klappt nicht?


AW: Überprüfen ob Name in Liste vorhanden
31.03.2016 17:46:09
Beverly
Hi michael,
ich nehme an du meinst nicht, ob der Name in dieser Zeile vorhanden ist sondern in Spalte 3?
    Else
If Application.CountIf(Tabelle1.Columns(3), Me.txtName.Value) = 0 Then
Tabelle1.Cells(intErsteLeereZeile, 1).Value = Me.txtPersonalnummer.Value
Tabelle1.Cells(intErsteLeereZeile, 2).Value = Me.txtVorname.Value
Tabelle1.Cells(intErsteLeereZeile, 3).Value = Me.txtName.Value
Tabelle1.Cells(intErsteLeereZeile, 4).Value = Me.txtGeburtsdatum.Value
Tabelle1.Cells(intErsteLeereZeile, 5).Value = Me.txtEintritt.Value
Tabelle1.Cells(intErsteLeereZeile, 7).Value = Me.txtBeruf.Value
Tabelle1.Cells(intErsteLeereZeile, 8).Value = Me.txtAbteilung.Value
Tabelle1.Cells(intErsteLeereZeile, 9).Value = Me.txtEntgeltgruppe.Value
Tabelle1.Cells(intErsteLeereZeile, 10).Value = Me.txtStufe.Value
Tabelle1.Cells(intErsteLeereZeile, 11).Value = Me.txtSchlüsselnummer.Value
Tabelle1.Cells(intErsteLeereZeile, 14).Value = Me.txtLeistungsbeurteilung.Value
Tabelle1.Cells(intErsteLeereZeile, 16).Value = Me.txtKF.Value
Tabelle1.Cells(intErsteLeereZeile, 23).Value = Me.txtKostenstelle.Value
Unload FormularMitarbeiter
FormularMitarbeiter.Show
Else
MsgBox "Bereits vorhanden"
End If
End If
End Sub


Anzeige
AW: Überprüfen ob Name in Liste vorhanden
31.03.2016 20:14:49
Michael
Hier schmeisst er mir beim hinzufügen von Neuem Mitarbeiter den fehler Laufzeitfehler 1004
Anwendungs und Objektdefiniertzer Fehler. und markiert die Zeile
Tabelle1.Cells(intErsteLeereZeile, 1).Value = Me.txtPersonalnummer.Value
gelb.
Private Sub cmdEingabe_Click()
Dim intErsteLeereZeile As Long
'Fragt ab der Mitarbeiter wirklich hinzugefügt  werden soll
If MsgBox("Möchtest du den Mitarbeiter wirklich hinzufügen?", vbYesNo) = vbNo Then
Unload Me
FormularMitarbeiter.Show
Else
If Application.CountIf(Tabelle1.Columns(3), Me.txtName.Value) = 0 Then
Tabelle1.Cells(intErsteLeereZeile, 1).Value = Me.txtPersonalnummer.Value
Tabelle1.Cells(intErsteLeereZeile, 2).Value = Me.txtVorname.Value
Tabelle1.Cells(intErsteLeereZeile, 3).Value = Me.txtName.Value
Tabelle1.Cells(intErsteLeereZeile, 4).Value = Me.txtGeburtsdatum.Value
Tabelle1.Cells(intErsteLeereZeile, 5).Value = Me.txtEintritt.Value
Tabelle1.Cells(intErsteLeereZeile, 7).Value = Me.txtBeruf.Value
Tabelle1.Cells(intErsteLeereZeile, 8).Value = Me.txtAbteilung.Value
Tabelle1.Cells(intErsteLeereZeile, 9).Value = Me.txtEntgeltgruppe.Value
Tabelle1.Cells(intErsteLeereZeile, 10).Value = Me.txtStufe.Value
Tabelle1.Cells(intErsteLeereZeile, 11).Value = Me.txtSchlüsselnummer.Value
Tabelle1.Cells(intErsteLeereZeile, 14).Value = Me.txtLeistungsbeurteilung.Value
Tabelle1.Cells(intErsteLeereZeile, 16).Value = Me.txtKF.Value
Tabelle1.Cells(intErsteLeereZeile, 23).Value = Me.txtKostenstelle.Value
Unload FormularMitarbeiter
FormularMitarbeiter.Show
Else
MsgBox "Bereits vorhanden"
End If
End If
End Sub

Gruß michael

Anzeige
AW: Überprüfen ob Name in Liste vorhanden
31.03.2016 20:47:22
Werner
Hallo Michael,
die Codezeile zum ermitteln der ersten freien Zeile solltest du schon drin lassen.
Private Sub cmdEingabe_Click()
Dim intErsteLeereZeile As Long
'Fragt ab der Mitarbeiter wirklich hinzugefügt  werden soll
If MsgBox("Möchtest du den Mitarbeiter wirklich hinzufügen?", vbYesNo) = vbNo Then
Unload Me
FormularMitarbeiter.Show
Else
If Application.CountIf(Tabelle1.Columns(3), Me.txtName.Value) = 0 Then
intErsteLeereZeile = Tabelle1.Cells(Rows.Count, 3).End(xlUp).Row + 1
Tabelle1.Cells(intErsteLeereZeile, 1).Value = Me.txtPersonalnummer.Value
Tabelle1.Cells(intErsteLeereZeile, 2).Value = Me.txtVorname.Value
Tabelle1.Cells(intErsteLeereZeile, 3).Value = Me.txtName.Value
Tabelle1.Cells(intErsteLeereZeile, 4).Value = Me.txtGeburtsdatum.Value
Tabelle1.Cells(intErsteLeereZeile, 5).Value = Me.txtEintritt.Value
Tabelle1.Cells(intErsteLeereZeile, 7).Value = Me.txtBeruf.Value
Tabelle1.Cells(intErsteLeereZeile, 8).Value = Me.txtAbteilung.Value
Tabelle1.Cells(intErsteLeereZeile, 9).Value = Me.txtEntgeltgruppe.Value
Tabelle1.Cells(intErsteLeereZeile, 10).Value = Me.txtStufe.Value
Tabelle1.Cells(intErsteLeereZeile, 11).Value = Me.txtSchlüsselnummer.Value
Tabelle1.Cells(intErsteLeereZeile, 14).Value = Me.txtLeistungsbeurteilung.Value
Tabelle1.Cells(intErsteLeereZeile, 16).Value = Me.txtKF.Value
Tabelle1.Cells(intErsteLeereZeile, 23).Value = Me.txtKostenstelle.Value
Unload FormularMitarbeiter
FormularMitarbeiter.Show
Else
MsgBox "Bereits vorhanden"
End If
End If
EndThen
Gruß Werner

Anzeige
AW: Überprüfen ob Name in Liste vorhanden
31.03.2016 21:26:35
Michael
Hallo Werner, habe das EndThen durch End Sub ersetzt und danach lief es. Vielen vielen Dank für deine Hilfe.
Schönen abend noch

AW: Danke für die Rückmeldung
31.03.2016 22:32:26
Werner
uuups, hab ich doch glatt übersehen, ist mir wohl beim Kopieren rein gerutscht.

325 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige