erst einmal kurz zu mir, heiße Nico, mittleren Alters und verfüge über ausreichende Excel-Kenntnisse. VBA ist allerdings völliges Neuland für mich. Den ein oder anderen Makrorekorder habe ich schon genutzt. Aus der Google-Wissens-Datenbank habe ich mir VBA-Bausteine zusammengesucht, die zwei Buttons in meiner aktuellen Projekt-Liste steuern.
Ich habe ein Template erstellt, welches im Augenblick sehr gut funktioniert. Es handelt sich dabei um eine Vorlage für diverse Spediteure die ich mit relevanten Daten füttere. Dann nutze ich den ersten Button, der das Template unter neuem Namen (Verbindung aus Spediteurname und Datum) in einem separatem Unterordner abspeichert, als xlsm Datei.
Danach nutze ich Button 2, der im Outlook eine Mail öffnet, die gespeicherte Datei anhängt und einen Standardtext vorschreibt.
Wie gesagt funktioniert das soweit alles super. Leider haben wir nun einen Spediteur, der keine xlsm Dateien empfangen kann. Und damit fangen meine Probleme an.
Mir ist bewusst, dass ich die Datei durchaus mit Speichern unter als xlxs speichern kann. Allerdings bin ich ein Freund von Automatismen und ziele eine Lösung via VBA an.
wenn ich in meinem jetzigen Makro alles auf xlsx umschreibe, geht die komplette VBA-Programmierung im Hintergrund verloren und mein 2. Button für die Mail funktioniert nicht. Und jetzt brauche ich Eure Hilfe.
Ich möchte gerne, dass das Template
1. als xlsm File gespeichert wird
2. eine Kopie als xlsx Datei abgespeicehrt wird
3. der Mail button funktioniert und die xlsx Datei anhängt
Hier der aktuelle VBA-Code:
Private Sub CommandButton1_Click()
ActiveWorkbook.SaveAs Range("C8").Value, FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub
Private Sub CommandButton2_Click()
'Hier definiere ich eine Variable für den Anhang
Dim strAnhang As String
'In der Zelle C8 befindet sich der korrekte Pfad
strAnhang = Range("C8")
'DIESER TEIL ÖFFNET "OUTLOOK"
Set outObj = CreateObject("Outlook.Application")
Set Mail = outObj.CreateItem(0)
'FOLGENDE TEXTE WERDEN IN DIE E-MAIL GESCHRIEBEN
Mail.To = ""
'Betreff:
Mail.Subject = Range("C6").Value
'Mailtext
Mail.Body = "Hello all" & Chr(13) & _
"" & Chr(13) & _
"please find attached the parceladvise" & Chr(13) & _
"" & Chr(13) & _
"Best regards"
'hier soll der Anhantg hinzugefügt werden
Mail.Attachments.Add strAnhang
Mail.Display
Set Mail = Nothing
Set outObj = Nothing
End Sub