Programmieren - alles kontrollieren 4.938 Themen, 20.667 Beiträge

"Speichern unter..." in Excelmakro mit Visual Basic einfügen?

Mic2004 / 31 Antworten / Flachansicht Nickles

Hallo zusammen!

Ich möchte mir mithilfe von Visual Basic ein kleines Ecxel-Makro basteln, mir dem mal eine TXT-Datei importieren, damit ein Diagramm erstellen und diese dann speichern kann.

Kann mir dazu evtl. jemand eine kurze Anleitung geben, wie man in solch ein Makro mit Visual Basic ein „Öffnen…“ und ein „Speichern unter…“ Fenster einfügt. Sodass der Nutzer die gewünschte TXT-Datei damit suchen und öffnen kann und die fertige Excel-Datei dann auch unter wünschten Namen abspeichern kann.

Schon einmal Danke im Voraus!

Grüße,
Mic2004.

PS.: Ich bin noch etwas Neuling auf diesem Gebiet...

bei Antwort benachrichtigen
Mic2004 Nachtrag zu: „"Speichern unter..." in Excelmakro mit Visual Basic einfügen?“
Optionen

Hallo!

Ja, ich sagte, wir arbeiten noch mit Excel 2000 . Man kann zwar da dieses Steuerelement anwählen und auf die Fläche ziehen, dann kommt aber die besagte Fehlermeldung.

Ich habe es jetzt aber auch ohne dieses Steuerelement hinbekommen. In einem Makro, was mir ein Bekannter geschickt hat, habe ich folgenden Code gefunden und für meine Wünsche angepasst:

Dateiname = Application.GetOpenFilename("CSV-Datei (*.csv*), *.csv*", , "Datei die Importiert werden soll", , False)
If Dateiname = "Falsch" Then GoTo Ende:
Application.DisplayAlerts = False
Workbooks.OpenText Filename:=Dateiname, Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, _
Space:=False, Other:=False
Columns(1).Select
Selection.TextToColumns DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, _
Space:=False, Other:=False

Damit konnte ich dann meine TXT-Dateien öffnen und mit einem ähnlichen Code konnte ich meine Datei dann auch speichern.

Eines habe ich jedoch damit nicht hinbekommen. Ich wollte am Ende des Makros die Option lassen, ob man die Auswertung als neue Excel-Datei speichern oder an eine vorhandene Excel-Datei anhängen möchte. Leider gibt der o.g. Code auf die Variable „Dateiname“ nur den gesamten Dateinamen mit Pfad (z.B. C:\Daten\Beispiel.xls) aus. Um aber ein Excel-Arbeitsblatt von einer Datei in eine andere zu kopieren, muss man dafür den „nackten“ Dateinamen (z.B. Beispiel.xls) angeben. Das verträgt sich leider nicht. Hättest du evtl. da eine andere Idee? An sich müsste ich nur zwei Excel-Arbeitsblätter (eine Tabelle und ein Diagramm) aus einer Excel-Arbeitsmappe, die noch nicht als Datei gespeichert ist, in eine vorhandene Excel-Arbeitsmappe, die bereits als Datei gespeichert ist, kopieren oder verschieben.

Grüße,
Mic2004.

bei Antwort benachrichtigen