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

Code aufrufen mit optinalem Argument

Code aufrufen mit optinalem Argument
31.10.2007 14:49:00
Peter
Guten Tag
Nachfolgenden Code rufe ich aus,w enn ich die aktive Datei speichern will. Nun möchte ich den Code gerne wie folgt modifizieren:
mit Call abSpeichern
soll der nachfolgende Code, wie er jetzt besteht, ausgeführt werden
mit Call abSpeichern ohne
soll der nachfolgende Code ausgeführt werden, ohne dass nachgefragt wird, ob tatsächlich gespeichert werden soll.
Wie muss ich den Code umbauen, dass das Zusatzargument "ohne" diese Wirkung hat?
Danke für eine Rückmeldung.
Peter

Sub abSpeichern()
Dim aName As String
Dim aUs As Integer
'Abfrage, ob Daten gespeichert werden sollen
aName = ActiveWorkbook.Name
aUs = MsgBox(" Wollen Sie die Datei speichern?", vbYesNo + vbQuestion + _
vbDefaultButton1, "DATEI OHNE SPEICHERN SCHLIESSEN = MÖGLICHER DATENVERLUST")
If aUs = vbYes Then
Application.StatusBar = _
"Datei " & aName & " wird gespeichert"
ActiveWorkbook.Save
Else
End If
Application.StatusBar = ""
End Sub


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

Betreff
Datum
Anwender
Anzeige
SUB mit optionalem Argument aufrufen
31.10.2007 15:07:01
NoNet
Hallo Peter,
meinst Du das so :

Sub abSpeichern(Optional Ohne = "")
Dim aName As String
Dim aUs As Integer
'Abfrage, ob Daten gespeichert werden sollen
aName = ActiveWorkbook.Name
If Ohne  "" Then
aUs = True
Else
aUs = MsgBox(" Wollen Sie die Datei speichern?", vbYesNo + vbQuestion + _
vbDefaultButton1, "DATEI OHNE SPEICHERN SCHLIESSEN = MÖGLICHER DATENVERLUST")
End If
If aUs = vbYes Then
Application.StatusBar = _
"Datei " & aName & " wird gespeichert"
'ActiveWorkbook.Save
Else
End If
Application.StatusBar = ""
End Sub


Mit dem Aufruf abspeichern wird nachgefragt, mit abSpeichern "ohne" wird nicht nachgefragt.
Anstatt "ohne" kannst Du auch jeden anderen Wert (oder String) übergeben, nur keinen Leerstring !
Gruß, NoNet

Anzeige
AW: SUB mit optionalem Argument aufrufen
31.10.2007 15:23:36
Peter
Hallo NoNet
Genau, so hab ichs mir gewünscht.
Wenn ich allerdings call Abspeichern "ohne" eingebe, wird der Code rot. Muss ich nicht irgendwo das "ohne" noch als String dimensionieren?
Vielen Dank.
Peter

AW: SUB mit optionalem Argument
31.10.2007 15:25:00
Erich
Hallo Peter,
mein Vorschlag:

Sub abSpeichern(Optional Ohne As String)
Dim aUs As Integer
If Ohne = "" Then
aUs = vbYes
Else
'Abfrage, ob Daten gespeichert werden sollen
aUs = MsgBox(" Wollen Sie die Datei speichern?", _
vbYesNo + vbQuestion + vbDefaultButton1, _
"DATEI OHNE SPEICHERN SCHLIESSEN = MÖGLICHER DATENVERLUST")
End If
If aUs = vbYes Then
Application.StatusBar = "Datei " & ActiveWorkbook.Name & " wird gespeichert"
ActiveWorkbook.Save
End If
Application.StatusBar = ""
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: SUB mit optionalem Argument
31.10.2007 15:46:15
Peter
Hallo Erich
Vielen Dank. ich habe wieder eine Menge gelernt, auch noch mit dem Nachtrag von Nonet.
Gruss, Peter

Wenn Du CALL verwendest, dann mit Klammern
31.10.2007 15:39:00
NoNet
Halo Peter,
unter VBA kannst Du ein Makro mit Parametern entweder so starten :
abspeichern "ohne"
oder so :
CALL abspeichern("ohne")
Bei Verwendung des Schlüsselwortes "Call" müssen die Argumente der aufgerufenen Subroutine also in Klammern gesetzt werden. Wird die Subroutine OHNE Argumente aufgerufen, sind diese Klammern auch bei "Call" nicht notwendig :
Call abSpeichern
Gruß, NoNet

AW: Wenn Du CALL verwendest, dann mit Klammern
31.10.2007 15:45:13
Peter
Hallo NoNet
Vielen Dank, das hat geholfen.
Peter
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige