Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1924to1928
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
Inhaltsverzeichnis

Datei speichern

Datei speichern
11.04.2023 13:31:15
Daniel

Hallo zusammen

Wie kann ich per Makro die Datei unebenen, neue Dateiname besteht aus einem fixen Wort und aus einem Wert eine Zelle, die originale Datei muss bestehen bleiben.
Als nächstes soll es mit das Dialogfeld Speichern untern öffnen und zu einem bestimmten Pfad hinsteuern.

Nach dem erstelle ich manuell ein Ordner und speichere die Datei manuell ab.

Vielen Dank im Voraus.

Gruss
Daniel

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei speichern
11.04.2023 15:41:30
Heli
Hi Daniel,

leider werde ich aus Deiner Frage nicht schlau - kannst Du mal Schrittweise beschreiben was passieren soll?
_ Anwender öffnet Vorlage
_ Änderungen werden vorgenommen
_ Datei muss unter neuem Namen gespeichert werden (mit Vorgabe aus Zelle??)
_ Es soll immer ein neuer Ordner mit Namen ??? erzeugt werden
_ ... usw.

VG, Heli


AW: Datei speichern
11.04.2023 19:48:48
Daniel
Hallo Heli

Ok, versuche es mal.

- Anwender öffnet Datei Vorlage Invoice

- Die Datei besteht aus der Tabellenblätter Invoice, Delivery, CMR, Tarifnummer und Fehlermeldung (Alle Tabellen sind mit Formel versehen)

- Der Benutzer erstellt eine Rechnung

- Nach dem er die Rechnung erstellt hat, soll es per Makro eine neue Datei erstellen mit allen Tabellenblätter ausser mit dem Tabellenblatt Fehlermeldung
> Alle Formel werden als Wert überschrieben
> Die neu Datei soll die Dateiname bekommen > zusammen geschrieben
> Weiter soll es mit das Fenster öffnen Speichern unter C:\Users\Daniel\OneDrive - Muster\Logistik\02_Lieferdokumenten. In diesem Link steht mein Namen, aber soll andere Benutzer berücksichtigen.
> Der Benutzer erstellt manuell den Ordner und speichert die Datei ab

Hoffe dies hilft ein wenig.

Vielen Dank im Voraus.




Anzeige
AW: Datei speichern
11.04.2023 22:01:38
Heli
Ahh, siehst Du, jetzt wird es viel klarer um was es Dir geht :-)

Ich bin jetzt nicht der Spezialist für das Thema, aber vielleicht kann ja einer der VBA-Profis hier weiterhelfen - ich stelle auf offen.

VG, Heli


AW: Datei speichern
12.04.2023 23:25:12
Sheldon
Hallo Daniel,

als Ansatz dieser Code. Du musst natürlich alles anpassen an deine Datei, aber so sollte es funktionieren. Wichtig ist, dass es die Umgebungsvariable "OneDrive" gibt (sollte OneDrive immer anlegen), sowie dass es die Unterordner Logistik\02_Lieferdokumente bereits gibt. Wenn diese manuell erzeugt werden sollen, dann springe nur zum OneDrive-Ordner und lasse den Rest die User machen.

Sub Daniel()
Dim sFileName As String, oNewFile As Workbook, WorkbooksList As String

'#################################################
'### Speicherort und Dateiname wird festgelegt ###
'#################################################

'Annahme, dass der Zellwert für den Dateinamen in Zelle A1 auf Blatt "Invoice" steht. Ggf. auf deine Datei anpassen.
    sFileName = Application.GetSaveAsFilename(InitialFileName:=Environ("OneDrive") & "\Logistik\02_Lieferdokumente\Rechnung " & Sheets("Invoice").Range("A1"), _
                                              FileFilter:="Excel Dateien (*.xlsx), *.xlsx")
    
    
'#############################################################################
'### Blätter Invoice, Delivery, CMR und Tarifnummer in neue Datei kopieren ###
'#############################################################################

    'Erstmal alle offenen Dateien in Variable WorkbooksList speichern
    For Each oNewFile In Application.Workbooks
        WorkbooksList = WorkbooksList & "|" & oNewFile.Name
    Next
    'nun Blatt "Invoice" in neue Arbeitsmappe kopieren
    ThisWorkbook.Sheets("Invoice").Copy
    'und jetzt die WorkbooksList mit allen offenen Dateien vergleichen, um die neu angelegte Datei als oNewFile festzulegen
    For Each oNewFile In Application.Workbooks
        'Wenn diese Datei nicht in der WorkbooksList steht, ist es die neu angelegte Datei. Dann mit Exit For die Schleife verlassen.
        If InStr(1, WorkbooksList, oNewFile.Name, vbTextCompare) = 0 Then Exit For
    Next
    'nun alle anderen Tabellenblätter in die neue Datei kopieren, bis auf Invoice (ist ja schon da) und Fehlermeldung (soll ja nicht mit).
    For Each oSheet In ThisWorkbook.Worksheets
        If Not oSheet.Name = "Fehlermeldung" And Not oSheet.Name = "Invoice" Then
            oSheet.Copy after:=oNewFile.Sheets(oNewFile.Sheets.Count)
        End If
    Next
    'nun alle Formeln durch Werte ersetzen
    For Each oSheet In oNewFile.Worksheets
        oSheet.UsedRange.Copy
        oSheet.UsedRange.PasteSpecial Paste:=xlPasteValues
    Next
    
'###############################################################################################
'### Neu angelegte Datei am zuerst festgelegten Speicherort mit festgelegtem Namen speichern ###
'###############################################################################################
    
    oNewFile.SaveAs Filename:=sFileName, FileFormat:=xlOpenXMLWorkbook
    oNewFile.Close
    'die Objekt-Variablen werden freigesetzt, um den Arbeitsspeicher freizugeben
    Set oNewFile = Nothing
    Set oSheet = Nothing
    
End Sub
Funktionierts?

Gruß
Sheldon


Anzeige
AW: Datei speichern
17.04.2023 20:39:07
Daniel
Hallo Sheldon

Es funktioniert noch nicht ganz.

Was ich vergessen habe zu erwähnen ist, dass ich die Formel =Filter verwende und die Formel nicht als Wert übernimmt.

Gibt es dazu eine Lösung?

Gruss
Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige