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

Nächste freie Nummer in Nummernblock

Nächste freie Nummer in Nummernblock
20.02.2019 13:11:33
Steve
Hallo
ich möchte in einer Tabelle die nächste freie Nummer suchen und in einer Textbox (Userform) anzeigen lassen.
Es gibt 2 verschiedene Nummernblöcke, die ich über Auswahl einer Optionsbox1 oder 2 (Userform) vorher auswählen möchte.
Beispiel:
Optionbox1: 888xxx
Optionbox2: 999xxx
Auswahl Optionsbox1
Anzeige in Textbox: 888002 (da 888001 schon in der Tabelle vorhanden)
Kann mir da wer helfen?
Danke / Grüße
Steve

32
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nächste freie Nummer in Nummernblock
20.02.2019 13:32:02
EtoPHG
Hallo Steve,
Wie soll man helfen, wenn man die Tabelle nicht sieht? Wo befinden sich die vergebenen Nummern?
Bitte Beispielmappe hochladen!
Gruess Hansueli
AW: Nächste freie Nummer in Nummernblock
20.02.2019 13:36:45
Armin
Hallo Steve,
kann das Sheet eine Blind-Tabelle haben(auch ausgeblendet oder geht das nicht).
Gruß Armin
eigentlich zu wenig Infos ...
20.02.2019 13:36:57
Matthias
Hallo
man könnte mit Max(Bereich)+1 arbeiten, aber es sind allgemein zu wenig Informationen.
wo stehen die Daten in der Tabelle
was, wenn es schon 888001 gibt und 888007 gibts auch schon?.
Soll dann 888002 oder 888008 eingetragen werden.
Eine Bsp.Datei wäre sinnvoll.
Gruß Matthias
Anzeige
AW: eigentlich zu wenig Infos ...
20.02.2019 14:06:29
Armin
Hallo Steve,
sollen die Nr komplett 1-888123-1 geprüft werden oder nur die Basis?
Gruß Armin
AW: eigentlich zu wenig Infos ...
20.02.2019 14:14:53
Steve
Es sollte dann die komplette Nummer 1-888123-1 geprüft werden.
AW: eigentlich zu wenig Infos ...
20.02.2019 15:46:13
Steve
Hallo Armin,
danke erstmal für deine Mühe und Zeit.
Ich stelle fest, dass er automatisch hochzählt, jedesmal wenn ich den Button "Artikel neu anlegen" klicke, eine Optionsbox auswähle die UF wieder schließe und erneut öffnne.
Es ist eben so, dass ich schon eine große Anzahl an vergebenen Nummern habe (die Liste war nur ein Ausschnitt).
Gruß
Steve
Anzeige
AW: eigentlich zu wenig Infos ...
21.02.2019 07:38:12
Armin
Hallo Steve,
ja und so hast Du es doch haben wollen oder?
Gruß Armin
AW: eigentlich zu wenig Infos ...
21.02.2019 07:54:41
Steve
Hi Armin,
fast. Wenn ich die Eingabe in der UF nicht übernehme, also auf Schließen gehe und die UF erneut öffne, zählt er immer +1 nach oben. D.h. er checkt vorher nicht die Tabelle auf "welche Zahlen sind vorhanden" und macht erst dann +1.
immernoch viel zu wenig Infos ...
21.02.2019 08:23:40
Matthias
Hallo
Das sind nicht alles Zahlen!
Artikelstammdaten

 CD
1 Zahl in C ?
2888002WAHR
3888124-1FALSCH
4999123-1FALSCH
5999124-1FALSCH
6777123-1FALSCH
7777124-1FALSCH
81236988WAHR
9888002WAHR
10777001WAHR

Formeln der Tabelle
ZelleFormel
D2=ISTZAHL(C2)
D3=ISTZAHL(C3)
D4=ISTZAHL(C4)
D5=ISTZAHL(C5)
D6=ISTZAHL(C6)
D7=ISTZAHL(C7)
D8=ISTZAHL(C8)
D9=ISTZAHL(C9)
D10=ISTZAHL(C10)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
UND ...
Warum hast Du denn meine Frage nicht beantwortet?
Gruß Matthias
Anzeige
AW: immernoch viel zu wenig Infos ...
21.02.2019 08:30:10
Steve
Hi Matthias,
die roten Zahlen sind falsch eingetragen und können gelöscht werden. In Spalte C sollen nämlich nur Zahlen stehen.
Zu deiner Frage (sorry, ist irgendwie untergegangen).
Wenn 888001 und 888007 schon in der Tabelle vorhanden, dann soll zuerst 888002 vergeben werden.
Sortierung erlaubt ?
21.02.2019 08:56:30
Matthias
Hallo
Artikelstammdaten

 ABCDEFGH
1  Basis-Nr  DescriptionPack. Eng.Pack. Code
20-777123-5Palette 1S. Muster13.1
30-777128-6Palette 2B. Muster13.1
41-888123-1Blister BlauS. Muster7
50-888124-2Blister GrünB. Muster7
60-999123-3Box 1S. Muster1.1
70-999129-4Box 2B. Muster1.1
80-1236988-1TestC. Mann7


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Ich würde die Daten nach Spalte("C") aufsteigend sortieren.
Stellt das ein Problem dar?
Im diesem Bsp sollte also bei der Vorauswahl von "777" die 777124 generiert werden, korrekt?
Unklar ist für mich weiterhin was beim Klick auf OptionButton4(beliebige Nr.) generiert werden soll.
Ich habe das jetzt erstmal so verstanden, das 1236989 generiert wird.
Gruß Matthias
Anzeige
AW: Sortierung erlaubt ?
21.02.2019 11:35:34
Steve
Hallo Matthias,
Spalte C kann aufsteigend sortiert werden. Und ja, die nächste Nummer wäre 777124.
Bei beliebiger Nummer muss erstmal nichts generiert werden, da der User alles eingeben kann (Bspw. 2456578 oder 2567897). Hier soll dann eben nur auch abgefragt werden, ob dann die komplette Nr. (Bspw. 1-2456578-1 oder 1-2567897-3) schon in der Tabelle (Spalte A, C, E) vorhanden ist.
hier (m)ein Beispiel ...
21.02.2019 11:45:23
Matthias
Hallo Steve
Ich habe mich hier nur mit dem Eintragen der Basisnummer beschäftigt.
https://www.herber.de/bbs/user/127815.xlsm


Der Code: Option Explicit Private Sub CommandButton1_Click() Unload UserForm1 End Sub Private Sub OptionButton1_Click() Dim rng As Range, MyMax&, MyMin, MyBool As Boolean MyMax = 0 MyMin = 0 For Each rng In Tabelle2.Range("C2:C8") 'Bereich Anpassen oder Einlesen If Left(rng, 3) = "888" Then If Not MyBool Then MyMin = rng: MyBool = True 'einmalig MyMin setzen MyMax = rng End If If MyMax MyMin Then If MyMax > MyMin + 1 Then TextBox4 = MyMin + 1 Else TextBox4 = MyMax + 1 End If End If Next End Sub Private Sub OptionButton2_Click() Dim rng As Range, MyMax&, MyMin, MyBool As Boolean MyMax = 0 MyMin = 0 For Each rng In Tabelle2.Range("C2:C8") 'Bereich Anpassen oder Einlesen If Left(rng, 3) = "777" Then If Not MyBool Then MyMin = rng: MyBool = True 'einmalig MyMin setzen MyMax = rng End If If MyMax MyMin Then If MyMax > MyMin + 1 Then TextBox4 = MyMin + 1 Else TextBox4 = MyMax + 1 End If End If Next End Sub Private Sub OptionButton3_Click() Dim rng As Range, MyMax&, MyMin, MyBool As Boolean MyMax = 0 MyMin = 0 For Each rng In Tabelle2.Range("C2:C8") 'Bereich Anpassen oder Einlesen If Left(rng, 3) = "999" Then If Not MyBool Then MyMin = rng: MyBool = True 'einmalig MyMin setzen MyMax = rng End If If MyMax MyMin Then If MyMax > MyMin + 1 Then TextBox4 = MyMin + 1 Else TextBox4 = MyMax + 1 End If End If Next End Sub Private Sub OptionButton4_Click() Dim rng As Range, RngMax& RngMax = 0 For Each rng In Tabelle2.Range("C2:C8") 'Bereich Anpassen oder Einlesen If rng > RngMax Then RngMax = rng End If Next TextBox4 = RngMax + 1 End Sub Gruß Matthias
Anzeige
AW: hier (m)ein Beispiel ...
21.02.2019 12:50:02
Steve
Genial Matthias. Hut ab.
Wäre es nun noch möglich beim Click "Übernehmen", abzufragen ob komplette Nr. bereits vorhanden (Bsp. 0-888124-2). Wenn ja, dann Fehlermeldung mit Bitte um Korrektur (MessageBox)
Nachtrag ...
21.02.2019 11:56:53
Matthias
Hallo
Vorraussetzung ist natürlich die aufsteigende Sortierung der Spalte("C")
D.h. Du solltest die Daten nach jedem Neueintrag nach Spalte("C") sortieren!
Das kann man auch per Makro machen.
Sollte
MyMax > MyMin + 1

sein, kannst Du natürlich die Schleife mit Exit For verlassen.
    If MyMax  MyMin Then
If MyMax > MyMin + 1 Then
TextBox4 = MyMin + 1
Exit For
Else
TextBox4 = MyMax + 1
End If
End If
Gruß Matthias
Anzeige
hab da gerade noch einen Fehler entdeckt,
21.02.2019 12:09:57
Matthias
schau ich mir dann nochmal genauer an.
Gruß Matthias
das hat doch Armin schon eingepflegt ...
21.02.2019 14:55:01
Matthias
Hallo
Zitat:
Bei beliebiger Nummer muss erstmal nichts generiert werden, da der User alles eingeben kann (Bspw. 2456578 oder 2567897). Hier soll dann eben nur auch abgefragt werden, ob dann die komplette Nr. (Bspw. 1-2456578-1 oder 1-2567897-3) schon in der Tabelle (Spalte A, C, E) vorhanden ist.
Aber das hat doch Armin in seiner Datei schon mit eingebaut.
Userbild
Brauchst Du doch nur so benutzen.
Gruß Matthias
Anzeige
AW: das hat doch Armin schon eingepflegt ...
21.02.2019 15:26:56
Armin
Hallo,
ich habe noch eine Änderung eingebaut die Nr. wird nicht erhöht wenn selbige schon vorhanden ist.
https://www.herber.de/bbs/user/127821.xlsm
Gruß Armin
Das ist mE aber so nicht gewollt ...
21.02.2019 15:46:59
Matthias
Hallo Armin
Du zählst aber schon hoch, obwohl noch nichts übernommen wurde.
Das ist ja so nicht gewollt.
Gruß Matthias
AW: Das ist mE aber so nicht gewollt ...
22.02.2019 07:24:25
Steve
Hallo ihr zwei,
ja, Matthias hat recht. Das mit dem Hochzähle, obwohl nichts übernommen wird, ist so nicht gewollt.
AW: hab da gerade noch einen Fehler entdeckt,
22.02.2019 07:27:49
Steve
Hallo Matthias,
das Gegenprüfen, ob Artikelnr. schon vorhanden ist, habe ich jetzt von Armin übernommen. Danke für den Tipp.
Das absteigende Sortieren nach Click auf "Übernehmen" habe ich auch ins Makro gepackt und funktioniert. Allerdings funktioniert irgendwie die der Vorschlag der nächsten freien Basisnr. nicht mehr. Er schlägt mir dann eine Basisnummer vor, die schon in der Tabelle vorhanden ist.
War das der Fehler von dem du geredet hast?
Anzeige
ja das war der Fehler den ich meinte ...
22.02.2019 08:53:38
Matthias
Hallo
Erstetze die Codezeilen der OptionButton
Private Sub OptionButton1_Click()
Dim rng As Range, MyMax&, MyMin, MyBool As Boolean
Dim LoLetzte&
With Tabelle2
LoLetzte = .Cells(.Rows.Count, 3).End(xlUp).Row
End With
MyMax = 0
MyMin = 0
For Each rng In Tabelle2.Range("C2:C" & LoLetzte) 'Bereich Anpassen oder Einlesen
If Left(rng, 3) = "888" Then
If Not MyBool Then MyMin = rng: MyBool = True 'einmalig MyMin setzen
MyMax = rng
If rng.Offset(1, 0) > rng + 1 Then Exit For
End If
Next
TextBox4 = rng + 1
End Sub
Private Sub OptionButton2_Click()
Dim rng As Range, MyMax&, MyMin, MyBool As Boolean
Dim LoLetzte&
With Tabelle2
LoLetzte = .Cells(.Rows.Count, 3).End(xlUp).Row
End With
MyMax = 0
MyMin = 0
For Each rng In Tabelle2.Range("C2:C" & LoLetzte) 'Bereich Anpassen oder Einlesen
If Left(rng, 3) = "777" Then
If Not MyBool Then MyMin = rng: MyBool = True 'einmalig MyMin setzen
MyMax = rng
If rng.Offset(1, 0) > rng + 1 Then Exit For
End If
Next
TextBox4 = rng + 1
End Sub
Private Sub OptionButton3_Click()
Dim rng As Range, MyMax&, MyMin, MyBool As Boolean
Dim LoLetzte&
With Tabelle2
LoLetzte = .Cells(.Rows.Count, 3).End(xlUp).Row
End With
MyMax = 0
MyMin = 0
For Each rng In Tabelle2.Range("C2:C" & LoLetzte) 'Bereich Anpassen oder Einlesen
If Left(rng, 3) = "999" Then
If Not MyBool Then MyMin = rng: MyBool = True 'einmalig MyMin setzen
MyMax = rng
If rng.Offset(1, 0) > rng + 1 Then Exit For
End If
Next
TextBox4 = rng + 1
End Sub
Private Sub OptionButton4_Click()
Dim rng As Range, RngMax&
Dim LoLetzte&
With Tabelle2
LoLetzte = .Cells(.Rows.Count, 3).End(xlUp).Row
End With
RngMax = 0
For Each rng In Tabelle2.Range("C2:C" & LoLetzte) 'Bereich Anpassen oder Einlesen
If rng > RngMax Then
RngMax = rng
End If
Next
TextBox4 = RngMax + 1
End Sub



Zitat
Das absteigende Sortieren nach Click auf "Übernehmen" habe ich auch ins Makro gepackt und funktioniert.
Wichtig!
Das muss aber schon vor dem Laden des Formular sortiert sein, und zwar aufsteigend!
Nach dem Übernehmen solltest Du erneut sortieren.
Was ich überhaupt nicht verstanden habe sind Deine Werte in "A" & "E".
Willst Du denn diese Werte nicht auch automatisieren?
https://www.herber.de/bbs/user/127827.xlsm
Gruß Matthias
Anzeige
AW: ja das war der Fehler den ich meinte ...
22.02.2019 10:34:20
Steve
Super Matthias.
Das aufsteigende Sortieren habe ich jetzt noch in den Button "Artikel neu anlegen" gepackt.
Was kann ich da noch automatisieren? Vielleicht denkst du schon weiter wie ich :)
AW: ja das war der Fehler den ich meinte ...
22.02.2019 10:39:14
Matthias
Hi
Was ich überhaupt nicht verstanden habe sind Deine Werte in "A" & "E".
Hatte ich ja schon geschrieben. Ich weiß ja nicht was die bedeuten.
Gruß Matthias
AW: ja das war der Fehler den ich meinte ...
22.02.2019 11:29:13
Steve
Mit den Spalten A und E möchte ich wie folgt verfahren.
Matthias, würdest du dich nochmal dran versuchen? Ich wäre dir sehr dankbar.
1. Click auf "Strichvariante neu anlegen"
2. Basis-Nr in Texbox eingeben (Bsp. 777123)
3. Nach Click auf "Basis-Nr. suchen" soll in der Listbox die Suchergebnisse in ListBox zu allen vorhandenen Nummern angezeigt werden (Bsp. 777123-5).
4. Durch Eingabe der Strichvariante (Bsp. 0-777123-4) soll nochmal geprüft werden ob Artikel Nr. vorhanden (wenn ja, dann MsgBox, wenn nein dann Übernahme (mit Werten aus den anderenen Textboxen) in Tabelle
Dazu das aktualisierte File:
https://www.herber.de/bbs/user/127846.xlsm
Grüße
Steve
Nun dazu ...
22.02.2019 13:39:24
Matthias
Hi
Dazu müsstest Du schon selbst etwas mehr Vorarbeit leisten.
Im neuen Formlar ist ja noch keine einzige Zeile Code vorhanden.
Da ist jetzt erstmal Eigeninitiative gefragt.
Desweiteren läuft der Sortier-Code jetzt auf einen VBA-Fehler, wenn der Filter nicht gesetzt ist.
In meinem Bsp. lief der Code ohne Fehler durch. Den hast Du aber leider verändert bzw. reduziert.
Ich hatte ja den Filterstatus vor der Sortierung abgefragt.
Gruß Matthias
AW: Nun dazu ...
25.02.2019 14:03:32
Steve
Hallo Matthias,
ouh, dass hatte ich wohl unabsichtlich verändert bzw. reduziert.
Jetzt sollte wieder alles passen. Auch habe ich die zweite UF soweit fertig.
Nur mit dem Suchfeld (Listbox) komme ich nicht weiter.
https://www.herber.de/bbs/user/127904.xlsm
Grüße
Stefan
AW: Nächste freie Nummer in Nummernblock
21.02.2019 11:32:16
Armin
Hallo Steve,
Eine Artikelbezeichnung 1-888001-1 (vorausgesetzt die Zahl vor und nach dem Trennstrich ist nur Einstellig) erzeugt 100 Varianten. Mit dieser Artikel-Nr. sind rund 90 Millionen Artikel-Variationen möglich.
Das Auffüllen von Basiszahlen dürfte angemessen des Aufwandes der damit verbunden ist für mich nicht in Betracht kommen. Dazu kommt, dass dann u. u. eine nicht unerhebliche Rechenzeit das Ganze für den Anwender nicht Händelbar macht. Einmal abgesehen wird das höchsten ein Großkonzern brauchen und der macht das mit Sicherheit nicht mit Excel!
Also entweder es existiert ein sehr plausibler Grund oder ich sage dann nicht mit mir.
Gruß Armin
AW: Nächste freie Nummer in Nummernblock
21.02.2019 13:22:55
Steve
Hallo Armin,
mit einer Basis-Nr. (888001) kann ich aktuell max. 90 Varianten erzeugen.
Ich versteh leider nicht auf was sich deine Antwort bezieht.
Matthias hat das ja soweit hinbekommen. Ich brauche "nur" noch die Abfrage ob die Artikel-Nr. (Bsp 1-888001-1) bereits vorhanden ist. Oder ist das genau das Problem?

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige