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

Doppelte Einträge verweiden

Doppelte Einträge verweiden
26.09.2013 11:21:28
Christian
Hallo Freund
Ich habe ein Formular mit 8 Textfelder. Wenn der Anwender auf "Einfügen" klickt soll jede Eingabe im Textfeld überprüft werden. Ist eine Angabe schon in der Tabelle vorhanden soll anhand einer Meldung angezeigt werden welche Eingabe shon vorhanden ist
Mein Problem ist, das in 2 Tabellen geschaut werden. Und das nächste Problem ist, das ich die Find Anweisung nicht ganz verstanden habe um mit dieser ein String Vergleich durchzuführen.
Danke

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelte Einträge verweiden
26.09.2013 13:13:41
Christian
Hallo Matthias
Die aktuelle Frage hat nichts damit zu tun.
Ich will nur einfach verhindern, der Anwender mehr als einmal was eingibt. Sollte das passieren soll der Anwender darüber informiert, das der Eintrag schon existiert und was davon schon existiert
Danke Matthias
Christian

AW: Doppelte Einträge vermeiden
26.09.2013 13:21:03
Rudi
Hallo,
Ist eine Angabe schon in der Tabelle vorhanden
egal wo?
Eine genauere Beschreibung und eine Beispielmappe wären hilfreich.
Gruß
Rudi

Anzeige
AW: Doppelte Einträge vermeiden
26.09.2013 14:57:34
Christian
Hallo Rudi
Mein Textfeld 1 speichert in Spalte B
Textfeld 2 in Spalte C
. .
. .
Textfeld 8 in Spalte I
Am Anfang ist die Tabelle leer. Sobald der Anwender eine Eingabe erfolgreich abgeschlossen hat und erneut eine Eingabe durchführt, soll der Inhalt der Textfelder mit den Inhalt der entsprechenden Spalte in der Tabelle verglichen werden. Wen Eingabe in der Tabelle forhanden ist, soll die Eingabe nicht möglich sein und mit einer Meldung angezeigt werden, welches Textfeld die Eingabe verhindert und warum.

Anzeige
Mehrfache Einträge vermeiden ...
26.09.2013 20:07:50
Matthias
Hallo
Bsp.
für Textbox1
Dim TbTxt As String, RnG As Range, MyBool As Boolean, MyRow&
If TextBox1.Value  "" Then
MyBool = True
MyRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
TbTxt = TextBox1.Text
For Each RnG In Range("A1:A" & MyRow)
If TbTxt = RnG.Value Then
MsgBox "Wert aus Textbox1" & vbLf & TbTxt & vbLf & " ist schon vorhanden "
MyBool = False
End If
Next
If MyBool Then Range("A" & MyRow) = TbTxt
End If

Analog für die anderen Textfelder


Userbild
Gruß Matthias

Anzeige
AW: Mehrfache Einträge vermeiden ...
27.09.2013 08:41:41
Christian
Hallo Matthias
Danke für deine großartige Unterstützung. Ich habe den Code auf meine Bezeichnungen angebaste
Ich habe den kompltten Code für den Button Einfügen hier gepostet. Obwohl ich ein vorhandenen Wert eintrage kommt keine Meldung und es wird trotztdem dieser Wert eingetragen
  Private Sub CommandButton_Einfügen_Click()
Dim WS As Worksheet
Dim Loletzte As Long
If MultiPage1.Value = 0 Then
Set WS = Worksheets("MyPortal")
Else
Set WS = Worksheets("OneERP")
End If
With WS
Loletzte = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
.Cells(Loletzte, 2) = TextBox_MyPortal_ID.Value
.Cells(Loletzte, 3) = TextBox_MyPortal_Bezeichnung.Value
.Cells(Loletzte, 4) = TextBox_S1_MyPortal.Value
.Cells(Loletzte, 5) = TextBox_S2_Myportal.Value
.Cells(Loletzte, 6) = TextBox_S3_Myportal.Value
.Cells(Loletzte, 7) = TextBox_S4_MyPortal.Value
.Cells(Loletzte, 8) = TextBox_S5_MyPortal.Value
.Cells(Loletzte, 9) = TextBox_S6_MyPortal.Value
If Me.MultiPage1.Value  0 Then
.Cells(Loletzte, 2) = TextBox_OneERP_ID.Value
.Cells(Loletzte, 3) = TextBox_OneERP_Bezeichnung.Value
.Cells(Loletzte, 4) = TextBox_S1_OneERP.Value
.Cells(Loletzte, 5) = TextBox_S2_OneERP.Value
.Cells(Loletzte, 6) = TextBox_S3_OneERP.Value
.Cells(Loletzte, 7) = TextBox_S4_OneERP.Value
.Cells(Loletzte, 8) = TextBox_S5_OneERP.Value
.Cells(Loletzte, 9) = TextBox_S6_OneERP.Value
End If
End With
Me.TextBox_MyPortal_ID = ""
Me.TextBox_MyPortal_Bezeichnung = ""
Me.TextBox_S1_MyPortal = ""
Me.TextBox_S2_Myportal = ""
Me.TextBox_S3_Myportal = ""
Me.TextBox_S4_MyPortal = ""
Me.TextBox_S5_MyPortal = ""
Me.TextBox_S6_MyPortal = ""
Me.TextBox_OneERP_ID = ""
Me.TextBox_OneERP_Bezeichnung = ""
Me.TextBox_S1_OneERP = ""
Me.TextBox_S2_OneERP = ""
Me.TextBox_S3_OneERP = ""
Me.TextBox_S4_OneERP = ""
Me.TextBox_S5_OneERP = ""
Me.TextBox_S6_OneERP = ""
Dim TbTxt As String, RnG As Range, MyBool As Boolean, MyRow&
If TextBox_MyPortal_ID.Value  "" Then
MyBool = True
MyRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
TbTxt = TextBox_MyPortal_ID.text
For Each RnG In Range("B3:B" & MyRow)
If TbTxt = RnG.Value Then
MsgBox "Wert aus TextBox_MyPortal_ID" & vbLf & TbTxt & vbLf & " ist schon vorhanden "
MyBool = False
End If
Next
If MyBool Then Range("B" & MyRow) = TbTxt
End If
End Sub

Anzeige
Cells(Rows.Count, 2) ...
27.09.2013 08:50:37
Matthias
Hallo Christian
   MyRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
TbTxt = TextBox_MyPortal_ID.text
For Each RnG In Range("B3:B" & MyRow)
MyRow holt sich die Zeile aus Spalte(1) !
MyRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
Dann prüfst Du aber Spalte("B")
For Each RnG In Range("B3:B" & MyRow) Das heißt wenn Du Spalte ("B") als Spalte(2) prüfen willst musst Du auch die 2 schreiben
MyRow = Cells(Rows.Count, 2).End(xlUp).Row + 1
Gruß Matthias

AW: Cells(Rows.Count, 2) ...
27.09.2013 09:57:07
Christian
Hallo Matthias
Ich habe mein Fehler behoben. Trotzdem besteht das Problem immer noch
Ich lade mal meine Datei hoch.
https://www.herber.de/bbs/user/87443.xlsm
Danke Matthias
Christian

Anzeige
Me.TextBox_MyPortal_ID ist ja auch leer
27.09.2013 12:55:57
Matthias
Hallo Christian
Du schreibst ja in der CodeZeile
    With WS
Loletzte = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
'!!!!!! 'hier schreibst Du ja nun schon die ID in Spalte(2) rein
.Cells(Loletzte, 2) = TextBox_MyPortal_ID.Value
Das heißt im weiteren Verlauf des Codes (fett)
    If TextBox_MyPortal_ID.Value  "" Then
    MyBool = True
    MyRow = Cells(Rows.Count, 2).End(xlUp).Row + 1
    TbTxt = TextBox_MyPortal_ID.text
    For Each RnG In Range("B3:B" & MyRow)
    If TbTxt = RnG.Value Then
    MsgBox "Wert aus TextBox_MyPortal_ID" & vbLf & TbTxt & vbLf & " ist schon vorhanden "
    MyBool = False
    End If
    Next
    If MyBool Then Range("B" & MyRow) = TbTxt
    End If
    


ist hier die TextBox_MyPortal_ID ja leer !!
Das heißt der Code wird nicht ausgeführt, da die If-Afrage =False ist
Es wird ja auf ungleich leer geprüft.
Da Du aber hier:
  Me.TextBox_MyPortal_ID = ""
Me.TextBox_MyPortal_Bezeichnung = ""
Me.TextBox_S1_MyPortal = ""
Me.TextBox_S2_Myportal = ""
Me.TextBox_S3_Myportal = ""
Me.TextBox_S4_MyPortal = ""
Me.TextBox_S5_MyPortal = ""
Me.TextBox_S6_MyPortal = ""
alles auf Leerstring setzt kann der Code nicht greifen
Du solltest also Dein ganzes Projekt akribisch überprüfen!
Es darf nicht sein, das man eine ID doppelt vergeben kann,
denn sonst ist es ja keine ID !
Gruß Matthias
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige