Excel: Variablen übergabe

Hallo Experten,
ich will modular programieren, weil dann habe ich eine Routine die funktioniert und kann die verschlimmbessern. Solange bis es nicht mehr funktioniert. :wink:

Ich habe mir eine kleine Routine geschrieben zum Abspeichern. Ich will natürlichdabei den Namen ändern. also dachte ich mir:

Sub Main
 SaveFile("Mappe1.xls", reportName)
Douselessstuff
 SaveFile(reportName, reportName)
End Sub 
Sub SaveFile(strOldName As String, strNewName As String)
'\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
' Speichert oldname als newName ab
'\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
 Application.DisplayAlerts = False 'Nachfrage soll überschrieben werden AUS
 Workbooks(strOldName).SaveAs Filename:=strNewName, FileFormat:= \_
 xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False \_
 , CreateBackup:=False
 Application.DisplayAlerts = True 'Nachfrage soll überschrieben werden wieder AN

End Sub

Nur funktioniert das nicht.
Mit Einer Variablen klappt das wunderbar, aber sobald ich zwei Variablen übergeben möchte kommt die Fehlermeldung:
Erwarte =
Auf elchem Schlauch stehe ich denn?
Grüße Winter

Hallo Winter,

zwei Dinge…
erstens darf bei dem Aufruf von SaveFile keine klammer gesetzt werden.
Zweitens ist es in dem Fall essentiell wichtig (zumindest in meiner Excel Version, dass Du die Variablen auch deklarierst.

Ein funktionales Beispiel hier:

Sub test()
 Dim va1 As String
 Dim va2 As String
 va1 = "Hallo "
 va2 = "Welt!"

 test2 va1, va2
End Sub

Sub test2(var1 As String, var2 As String)
 MsgBox var1 & var2
End Sub

Grüße
Munich

hi Munich,

zwei Dinge…
Erstens

Aha
Das klärt so manches !
Danke!

Zweitens ist es in dem Fall essentiell wichtig (zumindest in

mache ich, seit mich Reinhard so liebenswerterweise darauf hingewiesen hat. :wink:
Auch in meiner Excel version übrigens, ich hatte sie noch Variant deklariert. Und das meckert er dan an.
Dim var1, var2 as String
So langsam kann man den Code auch mal zeigen ohne dass sich Leute die Augen ausstechen

Munich

Danke!
Gruß
Winter