Office: Nummerngenerator für eine UserForm

Helfe beim Thema Nummerngenerator für eine UserForm in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, gleich meine zweite Frage an euch. Gibt es irgendwo einen Nummerngenerator als Vorlage und zum Anpassen, der auf Knopfdruck eine Nummer erzeugt... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von krug96, 5. Oktober 2014.

  1. Nummerngenerator für eine UserForm


    Hallo,

    gleich meine zweite Frage an euch.
    Gibt es irgendwo einen Nummerngenerator als Vorlage und zum Anpassen, der auf Knopfdruck eine Nummer erzeugt und dabei überprüft bzw. sich merkt, welche Nummern schon erzeugt wurden?
    Diese auf Knopfdruck erzeugt Nummer soll in der UserForm in das Textfeld "TN_Nummer" eingetragen werden.
    Die Nummer wird beim Speichern zum Datensatz in der Zeile in das Feld "AE" geschriben

    "201410G01"

    2014 = aktuelle Jahreszahl (4 stellig)
    10 = aktueller Monat (2 stellig)
    G = ein fester Buchstabe (1 stellig)
    01 = ist die fortlaufende Nummer (2 stellig von 01 bis 99)


    Vielen dank

    :)
     
  2. Beverly
    Beverly Erfahrener User
    Hi,

    versuche es mal nach diesem Prinzip:

    Code:
    Nummerngenerator für eine UserForm grusz.gif
     
    Beverly, 7. Oktober 2014
    #2
  3. Hallo Beverly,

    vielen dank erstmal.
    Ich hab den Code eingebaut und er scheint auch zu funktionieren, da erstmal keine Fehlermeldung kommt.
    Jetzt die Frage: Welchen String / Wert sucht er bzw. vergleicht er denn?
    Das Ergebnis bei mir ist immer "Nummer nicht gefunden"

    Vielen Dank
     
  4. Beverly
    Beverly Erfahrener User

    Nummerngenerator für eine UserForm

    Hi,

    er sucht den kompletten String - bestehend aus 4-stelligem Jahr + 2-stelligem Monat + G + 2-stelliger Zahl zwischen 01 und 99.

    Die Spaltenbezeichnung hast du angepasst? Ich habe versehentlich Spalte AF angesprochen, es sollte aber AE sein, wenn ich das richtig sehe.


    Nummerngenerator für eine UserForm grusz.gif
     
    Beverly, 7. Oktober 2014
    #4
  5. Hi,
    ok, dass er einen String sucht hab ich soweit verstanden, aber welchen soll er denn suchen?

    Ich hatte es mir so überlegt, dass zuerst die Daten der Zelle "AE" Zeile für Zeile ausgelesen werden. Dann muss zuerst geschaut werden, ob die ersten 4 Stellen bei dem Wert aus der Zelle mit dem aktuellen Jahr übereinstimmen. Wenn das der Fall ist, dann sollen die nächsten 2 Stellen mit dem aktuellen Monat verglichen werden. Ist das auch der Fall, dann sollen die letzten 2 Stellen ausgelesen und zum höchsten Wert eins dazu gezählt werden.
    Dieser Wert soll dann mit dem aktuellen Jahr, dem aktuellen Monat und dem G zusammengebaut und in ein Textfeld eingetragen werden.



    Bei den ?????????? muss jetzt geschaut werden, ob es noch einen weiteren Wert gibt bei dem Jahr und Monat stimmen und ob dieser an der Stelle 8 und 9 kleiner oder größer ist und da scheitert mein Wissen.

    *******************************************
    Private Sub TN_Nummer_neu_Click()
    Dim aktuellesDatum As Date
    Dim aktuellesJahr As String
    Dim aktuellerMonat As String
    Dim laufendeNummer As Double
    Dim InhaltZelle As Variant

    laufendeNummer = 10

    aktuellesDatum = Date
    aktuellesJahr = Year(aktuellesDatum)
    aktuellerMonat = Format(aktuellesDatum, "mm")

    '**********************************************
    'Variable = Workbooks("Mappe1.xls").Worksheets("Tabelle1").Range("A1").Value
    'InhaltZelle = Sheets("Teilnehmer").Cells(1 + 1, 31) 'Wert aus der Zelle AE auslesen
    InhaltZelle = Sheets("Start").Cells(1, 31) 'Wert aus der Zelle AE auslesen
    MsgBox InhaltZelle

    If Left(InhaltZelle, 4) = aktuellesJahr Then 'ersten 4 Stellen abfragen
    MsgBox Left(InhaltZelle, 4)
    MsgBox "Das Jahr stimmt überein"
    If Mid(InhaltZelle, 5, 2) = aktuellerMonat Then 'Stellen 5 und 6 abfragen
    MsgBox Mid(InhaltZelle, 5, 2)
    MsgBox "Der Monat stimmt auch"
    If Right(InhaltZelle, 2) = ????????? Then 'Stellen 8 und 9 abfragen
    MsgBox Right(InhaltZelle, 2)
    MsgBox "hier wird jetzt eins dazugezählt" 'hier wird jetzt die neue Zahl zusammengebaut
    'hier fehlt der Part in welchem die größte Zahl gesucht wird
    laufendeNummer = laufendeNummer + 1
    uebersicht.TN_Nummer = aktuellesJahr & aktuellerMonat & "G" & laufendeNummer
    Else
    MsgBox "der Wert ist kleiner"
    End If
    Else
    MsgBox "nächste Zelle verwenden"
    End If
    Else
    MsgBox "nächste Zelle verwenden"
    End If


    End Sub
     
  6. Code:
     
  7. Beverly
    Beverly Erfahrener User
    Hi,

    stehen die Daten fortlaufend in Spalte AE? Also so:

    201410G01
    201410G02
    201410G03
    ...

    Was soll passieren, wenn die Zahl 99 erreicht ist?


    Nummerngenerator für eine UserForm grusz.gif
     
    Beverly, 7. Oktober 2014
    #7
  8. Nummerngenerator für eine UserForm

    Hallo Beverly,

    die Daten stehen wie folgt in der Spalte:
    Es können auch leere Felder vorhanden sein.

    Die Gefahr, dass die 99 erreicht wird, ist nicht vorhanden bzw. ist so gering, dass man dieses vernachlässigen kann.

    201108G02
    201312G04
    201112G01
    201110G03
    201304G05
    201303G22
    201306G06
    201207G02
    201204G05
    201104G03
    201303G21
    201406G19
    201404G24
    201105G03
    201406G18
    201303G26
    201211G03
    201401G06

    201202G03
    201208G12
    201303G01
    201201G01
    201301G06
    201408G05

    201409G01
    201308G11
    201308G01
    201201G02
    201404G13
    201409G20
    201403G01
    201305G07
    201210G10

    201310G01
    201409G11
    201404G04
     
  9. Beverly
    Beverly Erfahrener User
    Hi,

    anstelle der MsgBox steht dann die Zuweisung zu deinem Steuerelement:

    Code:
    Nummerngenerator für eine UserForm grusz.gif
     
    Beverly, 7. Oktober 2014
    #9
  10. Hallo krug96,

    suchst du sowas?
     
  11. Hallo Beverly,
    hallo xlph,

    Ihr seid beide Spitze.
    Beide Programme tun genau das, was ich gesucht habe. Aber das von Beverly ist ein Tick besser, denn das erkennt die letzte Nummer auch dann, wenn ich eine Nummer zuvor gelöscht habe. z.B.

    201410G01
    201410G02

    --> jetzt wird 201410G01 gelöscht dann wird bei der nächsten Nummer statt 201410G03 die Nummer 201410G01 erneut vergeben.

    Vielen vielen Dank.
     
  12. Ist das jetzt so gewollt oder nicht!
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
  13. Beverly
    Beverly Erfahrener User

    Nummerngenerator für eine UserForm

    Hi,

    Das ist bei meinem Code nicht der Fall - es wird generell die nächsthöhere vergeben.


    Nummerngenerator für eine UserForm grusz.gif
     
    Beverly, 8. Oktober 2014
    #13
  14. Hallo Beverly,

    2 kleine Mängel habe ich dennoch feststellen müssen.

    1. Wird die letzte erzeugt TN-Nummer gelöscht, wird diese bei Neugenerierung
    wieder erzeugt. Demnach doch nicht einmalig. Das Max+1-Verfahren fällt somit
    aus.

    2. Bei deinem Code wird vorausgesetzt dass mind. bereits eine TN-Nummer
    des aktuellen Monats vorhanden (201410Gxx) ist. Somit wird ab dem nächsten
    Monat keine TN-Nummer mehr erzeugt.

    Lösung: Die letzte erstellte TN-Nummer immer zwischenspeichern.
    Anhand dieser dann die nächste erzeugen, falls nicht 99 übersteigt,
    ansonsten Meldung. Vor jeder Neugenerierung prüfen ob nicht Monatwechsel
    stattgefunden hat.

    Damit wird gewährleistet, dass jede erzeugte TN-Nummer einmalig erzeugt
    wird.

    Zwischenspeicherung könnte in der CustomProperty des Blattes erfolgen.
     
  15. Beverly
    Beverly Erfahrener User
    Hi,

    falls ein Monat noch keine Nummer hat, ist das auch kein Problem, indem man meinen Code wie folgt erweitert:

    Code:
    Nummerngenerator für eine UserForm grusz.gif
     
    Beverly, 8. Oktober 2014
    #15
Thema:

Nummerngenerator für eine UserForm

Die Seite wird geladen...
  1. Nummerngenerator für eine UserForm - Similar Threads - Nummerngenerator UserForm

  2. einfache suche via userform wie im browser

    in Microsoft Word Hilfe
    einfache suche via userform wie im browser: Seid gegrüßt! Da der 'Suchen und Ersetzen' Dialog sehr viel Platz wegnimmt, und von mir häufig genutzte Optionen tief versteckt sind, versuche ich eine kleine Userform mit diesen Optionen zu...
  3. Monats Kalender über Userform

    in Microsoft Excel Hilfe
    Monats Kalender über Userform: Ich habe über das Userform einen Monatskalender mit zwei Buttons links und rechts erstellt, um die Monate vor- und zurückzublättern. Außerdem soll der Monat im Format „Januar 2025“ angezeigt...
  4. Userform unterdrücken - wenn Datei von andere Datei geöffnet wird

    in Microsoft Excel Hilfe
    Userform unterdrücken - wenn Datei von andere Datei geöffnet wird: Hallo, ich habe einer Excel-Datei X ein Userform vorgeschaltet, d.h. wenn die Datei X geöffnet wird, wird das Userform geöffnet und der Anwender zur Eingabe von paar Daten aufgefordert....
  5. UserForm in Office 2019 für MacOS fehlt

    in Microsoft Excel Hilfe
    UserForm in Office 2019 für MacOS fehlt: Hallo, ich wollte nach Hardwarewechsel auf Macbook im Office 2019 für MacOS eine UserForm erstellen und bin überrascht das ich keine Möglichkeit dazu finde, die Auswahlmöglichkeit im...
  6. Userform Login Benutzername in Zelle schreiben

    in Microsoft Excel Hilfe
    Userform Login Benutzername in Zelle schreiben: Hallo mal wieder ins Forum, ich habe mir nach einem Video ein Login nachgebaut. Das funktioniert auch einwandfrei. Hier der Code: Private Sub bttnAnmelden_MouseDown(ByVal Button As Integer, ByVal...
  7. Datum in Userform formatieren

    in Microsoft Word Hilfe
    Datum in Userform formatieren: Hallo! Ich habe folgende Herausforderung: Word 365. In einer Userform gibt es zwei Textboxen (TB_Datum und TB_Datum für Termin) In die Textbox TB_Datum soll ein Datum eingetragen werden können....
  8. UserForm zum bearbeiten von Tabellen und speichern

    in Microsoft Excel Hilfe
    UserForm zum bearbeiten von Tabellen und speichern: Guten Tag Ich habe leider ein Problem, das mich zur Verzweiflung bringt. Vielleicht findet hier jemand einen Lösung für mein Problem. Ich bekommen leider einen Laufzeitfehler '1004'. Zur...
  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