Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1496to1500
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
Variable kleiner/größer als Variable?
13.06.2016 22:47:57
David

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

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable kleiner/größer als Variable?
14.06.2016 01:35:11
David
Ich muss ein wenig editieren:
`
Zum Einen ist eine Aussage nicht ganz richtig.
" b > c " wird meine Eingabe korrekt angenommen ABER auch alles, was über C (11) ist.
da ist natürlich B (11) und nicht C.
Zum Anderen habe ich herausgefunden, dass die Vergleiche nicht mit den Variablen sondern mit den Buchstaben gemacht werden. b > c ist demnach eine falsche Aussage. Wenn ich das umdrehe zu b < c stimmt es und er macht es. Wie also kriege ich die Variable als Variable und nicht als Buchstabe im Alphabet in den Vergleich?

Problem: Variablen enthalten Text statt Zahl! orT
14.06.2016 03:09:14
Luc:-?
Morrn, Luc :-?
Besser informiert mit …

Anzeige
AW: Variable kleiner/größer als Variable?
14.06.2016 07:23:05
Bernd
Servus,
If c 

ersetze das "Or" durch ein "And" und das b c, schliesslich müssen ja beide Argumente stimmen.
Grüße

AW: Variable kleiner/größer als Variable?
14.06.2016 12:34:57
David
Hallo Bernd.
Wenn ich das so mache wie du sagst, sähe das so aus:
c  c 
c ist ja die Eingabe aus der InputBox und b ist die Maximalzahl der Posten (momentan 11). Mit dem größer und kleiner als will ich dafür sorgen, dass nur Eingaben (c) die zwischen 1 und 11 liegen aktzeptiert werden. Deine Änderung würde dann (für ein Blatt) so aussehen wenn ich 2 eingebe:
2  2

Verstehst, was ich meine? Das haut so nicht hin. Rein mathematisch betrachtet ist meine Berechnung in Ordnung aber VBA nimmt meine Variablen nicht als Variable an und rechnet mit den berechneten Zahlen der Variablen sondern lediglich mit den Buchstaben. Wie sorge ich dafür, dass die Variablen als Variable genutzt werden?
" & c & "  " & c & " 

und
 " & varc & "  " varc & " 

klappt ebenfalls nicht. Was kann ich da machen?!

Anzeige
Du begreifst es wohl nicht, ...
14.06.2016 14:08:41
Luc:-?
…David!
Warum in aller Welt soll VBA hier mit den Bezeichnern der Variablen rechnen?! Die Deklaration deiner Variablen ist nicht ersichtlich, also sind sie wahrscheinlich vom DatenTyp Variant. Die InputBox liefert einen Text (auch, wenn er numerisch ist) → zeigt doch der VBE-Intellisense: InputBox(…) As String !
Folglich musst du die gelieferten Angaben erst noch in echte Zahlen wandeln, sonst wird nach Alfabet vglichen (aber eben nicht die Namen, sondern die Inhalte der Variablen!
Wie oft nur muss man noch darauf hinweisen! Steht doch schon xmal im Archiv! :-|
Gruß, Luc :-?
Besser informiert mit …

Anzeige
AW: Du begreifst es wohl nicht, ...
14.06.2016 14:16:07
David
Hallo Luc.
Ersteinmal vielen Dank für die Inspiration. Trotzdem muss ich mal fragen, wieso du mir nicht netterweise einen Link da gelassen hast, wenn es doch schon so oft dort steht? Es wäre auch sehr freundlich von dir, wenn du deine offensiv orientierte Äußerung ein wenig klarer darstellen könntest denn wie du wohl gesehen hast, sind meine VBA Kenntnisse nicht stark ausgeprägt. Wenn du tatsächlich helfen möchtest - was ich dir hoch anrechnen würde - dann lass doch bitte die Griesgrämerei beiseite und gebe mir Informationen, mit denen ich etwas anfangen kann.

Wieso kannst du damit nichts anfangen, ...
14.06.2016 15:02:21
Luc:-?
…David?
Es gibt eine Xl-Hilfe und eine VBEditor-Hilfe und den VBE-Intellisense, der dir bei Eingabe von InputBox und Leerzeichen oder ( anzeigt, wie's weitergehen muss und wie das Ergebnis dieser vbFkt deklariert ist. Außerdem gibt's im VBE noch den ObjektKatalog, aus dem das ebenfalls ersichtlich ist! Und natürlich gibt's auch noch KonvertierungsFktt wie CDbl, CLng u.w.
VBA bescheiden ist keine Ausrede für Drauflos-Pgmmieren ohne sich zuvor über Grundlegendes zu informieren! Und warum soll ich dir einen Link geben? Im Forumskopf gibt's den Button RECHERCHE, über den du nach allen Stichworten suchen kannst. Was meinst du wohl, was da bei InputBox-Angabe rauskommt…? :->
Schon mal was von Variablen-Deklaration gehört? Steht auch in der VBE-Hilfe → Stichwort Dim!
Luc :-?

Anzeige
AW: Wieso kannst du damit nichts anfangen, ...
14.06.2016 15:52:15
David
Nunja der Link würde deine hilfsbereitschaft bezeugen. Ich will es mal deutlich formulieren: Du bist mir keine Hilfe!
Und im übrigen das "VBA Bescheiden" habe ich mir selbst erarbeitet eben mit "wildem drauflos programmieren" daher sind Kommentare deinerseits in dieser Richtung gänzlich überflüssig.
Wenn du mir wirklich helfen möchtest, dann mach das bitte. Wenn du Spaß daran hast, Menschen zurecht zu weisen empfehle ich das Lehramt. Hier sucht man aber Hilfe und keine Besserwisser.
Daher möchte ich dich darauf aufmerksam machen, dass ich künftig keine dieser Kommentare meine Aufmerksamkeit schenken werde.

Anzeige
Na, dann wirst du weiterwursteln müssen, ...
14.06.2016 23:40:09
Luc:-?
…David… :-]
Was denkst du wohl, wie die meisten anderen und auch ich VBA erlernt haben (allerdings konnte ich bereits pgmmieren und wusste deshalb, dass man dabei auch Mist bauen kann)?! Und dazu habe ich nirgendwo eine Frage gestellt, sondern die vorhandenen Hilfsmittel genutzt.
Aber, warum mich das hier ärgert, ist vor allem, dass du …
1. einen Code-Schnipsel einstellst, aus dem nicht ersichtlich ist, ob und wie die Variablen deklariert sind;
2. völlig aus der Luft gegriffene Vermutungen äußerst, auf die vor dir wohl noch niemand gekommen ist (und die anderen AWer gehen nicht mal darauf ein!);
3. du meine Kurz-AW ignoriert hast und meine leicht überprüfbaren Aussagen weiter zu ignorieren vorhast, statt einfach mal in die VBE-Hilfe zu schauen, was im Sinne eines jeden Xl-Forums wäre (RTFM und STFA)!
Ich sehe nicht ein, und Andere sicher auch nicht, warum ich dir die RechercheArbeit abnehmen soll! Zum Stichwort InputBox dürfte es Dtzde Seiten nur in diesem ForumsArchiv geben!
Wandle die TextZahlen aus der InputBox-Eingabe in echte Zahlen - über die Konvertierungsfktt u/o indem du die aufnehmenden Variablen entsprd deklarierst (dann macht das VBA oft automatisch). Erst dann kannst du auch sinnvoll vergleichen!
Luc :-?

Anzeige
AW: Na, dann wirst du weiterwursteln müssen, ...
15.06.2016 07:54:41
David
Wenn du das so erlernt hast, habe ich großen Respekt vor dir.
Wenn dir meine Codeschnippsel nicht ausreichen, dann sage mir doch einfach, was du genau brauchst. Wie ich bereits versucht habe zu erläutern, sind meine VBA Kenntnisse nicht stark ausgeprägt.
Welche meiner Vermutungen sind denn so aus der Luft gegriffen?
Für dich mag das alles leicht zu überprüfen sein für mich aber ergeben die Begriffe - die du hier teilweise nennst - keinen Sinn, weil ich sie nicht kenne. Das habe ich versucht dir klar zu machen, aber irgendwie ist die Information nicht zu dir durchgedrungen.
Was die Recherche angeht, würde ich das auch in Angriff nehmen, wenn ich denn wüsste, wonach ich suchen soll.
Tatsächlich sind die Variablen als "variant" deklariert.
Ich danke dir für deine Geduld und hilfsbereitschaft. Und bitte sage mir, wenn meine Informationen nicht ausreichen. Andernfalls kann ich nicht gegensteuern.

Anzeige
Variant heißt, ein Text bleibt Text und eine ...
16.06.2016 00:30:03
Luc:-?
…Zahl eine Zahl, David;
da du die InputBox-Eingabe nicht in eine echte Zahl umwandelst, enthalten deine Variablen TextZahlen, die dann natürlich wie Texte behandelt wdn. Beim Vgl mit einer echten Zahl, egal wie groß die ist, ist die TextZahl, egal wie klein sie scheinbar ist, immer größer! Solche Fehler und die dadurch ausgelösten Fragen kommen öfter in allen einschlägigen Foren vor.
Wenn man einen VBA-Begriff nicht kennt, klickt man einfach mal auf das Fragezeichen im VBEditor und gibt ihn in der Hilfe ein. Oder kennst du den VBE gar nicht und schreibst deine Pgmm mit einem normalen Editor? Wer soll auf so etwas kommen…?!
Die Vermutung, dass die VariablenBuchstaben, also ihre Namen, miteinander vglichen wdn, hat wohl noch niemand vor dir geäußert! Habe ich jedenfalls noch nie und nirgendwo gelesen…
Den Suchbegriff für die RECHERCHE hatte ich schon genannt → natürlich InputBox!
Luc :-?
Anzeige

169 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige