Office: Überprüfung der Kundennummer will nicht recht (Überprüfung Dublikate)

Helfe beim Thema Überprüfung der Kundennummer will nicht recht (Überprüfung Dublikate) in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Zusammen, momentan frage ich ja ziemlich viel, ich hoffe das nimmt mir keiner krum :). Heute liegt es an folgendem: durch das betätigen des... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von N123456789, 3. Juni 2013.

  1. N123456789 Erfahrener User

    Überprüfung der Kundennummer will nicht recht (Überprüfung Dublikate)


    Hallo Zusammen,

    momentan frage ich ja ziemlich viel, ich hoffe das nimmt mir keiner krum :).

    Heute liegt es an folgendem:
    durch das betätigen des command buttons soll untenstehendes ausgelöst werden. Hier prüfe ich zuerst ob in meiner userform auch tatsächlich eingeaben gemacht wurden und dann soll bevor es zu einem übertrag kommt geschaut werden ob schon ein Eintrag mit der selben Kundennummer besteht.
    Recht Simple aufgabe aber es will nur zu 50%

    PHP:
    Dim XY_lngZeile As Long

     
    '#####---------- TEIL 1: Abfrageketten für das Fortfahren-----------#####
        ' 
    Ist ein Kunde ausgewählt?
        If 
    txtKundennummer.Text "" And txtName.Text "" And txtStraße.Text "" And txtStadt.Text "" And txtPLZ.Text "" Then
        MsgBox 
    ("Bitte einen Kunden auswählen oder erstellen")
        Exit 
    Sub
        End 
    If
        
        
    'Kunde bereits in der Datenbank???????
         With Sheets("Auftragsdatenbank")
            XY_lngZeile = .Cells(Range("ListeKunden").Rows.Count, 1).End(xlUp).Row
       If Worksheets("Auftragsdatenbank").Range("A" & XY_lngZeile) = txtKundennummer.Value Then
      MsgBox ("Kunde bereits in der Datenbank")
            Exit Sub
        Else
        '
    Eintragung falls Kunde noch nicht existiert
        Neueintrag 
    ' --> Unterprogramm
        MsgBox ("Kunde erfolgreich eingetragen")
        Exit Sub
        End If
    End With
    insbesondere dieser Teil wird nicht ausgeführt (also das suchen nach der Nummer)
    PHP:
        'Kunde bereits in der Datenbank???????
         With Sheets("Auftragsdatenbank")
            XY_lngZeile = .Cells(Range("ListeKunden").Rows.Count, 1).End(xlUp).Row
       If Worksheets("Auftragsdatenbank").Range("A" & XY_lngZeile) = txtKundennummer.Value Then
      MsgBox ("Kunde bereits in der Datenbank")
            Exit Sub
    sobald ich nämlich eine existierende Kundennummer eingebe springt er gleich in die "else" aufforderung.

    Hat jemand ne idee wie das Makro die Kundennummer in Sheet("Kunden"), "Range("A:A") erkennt?

    LG Nico
     
    N123456789, 3. Juni 2013
    #1
  2. Exl121150 Erfahrener User
    Hallo Nico,

    das glaube ich Dir, denn mit der "XY_Range.End(xlUp)" kannst Du nicht nach Kundennummern/Kundennamen in einem Bereich suchen - Du springst damit immer nur in die oberste Zelle des Bereiches, in dem sich XY_Range befindet.
    Um im Bereich XY_Range nach einem einzelnen Eintrag zu suchen, musst Du die Find-Methode auf diesen Bereich anwenden. Falls dieser Eintrag darin gefunden wurde, wird die Fundzelle als Range zurückgeliefert, anderenfalls jedoch der Wert Nothing.
    Code:
    Sub test()
    
    Dim XY_lngZeile As Long
    Dim rngKuZelle As Range
    
     
    '#####---------- TEIL 1: Abfrageketten für das Fortfahren-----------#####
        ' Ist ein Kunde ausgewählt?
        If txtkundennummer.Text = "" And txtName.Text = "" And txtStraße.Text = "" And txtStadt.Text = "" And txtPLZ.Text = "" Then
          MsgBox ("Bitte einen Kunden auswählen oder erstellen")
          Exit Sub
        End If
        
        'Kunde bereits in der Datenbank???????
         With Sheets("Auftragsdatenbank")
            
            Set rngKuZelle = Range("ListeKunden").Find(What:=txtkundennummer.Value, LookIn:=xlValues)
            If Not (rngKuZelle Is Nothing) Then
               MsgBox ("Kunde bereits in der Datenbank")
               Exit Sub
            Else
               'Eintragung falls Kunde noch nicht existiert
               'Neueintrag  --> Unterprogramm
               MsgBox ("Kunde erfolgreich eingetragen")
               Exit Sub
            End If
         End With
    
    End Sub
    
    
    Ich habe in diesem Code zuerst die Variable "rngKuZelle" als "Range" deklariert und dann auf den Bereich "ListeKunden" die Find-Methode angewandt, die nach der "txtKundennummer.Value" als Wert suchen soll. Wird diese in dem Bereich "ListeKunden" gefunden, wird die gefundene Zelle als Range-Objekt zurückgeliefert und der Range-ObjektVariable "rngKuZelle" als Objekt zugewiesen (deshalb auch "set .... = ...")
    Indem dann in der nächste Zeile abgefragt wird, ob die Variable "rngKuZelle" tatsächlich ein Objekt enthält, kann überprüft werden, ob der Suchvorgang erfolgreich war. Falls jedoch die Variable "rngKuZelle" immer noch auf nichts zeigt (is nothing: ist dann true), dann wurde nichts gefunden.
     
    Zuletzt bearbeitet: 4. Juni 2013
    Exl121150, 4. Juni 2013
    #2
  3. N123456789 Erfahrener User
    Hallo Exl,

    Vielen Dank für deine Hilfe und deine Kommentare. Mit der Erklärung ist es vollkommen logisch :).

    Ich habe gleich noch eine anschlussfrage. Ich habe mich heute dafür entschieden mein Projekt etwas abzuwandeln und das bedeutet meine userform bekommt deutlich mehr textboxen. Alle textboxen schreiben in die selbe Zeile meiner "datenbank". bisher habe ich das problem so gelöst:

    PHP:
       lngZeile = .Cells(Range("ListeAuftrag").Rows.Count1).End(xlDown).Row 1
        
    .Range("A" lngZeile) = txt1
    .Range("B" lngZeile) = txt2
    .... etc....
    bei einem Projekt mit bis zu 50 textboxen schreibe ich mir ja einen wolf. Gibt es nicht die möglichkeit mit einer For, Next - Schleife das problem anzugen oder For each txt. Einzigstes kriterium ist dass die Daten wieder auslesbar sein sollten. Und zwar in der Multipage neben dran mit der selben Anordnung und einer listbox

    ich komm nicht wirklich drauf weil mein code die "anweisung" oder die "methode" nicht kennt
    PHP:
    Dim lngSpalte As Long
    Dim lngZeile 
    As Long
    Dim Anztxt 
    As Integer
    Dim crtl 
    As Object

    'Irgendwie müsste man zählen wie viele Textboxen es gibt
    Set w3 = Workbooks("Auftragsdatenbank")

    Dim cCont As Control
    Dim lCount As Long
         
        For Each cCont In Me.Controls
            If TypeName(cCont) = "TextBox" Then
                lCount = lCount + 1
            End If
        Next cCont
        MsgBox "There are " & lCount / 2 & " pairs"
        
        '
    Erste leere Zeile suchen
    lngZeile 
    = .Cells(Range("ListeAuftrag").Rows.Count1).End(xlUp).Row
    lngSpalte Icount 
    2
    For 0 To lngSpalte
        w3
    .cells(lngspaltelngzeile) = textbox&lngspalte.value ' irgendwie soo
    Next
    End Sub
    geht da was in die Richtung?
     
    N123456789, 4. Juni 2013
    #3
  4. Exl121150 Erfahrener User

    Überprüfung der Kundennummer will nicht recht (Überprüfung Dublikate)

    Hallo Nico,

    meinst Du in etwa Folgendes (falls der Speichern-Button des Formulars "cmdSpeichern" heißt) ?

    Code:
    Option Explicit
    
    Sub omdSpeichern_Click()
    
    Dim lngSpalte As Long
    Dim lngZeile As Long
    
    Dim w3 As Worksheet
    Dim cCont As Control
    
        'Ziel-Arbeitsblatt
        Set w3 = Worksheets("Auftragsdatenbank")
        
        'Erste leere Zeile des Zielbereichs suchen, erste Spalte
        lngZeile = w3.Cells(Range("ListeAuftrag").Rows.Count, 1).End(xlUp).Row + 1
        lngSpalte = 1
         
        'Mittels cCont alle Controls des Formulars Me durchlaufen
        For Each cCont In Me.Controls
            'Prüfen, ob es sich bei cCont um eine TextBox handelt
            If TypeName(cCont) = "TextBox" Then
                'Mittels cCont.Value den Wert aus der Textbox auslesen
                'und der Arbeitsblattzelle in Zeile lngZeile und Spalte lngSpalte zuweisen:
                w3.Cells(lngZeile, lngSpalte).Value = cCont.Value
                'Für die nächste Textbox eine nächste Arbeitsblattspalte ermitteln:
                lngSpalte = lngSpalte + 1
            End If
        Next cCont
        
    End Sub
    
    
    
     
    Zuletzt bearbeitet: 4. Juni 2013
    Exl121150, 4. Juni 2013
    #4
  5. N123456789 Erfahrener User
    Hallo Exl,

    danke schön! Es kommt hin wenn ich anstatt
    Code:
     If TypeName(cCont) = "TextBox" Then</pre>
    das einsetze
    Code:
     If TypeName(cCont) = "txt*" Then</pre>
    vielen Dank nochmal :)... bin wirklich weitergekommen durch deine Hilfe.

    Gruß Nico
     
    N123456789, 4. Juni 2013
    #5
Thema:

Überprüfung der Kundennummer will nicht recht (Überprüfung Dublikate)

Die Seite wird geladen...
  1. Überprüfung der Kundennummer will nicht recht (Überprüfung Dublikate) - Similar Threads - Überprüfung Kundennummer recht

  2. Teilstring einer Zelle auf Wert aus anderer Zelle überprüfen

    in Microsoft Excel Hilfe
    Teilstring einer Zelle auf Wert aus anderer Zelle überprüfen: Hallo zusammen, ich habe in einer Excel-Tabelle in zwei Tabellenblätter. Tabellenblatt "Artikelstamm" beinhaltet in Spalte A eine Artikel-Nr. und diverse weitere Spalten. Hier ein kleiner Auszug:...
  3. Während der Eingabe überprüfen ob Zahl oder Text

    in Microsoft Access Hilfe
    Während der Eingabe überprüfen ob Zahl oder Text: Hallo, wenn ich in einem Zahlenfeld einen Text eingebe erfolgt folgende Meldung [ATTACH] Wie kann ich die Meldung abfangen um eine eigene Meldung auszugeben? Das Zahlenfeld ist mit 0 vor belegt...
  4. Dateien vorab auf Serienbrief überprüfen

    in Microsoft Word Hilfe
    Dateien vorab auf Serienbrief überprüfen: Hallo, ich habe eine größere Menge an u.a. Word- Dateien zu verschieben. Ich habe diese Dateien nicht erstellt. Kann ich im Vorfeld überprüfen, ob es sich um Dateien mit Serienbrieffunktion...
  5. Überprüfen ob Tabellenballt mit Namen aus Zelle vorhanden ist

    in Microsoft Excel Hilfe
    Überprüfen ob Tabellenballt mit Namen aus Zelle vorhanden ist: Da ich VBA noch nicht so lange benutze komme ich doch gerade an meine Grenzen. Ich möchte überprüfen ob es ein Bestimmtes Tabellenblatt gibt im Tabellenblatt "GK" in P1 steht der zu überprüfende...
  6. 1.Excel soll 100 Excel-Tabellen überprüfen

    in Microsoft Excel Hilfe
    1.Excel soll 100 Excel-Tabellen überprüfen: Hallo zusammen, In unserem Unternehmen erhalten wir die Aufträge in Form einer Excel-Tabelle mit etwa 8 Seiten. Jährlich haben wir durchschnittlich 500 Aufträge. Das Hauptproblem besteht darin,...
  7. Datum & Uhrzeit Überprüfung

    in Microsoft Excel Hilfe
    Datum & Uhrzeit Überprüfung: Ich habe einen Spielplan erstellt mit Datum und Uhrzeit (Blatt 1) Im 2. Blatt habe ich einen ewigen Kalender gemacht wo meine Arbeitstage stehen Jetzt möchte ich überprüfen ob ich am Spieltag...
  8. Mehrere Zellen auf Inhalt überprüfen

    in Microsoft Excel Hilfe
    Mehrere Zellen auf Inhalt überprüfen: Hallo zusammen, für die Personalplanung in unserer Firma habe ich eine Excelliste angelegt. Wir haben maximal 6 Mitarbeiter, es müssen mindestens 3 da sein. Wenn durch Urlaub oder Krankmeldungen...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden