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

UserForm Dateneingabe mit 5 Kriterien

UserForm Dateneingabe mit 5 Kriterien
Gutensteiner
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
AW: UserForm Dateneingabe mit 5 Kriterien
07.01.2012 19:00:15
Josef

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 »

Anzeige
AW: UserForm Dateneingabe mit 5 Kriterien
07.01.2012 20:15:43
Gutensteiner
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
AW: UserForm Dateneingabe mit 5 Kriterien
07.01.2012 20:26:48
Josef

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

« Gruß Sepp »

Anzeige
AW: UserForm Dateneingabe mit 5 Kriterien
08.01.2012 20:55:04
Gutensteiner
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
AW: UserForm Dateneingabe mit 5 Kriterien
08.01.2012 21:11:29
Gutensteiner
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
Anzeige
AW: UserForm Dateneingabe mit 5 Kriterien
08.01.2012 21:44:11
Josef

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 »

Anzeige
AW: UserForm Dateneingabe mit 5 Kriterien
09.01.2012 21:23:57
Gutensteiner
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
AW: UserForm Dateneingabe mit 5 Kriterien
09.01.2012 21:28:50
Josef

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

« Gruß Sepp »

Anzeige
AW: UserForm Dateneingabe mit 5 Kriterien
10.01.2012 18:57:53
Gutensteiner
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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige