Anzeige
Archiv - Navigation
1264to1268
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

If... Then zum nächsten gehen

If... Then zum nächsten gehen
Ximena
Hallo ihr Lieben
Ich weiss, ich stelle viele Fragen... Aber ich finde einfach keine passende Antwort, wenn ich Google...
Gut, ich habe einen Code:
myRequests = InputBox("Enter the something")
If myRequests = "" Or myRequests = " " Or myRequests = "0" Then
Exit Sub '
Dort wo der Pfeil ist, beim Exit Sub, dort ist meine Frage. Und zwar, wenn die If-Bedingung zutrifft, dann soll die Makro runter springen, wo "Die nächste Anweisung" steht. Wie schaffe ich das?
Weil wenn ich Exit Sub schreibe, dann geht er ja aus dem Sub raus, er soll aber drinne bleiben, einfach weiter unten weitermachen... Kann ich das mit GoTo?
Wäre froh um Hilfe!
Liebe Grüsse
Ximena

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
geht schon, aber...
01.06.2012 15:47:08
Sheldon
Hi Ximena,
...solltest du lieber vermeiden, weil der Code übersichtlicher bleibt ohne Goto. Für diesen Fall schlage ich statt dessen folgenden Aufbau vor:

myRequests = InputBox("Enter the something")
If myRequests = "" Or myRequests = " " Or myRequests = "0" Then
'Die nächste Anweisung
Else
For IngCount = 1 To myRequests
Select Case IngCount
Case 1
mySL1 = InputBox("Which...")
Case 2
mySL2 = InputBox("Which...")
Case 3
mySL3 = InputBox("Which...")
End Select
Next IngCount
objXLS.Application.Run "VBAProject.SimpleRequestTimes.SimpleRequestTimes", mySL1, mySL2, _
mySL3, myRequests, myMonth, myYear, myDivision
End If
Gruß
Sheldon
Anzeige
AW: If... Then zum nächsten gehen
01.06.2012 15:50:22
Uwe
Hallo Ximena,
GOTO sollte man nicht verwenden, außer zur Fehlerbehandlung.
Hier reicht es, einfach die Logig "umzudrehen:
myRequests = InputBox("Enter the something")
If myRequests  "" And myRequests  " " And myRequests  "0" Then
For IngCount = 1 To myRequests
Select Case IngCount
Case 1
mySL1 = InputBox("Which...")
Case 2
mySL2 = InputBox("Which...")
Case 3
mySL3 = InputBox("Which...")
End Select
Next IngCount
objXLS.Application.Run "VBAProject.SimpleRequestTimes.SimpleRequestTimes", mySL1, mySL2, _
mySL3, myRequests, myMonth, myYear, myDivision
End If '

Habe ich Dich richtig verstanden?
Gruß
Uwe
(:o)
Anzeige
AW: If... Then zum nächsten gehen
01.06.2012 16:19:02
EtoPHG
Hallo Ximena,
Ich kann nicht nachvollziehen wie man Befehle, wie
objXLS.Application.Run "VBAProject.SimpleRequestTimes.SimpleRequestTimes", mySL1, mySL2,  _
mySL3, myRequests, myMonth, myYear, myDivision
konstruieren kann, aber einen einfaches IF-Konstrukt nicht.
1. InputBox gibt immer einen String (ggf. einen leeren) zurück.
2. ...also solltes du diesen (weil später so gebraucht) in eine numerische Variable umwandeln, z.B. mit
Dim lngCountTotal
lngCountTotal = Clng(Val(myRequests))

3. und dann testen...
If lngCountTotal > 0 then
For lngCount = 1 to myRequest
Next lngCount
objXLS.Applic.....
End If
Gruess Hansueli
Anzeige
AW: If... Then zum nächsten gehen
01.06.2012 16:25:41
robert
Hi,
bin Mitleser und Deiner Meinung!
Dein Find... Code-war ja auch "zu kompliziert".....
Aber fragen ist ja einfacher, als selbst Lösung zu suchen...
Gruß
robert
ooops,...Korrektur
01.06.2012 16:32:22
EtoPHG
...wenn man schon eine Variable konstruiert, sollte man sie auch gebrauchen.
Also Punkt 3.
3. und dann testen...
If lngCountTotal > 0 then
For lngCount = 1 to lngCountTotal
Next lngCount
objXLS.Applic.....
End If
Sorry, schönes WS & Gruess Hansueli
AW: If... Then zum nächsten gehen
01.06.2012 17:02:45
Reinhard
Hallo Ximenia,
in den Basics hast du noch Optimierungsmöglichkeiten :-)
Deine erste If Abfrage ist doch löchrig wie ein Schwamm. Was issn wenn jemand einen Buchstaben eingibt?
Wie reagiert denn da die For Schleife darauf? Teste das mal.
Je nach erstem Input kommt es noch zu 1-3 weiteren Inputs. Deren Eingaben wandern ungeprüft
in den objXLS Aufruf, erscheint mir unsicher wenn da falsche daten eingegeben würden.
Hier mal ein Ansatz, die Prüfung der anderen drei Inputs müßte noch eingebaut werden.
Wie gesagt liefert die Inputbox einen String zurück aber Xl denkt mit deshalb klappt das mit
If myRequests=1 und man braucht kein myRequests="1".

myRequests = InputBox("Enter the something")
If myRequests = 1 Or myRequests = 2 Or myRequests = 3 Then
If myRequests >= 1 Then mySL1 = InputBox("Which...")
If myRequests >= 2 Then mySL2 = InputBox("Which...")
If myRequests = 3 Then mySL3 = InputBox("Which...")
objXLS.Application.Run "VBAProject.SimpleRequestTimes.SimpleRequestTimes", mySL1, mySL2, _
mySL3, myRequests, myMonth, myYear, myDivision
End If
'Die nächste Anweisung

Gruß
Reinhard
Anzeige
Danke an diejenige, die mir geholfen haben
04.06.2012 08:53:59
Ximena
Hallo ihr Lieben
Erst mal danke ich all denen, die mir da weitergeholfen haben. Mir ist irgendwie nicht in den Sinn gekommen, dass ich die Logik umdrehen könnte... Naja, aber jetzt erscheint es mir sonnenklar.
Und für all diejenigen, die rumnörgeln; ihr seit die Excel-Profis und nicht ich. Deshalb stelle ich hier ja auch Fragen. Man lernt jeden Tag dazu und manchmal hat man halt Tage an denen einem das Offensichtliche nicht auffällt. Deshalb muss man niemanden heruntermachen oder ihm vorwerfen, dass er nicht im Stande ist, selbst Lösungen zu finden. Ich bin sehr wohl in der Lage mir selbst zu helfen und das habe ich auch schon 100 Mal getan, doch wenn ich eben über einen halben Tag an einer Sache sitze und mir die Lösung nicht einfällt, dann bin ich klug genug, um zu fragen. Denn wer nicht fragt bleibt dumm. Ausserdem tut es mir Leid, wenn meine Lösungen nicht euren Prinzipien entsprechen. Klar kann man in die InputBox auch nur einen Buchstaben eingeben und dann funktioniert meine Makro nicht mehr, aber da ich sie später selbst benutzen werde, denke ich, dass ich klug genug bin, um das richtige Wort einzugeben!
Deshalb danke ich denjenigen, die mir ganz freundlich, normal und ohne Sarkasmus erklärt haben, wie ich mein Problem lösen kann. Ihr seid echt toll.
Liebe Grüsse
Ximena
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige