Ich grüße euch. Privat arbeite ich viel mit Excel und seit einiger Zeit habe ich mit VBA angefangen, meine Makros zu verfeinern. Dabei hat mir dieses Forum gute Inspirationen geliefert, aber nun habe ich ein Problem, welches ich nicht ohne weiteres lösen kann. Dazu kommt es mir auch sehr unlogisch vor, was Excel zu mir sagt. Ich schweife ab, verzeihung. Hier nun das Szenario:
Ein Lager-/Logistikbüro hat eine Liste für die Tourenplanung ihrer Fahrzeuge (in Excel geführt). Es kommt häufiger vor, dass Fahrer auf die Leute zutreten und anmerken, dass das Austauschen von bestimmten Positionen auf einer bestimmten Tour die gesamte Tour effizienter laufen lässt. (Weniger Km, Treibstoff usw.) Damit ist man an mich herangetreten. Die Positionen sind durchnummeriert. Daher: VBA Makro mit Knöpfchen und fertig. Soweit so gut. Ich habe eine Schleife die prüft, wieviele Posten es gibt. Klappt.
For e = 1 To 1000 Step 1
If Cells(a, 1).Value <> "" Then
a = a + 1
b = b + 1
End If
Next e
Danach per Inputboxen die Postennummern eintragen. Soweit so gut. Nun das Problem. Ich habe nach besten Kräften versucht, die eingetragene Zahl zu "untersuchen" um sicherzustellen, dass nichts falsches eingetragen wird (Buchstaben, eine Nummer die höher ist als die maximale Zahl an vorhandenen Posten) Das sieht so aus:
c = InputBox("Bitte die Nummer des ersten Postens eintragen.", "Erster Posten - " & b & " Posten gesamt")
If IsNumeric(c) = False Then GoTo line1
If c < 1 Or b < c Then GoTo line2
Das Problem ist das b < c. (b ist die Maximalanzahl an Posten, ermittelt mit der obrigen Schleife - stimmt soweit)
Nun sieht es wie folgt aus: Momentan gibt es 11 Posten, also b = 11.
Wenn ich in der InputBox eine 1-11 eintrage werde ich weitergeleitet zu line2. Nach langem Herumprobieren habe ich herausgefunden, dass das " b < c " das Problem ist. Kehre ich das um zu " b > c " wird meine Eingabe korrekt angenommen ABER auch alles, was über C (11) ist.
Kann man das anders lösen? Habe ich etwas falsch gemacht? Konnte ich das Problem deutlich machen? Bitte helft mir.
Liebe Grüße
David