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.
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
Top
#3
Ja stimmt. Danke ;)

Löst aber leider noch nicht mein Hauptproblem mit dem fortlaufenden speichern. Ist das überhaupt möglich??
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)
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.
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
Top
#7
Danke hat geklappt :D
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
Top


Gehe zu:


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