Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Problem mit Makro
#1
Hallo habe folgendes Makro erstellt,

Code:
Sub SaveandMail()
 
  ChDir "K:\14_Holger\Angebotserstellung"
  ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
      "K:\14_Holger\Angebotserstellung\Angebote\Angebot_001.pdf", OpenAfterPublish:=True
 
  Dim Outlook As Object
  Dim OutlookMailItem As Object
  Dim myAttachments As Object
 
  Set OutlookApp = CreateObject("outlook.application")
  Set OutlookMailItem = OutlookApp.CreateItem(0)
  Set myAttachments = OutlookMailItem.Attachments
 
  With OutlookMailItem
     .to = Range("J1")
     .Subject = Range("B7")
     .Body = "Anbei ist das Angebot."
     myAttachments.Add "K:\14_Holger\Angebotserstellung\Angebot\Angebot_001.pdf"
     '.send
     .Display
     
  End With
 
  Set OutlookApp = Nothing
  Set OutlookMailItem = Nothing
 
End Sub

Ist es möglich das Makro so zu erstellen, dass sich jedes mal wenn ich mein Angebotsblatt abspeichre auch der Name der PDF-Datei automatisch aktualisiert? Sprich --> Angebot_001; Angebot_002; Angebot_003; usw.
Antworten Top
#2
Bitte verwende Code Tags !!
Diese Code reicht:


Code:
Sub M_snb()
    ActiveSheet.ExportAsFixedFormat 0,"K:\14_Holger\Angebotserstellung\Angebote\Angebot_001.pdf"


    with  CreateObject("outlook.application").CreateItem(0)
       .to = activesheet.Range("J1")
       .Subject =activesheet.Range("B7")
      .Body = "Anbei ist das Angebot."
       .Attachments.Add "K:\14_Holger\Angebotserstellung\Angebote\Angebot_001.pdf"
       .send
    End With
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#3
Ja stimmt. Danke ;)

Löst aber leider noch nicht mein Hauptproblem mit dem fortlaufenden speichern. Ist das überhaupt möglich??
Antworten Top
#4
Moin!
Irgendwo musst Du ja schließlich einen Counter haben.
Man könnte dies mittels .INI-Datei oder einen Registry-Schlüssel realisieren.
Da es Dir wohl eher nicht um "Sicherheit" geht, würde ich diesen Counter einfach in einer x-beliebigen Zelle fortschreiben.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#5
Es geht einfach darum. Es speichert mir ja jetzt immer mein aktuelles Angebotsblatt ab.
Angebot_2017001

Nun erstelle ich ja ca. 200-500 Angebote und möchte, dass ich einfach mein Makro ausführen kann und es das erste so Angebot_2017001 abspeichert und wenn ich das nächste erstelle, es erkennt dass in diesem Ordner bereits ein Angebot_2017001 besteht und das nächste dann mit Angebot_2017_002 abspeichert.

Kann ich den Dateinamen den er verwenden soll, einfach mit einer Zelle verknüpfen.
Antworten Top
#6
Hi,

was Ralf meint ist folgendes:

Du schreibst in J3 Deiner Tabelle: 2017001
Code:
Option Explicit

Sub SaveandMail()
  
   ChDir "K:\14_Holger\Angebotserstellung"
   ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
       "K:\14_Holger\Angebotserstellung\Angebote\Angebot_" & Range("J3").Value & ".pdf", OpenAfterPublish:=True
  
   Dim Outlook As Object
   Dim OutlookMailItem As Object
   Dim myAttachments As Object
  
   Set OutlookApp = CreateObject("outlook.application")
   Set OutlookMailItem = OutlookApp.CreateItem(0)
   Set myAttachments = OutlookMailItem.Attachments
  
   With OutlookMailItem
      .to = Range("J1")
      .Subject = Range("B7")
      .Body = "Anbei ist das Angebot."
      myAttachments.Add "K:\14_Holger\Angebotserstellung\Angebot\Angebot_" & Range("J3").Value & ".pdf"
      '.send
      .Display
      
   End With
  
   Range("J3") = Range("J3") + 1
  
   Set OutlookApp = Nothing
   Set OutlookMailItem = Nothing
  
End Sub

Vielleicht geht es so?
[-] Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:
  • holger123
Antworten Top
#7
Danke hat geklappt :D
Antworten Top
#8
warum so aufwändig ?

Code:
Sub M_snb()
    c00="K:\14_Holger\Angebotserstellung\Angebote\Angebot_" & format(Now,"yyyymmddhh") & ".pdf"
    ActiveSheet.ExportAsFixedFormat 0,c00

    with  CreateObject("outlook.application").CreateItem(0)
       .to = activesheet.Range("J1")
       .Subject =activesheet.Range("B7")
      .Body = "Anbei ist das Angebot."
       .Attachments.Add c00
       .send
    End With
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste