PDA

Vollständige Version anzeigen : Problem mit meinem Speichermakro


Josh88
11.07.2012, 12:54
Hallo liebe Forenhelfer

Ich habe ein Problem mit einem meiner Makros. Ich möchte, dass beim öffnen der Vorlage eine Inputbox aufgeht wo man den Dateinamen angeben muss. Anschliessend soll der Dateiordner ausgewählt werden zum abspeichern. So weit funktioniert alles. Aber am Ende des Makros heisst es dass man die Arbeitsmappe als Excel mit Makros speichern muss obwohl ich das Dateiformat hinterlegt habe.

Option Explicit


Sub SaveAsxlOpenXMLWorkbookMacroEnabled()

Dim strWorkbookName As String
Dim intPos As Integer



'Find position of extension in filename
strWorkbookName = ActiveWorkbook.Name
intPos = InStrRev(strWorkbookName, ".")


If intPos = 0 Then

'If the document has not yet been saved
'Ask the user to provide a filename
strWorkbookName = InputBox("Bitte geben Sie den Namen " & _
"von dem Dokument ein.")



Else

'Strip off extension and add ".xlsm" extension
strWorkbookName = Left(strWorkbookName, intPos - 1)
strWorkbookName = strWorkbookName & ".xlsm"

End If

Dim sPath As String
With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Show
End With

ActiveWorkbook.SaveAs sPath & strWorkbookName
ActiveWorkbook.SaveAs Filename:=sPath & Application.PathSeparator & strWorkbookName
ActiveWorkbook.SaveAs FileFormat:=xlOpenXMLWorkbookMacroEnabled, _
Password:="", _
WriteResPassword:="", _
ReadOnlyRecommended:=False, _
CreateBackup:=False





End Sub


Hat jemand eine Idee woran das es liegt, dass das Format Trotzdem eine Excelarbeitsmape ohne Makros bleibt?

Besten Dank zum Voraus für eure Hilfe!
Liebe Grüsse
Josh

IngGi
11.07.2012, 13:22
Hallo Josh,

die Parameter für VBA-Methoden werden als durch Komma getrennte Auflistung übergeben, nicht indem die Methode mehrfach aufgerufen wird (je 1 Mal pro Parameter). Ersetze mal das:

<blockquote><div style='background-color: #F2F2FF; border: 1px solid #3300B2; padding: 0px 24px;'><pre style='font-size: 12px; padding: 0px 10px;'>ActiveWorkbook.SaveAs sPath & strWorkbookName<br>ActiveWorkbook.SaveAs Filename:=sPath & Application.PathSeparator & strWorkbookName<br>ActiveWorkbook.SaveAs FileFormat:=xlOpenXMLWorkbookMacroEnabled, _<br>Password:=<span style='color: #CC9900;'>""</span>, _<br>WriteResPassword:=<span style='color: #CC9900;'>""</span>, _<br>ReadOnlyRecommended:=<span style="color: #0000FF">False</span>, _<br>CreateBackup:=<span style="color: #0000FF">False</span><br></pre><hr style='color: #3300B2; background: #3300B2; height: 1px;'><p style='font-size: 8px; font-family: Verdana; text-align: right;'>VBA/HTML - CodeConverter für Excelforen<br>AddIn für Excel XP+2003 - komplett in VBA geschrieben von IngGi<br>Anbindung an VBE-Kontextmenü geklaut ;-) bei: <a href='http://www.cpearson.com/excel/VbeMenus.aspx'>http://www.cpearson.com/excel/VbeMenus.aspx</a></p></div></blockquote>

durch das:

<blockquote><div style='background-color: #F2F2FF; border: 1px solid #3300B2; padding: 0px 24px;'><pre style='font-size: 12px; padding: 0px 10px;'>ActiveWorkbook.SaveAs Filename:=sPath & Application.PathSeparator & _<br> strWorkbookName, FileFormat:=xlOpenXMLWorkbookMacroEnabled<br> </pre><hr style='color: #3300B2; background: #3300B2; height: 1px;'><p style='font-size: 8px; font-family: Verdana; text-align: right;'>VBA/HTML - CodeConverter für Excelforen<br>AddIn für Excel XP+2003 - komplett in VBA geschrieben von IngGi<br>Anbindung an VBE-Kontextmenü geklaut ;-) bei: <a href='http://www.cpearson.com/excel/VbeMenus.aspx'>http://www.cpearson.com/excel/VbeMenus.aspx</a></p></div></blockquote>

Gruß Ingolf

Josh88
11.07.2012, 13:35
Hallo Ingolf

Besten Dank für die rasche Antwort!
Funktioniert soweit ganz gut. Was ich aber nicht verstehe ist dass die Datei jetzt auf dem Laufwerk Root gespeichert wird wenn ich den Ordner auswähle. Also auf F:\ anstatt in mehreren Unterordner. Ist bei der Folderauswahl Methode noch etwas nicht gut? :s

Besten Dank für weitere Inputs!

IngGi
11.07.2012, 14:12
Hallo Josh,

du musst den ausgewählten Ordner auch in die Variable sPath übertragen.

<blockquote><div style='background-color: #F2F2FF; border: 1px solid #3300B2; padding: 0px 24px;'><pre style='font-size: 12px; padding: 0px 10px;'><span style="color: #0000FF">Dim</span> sPath <span style="color: #0000FF">As</span> <span style="color: #0000FF">String</span><br><span style="color: #0000FF">With</span> Application.FileDialog<span style='color: #B200CC;'>(</span>msoFileDialogFolderPicker<span style='color: #B200CC;'>)</span><br> .AllowMultiSelect = <span style="color: #0000FF">False</span><br> .Show<br> sPath = .SelectedItems.Item<span style='color: #B200CC;'>(</span><span style="color: #FF0000">1</span><span style='color: #B200CC;'>)</span> & <span style='color: #CC9900;'>"\"</span><br><span style="color: #0000FF">End </span><span style="color: #0000FF">With</span></pre><hr style='color: #3300B2; background: #3300B2; height: 1px;'><p style='font-size: 8px; font-family: Verdana; text-align: right;'>VBA/HTML - CodeConverter für Excelforen<br>AddIn für Excel XP+2003 - komplett in VBA geschrieben von IngGi<br>Anbindung an VBE-Kontextmenü geklaut ;-) bei: <a href='http://www.cpearson.com/excel/VbeMenus.aspx'>http://www.cpearson.com/excel/VbeMenus.aspx</a></p></div></blockquote>

Gruß Ingolf

Josh88
11.07.2012, 14:50
Besten Dank Ingolf!
Funktioniert Bestens!

Wünsche noch einen schönen Tag