Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

"Speichern unter" mit Hilfe von VBA

Empfohlene Antworten

Veröffentlicht

Hallo :)

1. Ich habe zwei Tabellen innerhalb einer xls.Datei, welche ich an einen beliebigen Speicherort speichern möchte. Die restliche Tabellen der Excel-Datei sollen nicht gespeichert werden.

2. Da der User jedoch nicht den Pfad angeben, sondern sich bis zum gewünschten Speicherort "durchklicken" soll, bräuchte ich dieses Windows-typische "Speichern unter"-Fenster.

Wie rufe ich dieses auf? Und wie sage ich Excel, dass es nur die zwei Tabellen in einer neuen Excel-Mappe speichern soll?

Bin dankbar für jede konstruktive Antwort :D

Original geschrieben von ***flame***

Hallo :)

1. Ich habe zwei Tabellen innerhalb einer xls.Datei, welche ich an einen beliebigen Speicherort speichern möchte. Die restliche Tabellen der Excel-Datei sollen nicht gespeichert werden.

2. Da der User jedoch nicht den Pfad angeben, sondern sich bis zum gewünschten Speicherort "durchklicken" soll, bräuchte ich dieses Windows-typische "Speichern unter"-Fenster.

Wie rufe ich dieses auf? Und wie sage ich Excel, dass es nur die zwei Tabellen in einer neuen Excel-Mappe speichern soll?

Bin dankbar für jede konstruktive Antwort :D

Als Idee (keine Ahnung, ob das auch leichter geht ...)

1. Die beiden benötigten Tabellen in eine neue Excel Tabelle kopieren

2. Die Funktion "saveas(String)" sollte dir helfen das entsprechende "Speichern unter" Fenster zu finden.


Z.B.: 

SaveAs ("Rechnung")

Edit:

Damn grad ma getestet .. das speichern unter Fenster zeigt er dir gar nicht an, wenn du einfach saveas(dateiname) verwendest .. jedenfalls nicht bei ner bestehenden datei .. da nimmt er dann den pfad der bestehenden datei ...

hmm ich guck nochma ...

Original geschrieben von dgr243

Als Idee (keine Ahnung, ob das auch leichter geht ...)

1. Die beiden benötigten Tabellen in eine neue Excel Tabelle kopieren

2. Die Funktion "saveas" sollte dir helfen das entsprechende "Speichern unter" Fenster zu finden.



Z.B.: 

SaveAs ("Rechnung")

Danke, aber das ist nicht, was ich wollte.

Also, nochmal. Möchte, aus dieser Excel-Datei heraus zwei Tabellen in eine neue Arbeitsmappe kopieren. Soweit ist das richtig. Aber ich möchte im Vorfeld schon festlegen, wie die Datei dann heißen und wo sie gespeichert werden soll.

Also soll der Name für die zu speichernde 2. Mappe aus der 1. Mappe übernommen werden. Und wenn ich die SaveAs-Funktion verwende, bekomm ich ja auch nicht gleich dieses super-bequeme-userfreundliche-Fenster zum durchklicken! User merken sich nämlich nur ungern längere Pfade....:rolleyes:

Original geschrieben von ***flame***

Danke, aber das ist nicht, was ich wollte.

Also, nochmal. Möchte, aus dieser Excel-Datei heraus zwei Tabellen in eine neue Arbeitsmappe kopieren. Soweit ist das richtig. Aber ich möchte im Vorfeld schon festlegen, wie die Datei dann heißen und wo sie gespeichert werden soll.

Also soll der Name für die zu speichernde 2. Mappe aus der 1. Mappe übernommen werden. Und wenn ich die SaveAs-Funktion verwende, bekomm ich ja auch nicht gleich dieses super-bequeme-userfreundliche-Fenster zum durchklicken! User merken sich nämlich nur ungern längere Pfade....:rolleyes:

Ah ok nu seh ich besser durch...

Wenn du festlegen willst, unter welchen Namen und wo du speichern willst dann ist das ja gar kein Problem:


ActiveWorkbook.saveas filename := "c:\Pfad\dateiname.xls"

Da der Name aus der ersten Datei stammt kannst du denn je nachdem wo das in der ersten Datei steht entweder als Variable übergeben oder gleich als globale Variable verwenden. Den Dateinamen kannste auch direkt hart im Quelltext eintragen. Dasselbe dann für den Pfad.

'Beispiel für Dateiname und Pfad aus Variablen


dim dateiname as string

dim pfad as string


activeworkbook.saveas filename := pfad & dateiname


'Beispiel für hart eingetragenen Pfad


dim dateiname as string


activeworkbook.saveas filename := "c:\Eigene Dateien\" & dateiname

P.s.: Für Tipfehler übernehme ich keine Haftung ;)

Ich glaub, wir reden aneinander vorbei!

Ich will doch bloß dieses Fenster haben, wenn ich speichern will. Den Pfad übernehm ich dann in eine Variable und den Rest bekomm ich dann auch hin ;)

Will die 2 Tabellen ja auch nicht in den selben Ordner wie die Quelldatei speichern, sondern der User soll das frei wählen können, bevor gespeichert wird.

Hab ja schon sowas in der Art "Datei öffnen" gefunden --->

 

fileToOpen = Application.GetOpenFileName("Text Files (*.xls), *.xls")

If fileToOpen <> False Then

MsgBox "Open " & fileToOpen

End If

Und sowas halt nur für's Speichern...

Versuch's mal hiermit:

Application.GetSaveFileName

genaue Syntax kann ich Dir im Moment nicht sagen -> Hilfe

Application.Dialogs(xlDialogSaveWorkbook).Show

oder

Application.Dialogs(xlDialogSaveAs).Show

Vielleicht so? Zeigt den Standardialog (Speichern bzw. Speichern unter) an.

Danke nochmal für die Tips, aber hab die Lösung schon gefunden gehabt.

hier meine Lösung:


fileSaveName = Application.GetSaveAsFilename( _

    fileFilter:="Excel Files (*.xls), *.xls")

If fileSaveName <> False Then

    MsgBox "Save as " & fileSaveName

End If


Sheets(Array("Tabelle1", "Tabelle3")).Copy '2 tbls in eine neue Arbeitsmappe speichern


ActiveWorkbook.SaveAs Filename:= _

        fileSaveName, FileFormat:= _

        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _

        , CreateBackup:=False

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.