Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Kopie speichern

Kopie speichern
René
Hallo liebe Exelgemeinde,
habe mir ein Makro geschrieben. Ich will erreichen das er die Datei erst wieder im Ursprungsordner speichert und dann eine Kopie in einen anderen Orndner speichert. Danach soll die Datei als Mail versendet werden. Der erste Speichervorgang funktioniert. Aber beim zweiten Speichervorgang wird das Dateiformat nicht beim Speichern erkannt und genau so auch beim Mail versenden. Habt ihr einen Tipp an was das liegen kann?
MfG René
Sub A_Schaltfläche3_Klicken()
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "Y:\Eigene Dateien\Programmierung Epikrisen\Fertige Dateien\Test.xlsm"
Application.Quit
Dim ArrIndex, iIndex%, sExtension$, iFileFormat%, strFileName$
'Dateinamen aus aktuller Zelle
strFileName = Cells(50, 1).Value
If Dir("Y:\Test", vbDirectory) = "" Then
MkDir ("Y:\Test")
End If
'Wechselt das aktuelle Laufwerk.
ChDrive "Y:"
'Wechselt das aktuelle Verzeichnis oder den aktuellen Ordner
ChDir "Y:\Test"
'Datei Version
ArrIndex = Array("xlsx", "xlsm", "xls")
'Extention der Datei
sExtension$ = Right$(strFileName, Len(strFileName) - InStrRev(strFileName, "."))
'Dialog aufrufen
ActiveWorkbook.SaveAs "Y:\Test\" & strFileName & "_" & Format(Range("O7"), "dd_mm_yyyy")
ActiveWorkbook.SendMail Recipients:=mail, Subject:=strFileName & "_" & Format(Range("O7"), " _
dd_mm_yyyy")   'mail senden
End Sub

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Kopie speichern
11.05.2011 14:49:30
Michel2010
Hallo René,
ich mache das mit dem Befehl FileCopy
Erst speicher in die Mappe einfach, dann mache ich mit FileCopy eine Copy in ein anderes Verzeichnis, weil bei mit das Speichern einer Kopie direkt aus dem Makro nicht geklappt hat.
Vielleich klappt es ja dann auch mit dem Mail.
Gruß
Michel
Anzeige
AW: Kopie speichern
11.05.2011 14:56:40
René
Hallo Michel,
geht doch nicht wegen den strname
MfG René
AW: Kopie speichern
11.05.2011 15:21:31
Heiko
Hallo Rene,
dein Code ist doch sehr überfrachtet.
Entweder ist das alles nicht nötig oder du hast nur einen Teil der Aufgabe die der Code erfüllen soll beschrieben.
Also das was du als Frage angeführt hast könnte so funktionieren (ungetestet):
Sub A_Schaltfläche3_Klicken()
Dim strFileName As String
Application.DisplayAlerts = False
ActiveWorkbook.SaveCopyAs "Y:\Eigene Dateien\Programmierung Epikrisen\Fertige Dateien\Test.xlsm" _
Application.DisplayAlerts = True
'Dateinamen aus Zelle
strFileName = Cells(50, 1).Value
If Dir("Y:\Test", vbDirectory) = "" Then
MkDir ("Y:\Test")
End If
' Speichern
ActiveWorkbook.SaveCopyAs "Y:\Test\" & strFileName & "_" & Format(ActiveWorkbook.ActiveSheet. _
Range("O7"), "dd_mm_yyyy") & ".xlsm"
' Senden
ActiveWorkbook.SendMail Recipients:="Test@web.de", Subject:=strFileName & "_" & Format( _
ActiveWorkbook.ActiveSheet.Range("O7"), "dd_mm_yyyy ") & ".xlsm"
End Sub

Gruß Heiko
Anzeige
AW: Kopie speichern
11.05.2011 15:41:32
René
Hallo Heiko,
hat geklappt. Nun wird es doch noch ein ruhiger schöner Feierabend ohne Grübeln. Danke Dir herzlich.
Es grüßt Dich freundlich René aus Sachsen
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Excel: Eine Kopie speichern und per E-Mail versenden


Schritt-für-Schritt-Anleitung

Um in Excel eine Kopie zu speichern und diese anschließend per E-Mail zu versenden, kannst du den folgenden VBA-Code verwenden. Dieser speichert die Datei im Ursprungsordner und erstellt dann eine Kopie in einem anderen Verzeichnis.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject" > "Einfügen" > "Modul".
  3. Kopiere den folgenden Code in das Modul:
Sub A_Schaltfläche3_Klicken()
    Dim strFileName As String
    Application.DisplayAlerts = False
    ' Ursprüngliche Datei speichern
    ActiveWorkbook.SaveAs "Y:\Eigene Dateien\Programmierung Epikrisen\Fertige Dateien\Test.xlsm"

    ' Dateinamen aus Zelle
    strFileName = Cells(50, 1).Value

    ' Überprüfen, ob das Verzeichnis existiert
    If Dir("Y:\Test", vbDirectory) = "" Then
        MkDir ("Y:\Test")
    End If

    ' Kopie speichern
    ActiveWorkbook.SaveCopyAs "Y:\Test\" & strFileName & "_" & Format(ActiveSheet.Range("O7"), "dd_mm_yyyy") & ".xlsm"

    ' E-Mail senden
    ActiveWorkbook.SendMail Recipients:="Test@web.de", Subject:=strFileName & "_" & Format(ActiveSheet.Range("O7"), "dd_mm_yyyy")

    Application.DisplayAlerts = True
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Füge einen Button hinzu, um das Makro auszuführen.

Dieser Code ermöglicht es dir, die Datei als Kopie zu speichern und sie direkt per E-Mail zu versenden, ohne manuell „Speichern unter“ auswählen zu müssen.


Häufige Fehler und Lösungen

  • Fehler beim Speichern der Kopie: Wenn das Dateiformat nicht erkannt wird, stelle sicher, dass du die Dateiendung in deinem Speichercode korrekt angibst. Verwende den Dateinamen mit der richtigen Endung wie .xlsm.

  • E-Mail wird nicht gesendet: Überprüfe die Empfängeradresse und stelle sicher, dass dein E-Mail-Client korrekt eingerichtet ist.


Alternative Methoden

Eine effiziente Alternative zum Speichern einer Excel-Kopie ist die Verwendung des FileCopy-Befehls. Dieser Befehl kopiert die Datei in ein anderes Verzeichnis, ohne die Datei zuerst zu speichern. Hier ist ein einfaches Beispiel:

Sub KopieSpeichern()
    FileCopy "Y:\Eigene Dateien\Programmierung Epikrisen\Fertige Dateien\Test.xlsm", "Y:\Test\Kopie_Test.xlsm"
End Sub

Praktische Beispiele

  • Kopiere eine Datei in ein anderes Verzeichnis: Verwende den FileCopy-Befehl, um eine Kopie zu speichern, z.B.:
FileCopy "C:\MeinOrdner\Datei.xlsx", "C:\MeinOrdner\Kopie_Datei.xlsx"
  • E-Mail-Versand mit Outlook: Um sicherzustellen, dass die E-Mail korrekt gesendet wird, kannst du Outlook-Objekte verwenden.

Tipps für Profis

  • Verwende die Methode SaveCopyAs, um sicherzustellen, dass die Originaldatei nicht überschrieben wird. Dies ist besonders nützlich, wenn du häufig Änderungen vornimmst und eine Sicherungskopie benötigst.

  • Du kannst auch Application.DisplayAlerts auf True setzen, um Warnmeldungen während des Speicherns anzuzeigen.


FAQ: Häufige Fragen

1. Wie kann ich eine Excel-Datei als Kopie speichern?
Du kannst eine Excel-Datei als Kopie speichern, indem du den Befehl SaveCopyAs im VBA verwendest, wie im obigen Beispiel gezeigt.

2. Welche Dateiformate kann ich mit Excel speichern?
Excel unterstützt verschiedene Dateiformate, darunter .xls, .xlsx und .xlsm für Makros.

3. Wie sende ich eine Excel-Datei per E-Mail?
Verwende die Methode SendMail, um eine Excel-Datei direkt aus VBA zu versenden. Stelle sicher, dass dein E-Mail-Client korrekt konfiguriert ist.

4. Kann ich auch Word-Dokumente per E-Mail senden?
Ja, du kannst ähnliche VBA-Methoden verwenden, um eine Kopie von Word-Dokumenten zu speichern und zu versenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige