Clever-Excel-Forum

Normale Version: Autom. Zahlenvergabe aus Kontingent
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo und schönen Abend miteinander,

ist es möglich, das Excel automatisch nacheinanderfolgende Zahlen vergibt, welche an ein vorgegebenes Kontingent gebunden sind?

Bsp.:

Wenn ich in Range ("A1:A200") beispielsweise die Zahl 1 (oder ein "x") eintrage, soll mir Excel in Range("B1:B200") die jeweils nächste freie Zahl ausgeben.
Diese freien Zahl (also mein Kontingent) sollen aber von mir festgelegt werden. Also statt einfach nur die Zahlen von 1 bis 200 auch z.B. 50 - 250.

Gruß

Bookshelf3011
Hallo Bookshelf...,

so ganz habe ich die Anforderung noch nicht verstanden. Ich habe noch einige Fragen.

zu:

Zitat:Wenn ich in Range ("A1:A200") beispielsweise die Zahl 1 (oder ein "x") eintrage, soll mir Excel in Range("B1:B200") die jeweils nächste freie Zahl ausgeben.

1) Warum trägst du im Beispiel 200mal die Zahl 1 ein?
2) Soll die nächste freie Zahl wirklich 200mal eingetragen werden?
3) Was ist die jeweils nächste freie Zahl von "x" ?

zu:
Zitat:Diese freien Zahl (also mein Kontingent) sollen aber von mir festgelegt werden. Also statt einfach nur die Zahlen von 1 bis 200 auch z.B. 50 - 250.

4) Falls durch das Entfernen von Einträgen Lücken entstehen, sollen diese wieder gefüllt werden?
5) Wenn 4 nicht sein soll, wofür benötige ich ein Kontingent?
6) Was soll passieren, wenn das Kontinget aufgebraucht ist?


Eine Beispieldatei anhand der wir unsere Formeln testen können ist aus meiner Sicht hier zwingend.
Hallo Ego,

sry für meine unklare Ausdrucksweise. Ich hoffe, ich werde deine Fragen alle beantworten können:

1) Hinter Range ("A:A") werden Informationen zu Datensätzen auf Peripheriegeräten stehen. Mit dem Ausdruck "1" will ich ausdrücken, dass dieses jetzt aktiv geschaltet ist.
2) Nein, natürlich nicht 200mal.  :19: Wenn ("A1") aktiv geschaltet wird, soll in ("B1") die erste freie Zahl aus dem Kontingent vergeben werden (z.B. 50). Wird als nächstes ("A4") aktiv geschaltet, soll in ("B4") die "51" erscheinen. Wird dann ("A2") aktiv geschaltet, soll in ("B2") die "52" erscheinen...und so weiter und so fort.
3) Hier verstehe ich deine Frage nicht genau. "x" war nur ein anderes Beispiel für die "1" zum aktiv schalten.
4) Wenn dies ginge, wäre dies natürlich ein Traumfall.  :19:
5) siehe Punkt 4.
6) Eine weitere Vergabe sollte am besten nicht möglich sein. Wenn das Ganze über VBA lösbar ist, könnte ein MsgBox auch noch einen Hinweis oder dergleichen ausgeben.

Eine Beispieldatei habe ich angehängt. Ich hoffe sie hilft dir weiter.

Vielen Dank für dein Mühe.

Gruß

Bookshelf3011
Hallo bookshelf...,

in der Anlage eine Beispieldatei. Meines Erachtens ist die Lösung deiner Anfrage nur mit VBA möglich.

Hier einige Bemerkungen zur aktuellen Version des Priogrammes:

a) benannte Bereiche
Da ich in Programmen nicht gerne mit festen Adressen arbeite, benötigt das Programm zur Zeit drei benannte Bereiche.
Das hat unter Anderem den Vorteil, dass ich diese Bereiche beliebig in der Datei verschieben kann (auch in andere Arbeitsblätter), ohne das Programm ändern zu müssen.
1) ein benannter Bereich "Liste" mit mindestens zwei Spalten
2) eine benannte Zelle "VonKont" und
3) eine benannte Zelle "BisKont"

b) sonstige Vorraussetzungen
1) Die Grenzen des Kontingentbereiches müssen ganze Zahlen grösser als 0 sein.

c) Funktion
1) Das Programm wird nur durchgeführt, wenn in dem Bereich "Liste" eine einzelne Zelle manuell geändert wird und eine der beiden Spalten der geänderten Zeile leer ist und die andere Spalte gefüllt ist.
Wenn gleichzeitig mehrere Zellen gelöscht oder beschrieben werden findet keine Prüfung statt.
Wenn ich einen Wert ändere und in der anderen Spalte steht noch/schon ein Wert findet keine Prüfung statt.
2) Falls in der geänderten Zeile nur in der Spalte "Aktiv" ein Eintrag ist, wird die nächste freie Nummer in die Spalte Portdaten geschrieben. Falls es keine freie Nummer innerhalb der Kontingentgrenzen gibt erscheint ein "?????".
3) Falls in der geänderten Zeile nur in der Spalte "Portdaten" ein Eintrag ist, wird er gelöscht.