Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
692to696
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
692to696
692to696
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

GoTo Anweisung ?

GoTo Anweisung ?
12.11.2005 22:34:28
Gerhard
Hallo!
Schaffe es nicht das folgende Problem zu lösen.
Möchte bei einer If Anweisung nicht "Exit Sub" sondern nur einen Teil überspringen.
If DateiOffen(strDateiMonat) = False Then
Go To
End If
Windows(strDateiMonat).Activate
Sheets(strMonatSheets1).Activate
ActiveWorkbook.Save
ActiveWindow.Close
To
If DateiOffen(strDateiBestand) = False Then
ActiveWindow.Close
Exit Sub
End If
Windows(strDateiBestand).Activate
ActiveWorkbook.Save
ActiveWindow.Close
End Sub
Wie geht das, dass ich in dem Macro vom GoTo zu To komme.
Bitte um Hilfe
Gerhard

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: GoTo Anweisung ?
12.11.2005 22:59:33
Aton
Hallo
Goto und weiter unten Gosub

Sub test() ' Nicht lauffähig nur prinzip
Codezeilen des Hauptprogramms
Nochmal: ' Sprungmarke die angesprungen werden kann. ab hier dann wieder nach unten
A = Range("A" & Ze + Ze_M)
If Mid(Range("A" & Ze + Ze_M), 1, 21) = "Bild- und Tonformate:" Then
Ze_M = Ze_M + 1
Ze_M = Ze_M + 1
GoTo Nochmal' zur Sprungmarke springen
end if
Codezeilen des Hauptprogramms
go

Sub Nochmal_Extra ' hin und nach return zurück
end ' Hier endet das Hauptprogramm , End wichtig damit das makro nicht zu Nochmal_Extra
hineinleüft und dann bei return merkt das kein sprung zuvor statgefunden hat.
Nochmal_Extra:
A = Range("A" & Ze + Ze_M)
If Mid(Range("A" & Ze + Ze_M), 1, 21) = "Bild- und Tonformate:" Then
Ze_M = Ze_M + 1:
Ze_M = Ze_M + 1
end if
Return
End Sub

Anzeige
AW: GoTo Anweisung ?
12.11.2005 23:01:36
PeterW
Hallo Gerhard,
GoTo ist abgesehen von Fehlerbehandlungen in VBA so überflüssig wie ein Kropf. Eine Möglichkeit für deinen Code, ohne den Sinn zu hinterfragen, könnte so aussehen:

Sub OhneGOTO()
If DateiOffen(strDateiMonat) = False Then
If DateiOffen(strDateiBestand) = False Then
ActiveWindow.Close
Exit Sub
End If
End If
Windows(strDateiMonat).Activate
Sheets(strMonatSheets1).Activate
ActiveWorkbook.Save
ActiveWindow.Close
Windows(strDateiBestand).Activate
ActiveWorkbook.Save
ActiveWindow.Close
End Sub

Gruß
Peter
AW: GoTo Anweisung ?
12.11.2005 23:26:55
Gerhard
Hallo Peter
Danle für deine Hilfe!
Wenn ich das mache dann bleibt mir aber die Datei (strDateiBestand)geöffnet weil das Macro nicht mehr ausgeführt wird. Ich habe 2 Dateien die geschlossen werden sollen. Ausführen tue ich das Macro über einen Schaltfläche. Wenn die aber gedrückt wird ohne dass die Dateien göffnet sind, eintweder nur eine oder gar keine göffnet ist dann kommt eine Fehlermeldung. Das ganze Macro lautet

Sub VerrBeenden()
'Speichern und beenden Monatsabrechnung u. Kunde Bestand
Call SteuerungAktivierung
Dim strDateiBestand As String
Dim strDateiMonat As String
Dim strMonatSheets1 As String
strDateiMonat = Workbooks(strNameSteuerung).Sheets("INI").[B13]
strDateiBestand = Workbooks(strNameSteuerung).Sheets("INI").[B12]
strMonatSheets1 = Workbooks(strNameSteuerung).Sheets("INI").[B14]
If DateiOffen(strDateiMonat) = False Then
'Go To ?
End If
Windows(strDateiMonat).Activate
Sheets(strMonatSheets1).Activate
Call BlattschutzAus
Dim lRow As Long
With Sheets(strMonatSheets1)
For lRow = 4 To 582
If .Cells(lRow, 1) > 0 Then .Cells(lRow, 19).Value = .Cells(lRow, 19)
Next
End With
Call Blattschutz
ActiveWorkbook.Save
ActiveWindow.Close
'To  ?
If DateiOffen(strDateiBestand) = False Then
ActiveWindow.Close
Exit Sub
End If
Windows(strDateiBestand).Activate
ActiveWorkbook.Save
ActiveWindow.Close
End Sub

Wie schaffe ich es, dass der untere Teil des Macros ab "'To?" noch augeführt wird wenn das obere If eintritt?
Gruss
Gerhard
Anzeige
AW: GoTo Anweisung ?
12.11.2005 23:44:12
Aton
Hallo
If DateiOffen(strDateiMonat) = False Then
goTo weiter ' obere Anweisung
End If
ActiveWindow.Close
weiter:' Sprungmarke setzen
If DateiOffen(strDateiBestand) = False Then
AW: GoTo Anweisung ?
13.11.2005 00:11:38
PeterW
Hallo Gerhard,
eine Lösung hast du jetzt bekommen. Wenn sie dein Problem aus der Welt bring ist dir für den Moment geholfen. Wichtig ist, dass ein Code das erledigt, was er erledigen soll.
Ich bleibe dabei, dass GoTo nicht nötig ist! Und in ein paar Monaten, wenn du mit der VBA Programmierung etwas vertrauter bist, wirst du das auch so sehen. :-)
Einen Tipp darf ich dir geben: arbeite mit Objektvariablen statt mit Strings, dann lässt sich der Code leichter lesen als mit ActiveWasAuchImmer.
Gruß
Peter
Anzeige
AW: GoTo Anweisung ?
13.11.2005 00:42:51
Gerhard
Hallo Peter
Habs gelöst indem ich das Macro aufgeteilt habe auf zwei Macros.
Danke
Gerhard

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige