Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CheckBox
BildScreenshot zu CheckBox CheckBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

UserForm Dateneingabe mit 5 Kriterien | Herbers Excel-Forum


Betrifft: UserForm Dateneingabe mit 5 Kriterien von: Gutensteiner
Geschrieben am: 07.01.2012 18:26:57

Hi
habe auch bei Paulchens EXEL-Werkstatt gepostet,
denke aber, dass ich hier auch viel Profis erreiche.
Ich bastle gerade an einer komplexen Schülerdatenverwaltung herum, in die ich viele Datensätze(ca. 400 pro Schuljahr) eintragen muss. Datensätze sollen dabei natürlich nicht doppelt eingetragen werden.
Hierfür kann man ja beim Button Eingabe schon abfragen ob der Datensatz vorhanden ist.
Leider gibt es aber Schüler mit gleichem Vornamen, Nachnamen...
Ich möchte nun, dass beim Eintrag gleichzeitig alle Daten der ersten fünf von 19 Spalten überprüft werden. Erst wenn alle 5 Kriterien gleich sind, dann soll der Datensatz nicht eingetragen werden, dann kommt die Meldung "Überschreiben?".
Angefangen habe ich mit einem Beispiel aus einem Buch(Held,Anwendungen mit EXCEL entwickeln, Verlag Markt und Technik). Die ganze Datei ist schon prima, brauche nur noch mehr Felder und Gültigkeiten.
Anbei nun mein Fehlercode der Abfrage.
Ich denke, mir kann der eine oder andere Profi hier weiterhelfen.

'Datensatz Doppelte nach mehr als 1 Kriterien finden

Set Treffer = DATEN.Columns(1).Find(what:=Me.ComboBox1.Value, lookat:=xlWhole)
Else
Set Treffer = DATEN.Columns(2).Find(what:=Me.TextBox2.Value, lookat:=xlWhole)
Else
Set Treffer = DATEN.Columns(3).Find(what:=Me.TextBox3.Value, lookat:=xlWhole)
Else
Set Treffer = DATEN.Columns(4).Find(what:=Me.TextBox4.Value, lookat:=xlWhole)
Else
Set Treffer = DATEN.Columns(5).Find(what:=Me.TextBox5.Value, lookat:=xlWhole)
If Treffer Is Nothing Then
lng = Range("A65536").End(xlUp).Offset(1, 0).Row
Else
i = MsgBox("Dieser Schüler wurde bereits erfasst! Überschreiben?", vbYesNo + vbQuestion)
If i = 6 Then
lng = Treffer.Row
Else
Exit Sub
End If
End If

Das Problem beginnt beim zweiten Set Treffer, die erste Abfrage bekomme ich noch hin. Da das
erste Feld (Spalte1)aber die Combobox1 mit dem Schuljahr ist, ist der Wert natürlich 400 xmal der Gleiche.
zweites Feld(Spalte2) TextBox2 mit Nachname
TB 3(Spalte 3) Vorname
TB4(Spalte4) Geb. datum
TB5 Combobox2(Spalte5) Inhalt:Schule oder Kindergarten

So hat man in dieser 5fachen Kombination sehr sicher ausgeschlossen, dass man einen Datensatz doppelt angiebt. Alle anderen Spalten (Spalte 6-19) dienen zur weiteren Beschreibung des Schülers.
Habe noch eine Frage zum Zählen über Optionsbox, doch eins nach dem Anderen.

Leider gibt es bei uns im Schulamtsbezirk keine kompetenten Anspechpartner in Sachen EXCEL-VBA und auch keine Mittel für eine Auftragsprogrammierung. Muss also wieder einmal so gehen.

Vielen Dank

  

Betrifft: AW: UserForm Dateneingabe mit 5 Kriterien von: Josef Ehrensberger
Geschrieben am: 07.01.2012 19:00:15


Hallo Gutensteiner (seltsaner Vorname!),

verbrenngiss das Buch des Helden.

Fasse in einer Hilfsspalte die ersten 5 Spalten per Formel oder auch gleich beim Eintragen per VBA zusammen und prüfe dann in dieser Spalte.

Oder Prüfe auf den Nachnamen und bei einem Treffer prüfst du zusätzlich die anderen Spalten ab.





« Gruß Sepp »



  

Betrifft: AW: UserForm Dateneingabe mit 5 Kriterien von: Gutensteiner
Geschrieben am: 07.01.2012 20:15:43

Hallo "Sepp"
vielen Dank für dieschnelle Antwort.
Leider hatte ich außer dem Buch der "Helden" überhaupt keine andere Hile in Buchform gefunden.
Wesentlich ist mir folgendes
stimmt übehaupt der Code für die Suchreihenfolge?
wenn Nachname Value.true dann Prüfe Vorname
wenn Vorname Value true.......
hier bekomme ich den Code nicht hin.
2. Wie fasse ich denn diese 5 Zeilen zusammen?
Bin eigentlich VBA Beginner und hoffe mich bei diesem Job nicht verhoben zu haben.
Gruß
Ernst "aus" Gutenstein ad Donau


  

Betrifft: AW: UserForm Dateneingabe mit 5 Kriterien von: Josef Ehrensberger
Geschrieben am: 07.01.2012 20:26:48


Hallo Ernst,

kannst du nicht eine kleine Version (10-20 Datenzeilen) deiner Datei hochladen, dann wäre es einfacher dir zu helfen.




« Gruß Sepp »



  

Betrifft: AW: UserForm Dateneingabe mit 5 Kriterien von: Gutensteiner
Geschrieben am: 08.01.2012 20:55:04

Hallo Sepp
nun anbei meine Übungsdatei. Es ist die ganze Datei mit allen UserForms und Tabellen.
Der Problembereich befindet sich in der frm_Daten beim cmd Button Daten eingeben.
Hier liegt ja die Abfrage.
https://www.herber.de/bbs/user/78307.zip
Hier liegt dei Datei wenn ich alles richtig gemacht habe.
Wer sonst noch damit arbeiten will ist herzlich eingeladen
Gruß Ernst


  

Betrifft: AW: UserForm Dateneingabe mit 5 Kriterien von: Gutensteiner
Geschrieben am: 08.01.2012 21:11:29

Hallo Sepp,
vielen Dank, nun doch noch mal das ganze, da ich ein Häkchen vergessen hatte ;-)
Problembereich in Frm_Daten bei Code cmd Button
Alle ande´ren dürfen auch mitmachen. Die Datei läuft in der Rohform mit Ausnahme der Eingabekontrolle.
Gruß Ernst
https://www.herber.de/bbs/user/78309.zip
Das ist sie zum Probieren


  

Betrifft: AW: UserForm Dateneingabe mit 5 Kriterien von: Josef Ehrensberger
Geschrieben am: 08.01.2012 21:44:11


Hallo Ernst,

teste mal.

Private Sub cmdNeu_Click()
  'Datensatz anlegen
  Dim Dia As UserForm
  Dim lng As Long, lngIndex As Long
  Dim Treffer As Range, strFirst As String, lngDouble
  Dim i As Integer
  
  'Meldung Schüler Nachname fehlt
  If Me.TextBox2.Value = "" Then
    MsgBox "Sie müssen einen " & Me.Label2.Caption & " angeben!"
    Exit Sub
  End If
  
  'Datensatz Doppelte nach >1 Kriterien finden
  
  Set Treffer = DATEN.Columns(2).Find(what:=Me.TextBox2.Value, lookat:=xlWhole, LookIn:=xlValues, MatchCase:=False)
  If Not Treffer Is Nothing Then
    strFirst = Treffer.Address
    Do
      lngDouble = Treffer.Row
      For lngIndex = 3 To 5
        If Cells(Treffer.Row, lngIndex).Text <> Me.Controls("Textbox" & lngIndex).Value Then
          lngDouble = 0
        End If
      Next
      If lngDouble > 0 Then Exit Do
      Set Treffer = DATEN.Columns(2).FindNext(Treffer)
    Loop While Not Treffer Is Nothing And strFirst <> Treffer.Address
  End If
  If lngDouble = 0 Then
    lng = Range("A65536").End(xlUp).Offset(1, 0).Row
  Else
    i = MsgBox("Dieser Schüler wurde bereits erfasst! Überschreiben?", vbYesNo + vbQuestion)
    If i = 6 Then
      lng = lngDouble
    Else
      Exit Sub
    End If
  End If
  
  Set Dia = frm_Daten
  Worksheets("DATEN").Activate
  
  With Dia
    Cells(lng, 1).Value = .ComboBox1.Value
    Cells(lng, 2).Value = .TextBox2.Value
    Cells(lng, 3).Value = .TextBox3.Value
    Cells(lng, 4).Value = .TextBox4.Value
    Cells(lng, 5).Value = .TextBox5.Value
    Cells(lng, 6).Value = .TextBox6.Value
    Cells(lng, 7).Value = .TextBox7.Value
    Cells(lng, 8).Value = .TextBox8.Value
    Cells(lng, 9).Value = .TextBox9.Value
    Cells(lng, 10).Value = .TextBox10.Value
  End With
End Sub






« Gruß Sepp »



  

Betrifft: AW: UserForm Dateneingabe mit 5 Kriterien von: Gutensteiner
Geschrieben am: 09.01.2012 21:23:57

Hallo Sepp,
läüft in Zeile 4 nicht bei strFirst
anbei meine Lösung
https://www.herber.de/bbs/user/78335.zip
Was hältst Du davon? Deine Lösung ist irgendwie schlanker.
Mache es aber erst seit fünf Tagen.
Gruß Ernst


  

Betrifft: AW: UserForm Dateneingabe mit 5 Kriterien von: Josef Ehrensberger
Geschrieben am: 09.01.2012 21:28:50


Hallo Ernst,

also meine Lösung läuft bei mir auch. Aber wenn deine est tut, warum nicht.




« Gruß Sepp »



  

Betrifft: AW: UserForm Dateneingabe mit 5 Kriterien von: Gutensteiner
Geschrieben am: 10.01.2012 18:57:53

Hallo Sepp,
vielen Dank für Deine Hilfe
Deine Lösung werde ich noch anschauen, vermutlich habe ich einen Fehler beim Einsetzen gemacht.
Vielen Dank
Diese Schleifen muss ich mir mal anschauen, kenne so was noch nicht.
Ernst


Beiträge aus den Excel-Beispielen zum Thema "UserForm Dateneingabe mit 5 Kriterien"