Supportnet Computer Supportnet Games Supportnet Kochen Explipedia
Login: guestBesucher online: 121
Supportnet Computerforum
SUPPORT
Home
Forum
Tipps & Infos
Blitz Angebote
Members
Hilfe
Video

TOP THEMEN
SSD Test
Alles über SSDs

Android Tipps
iPad Tipps
Google Tipps
Windows 8 FAQ
Windows 7 FAQ
E-Mail FAQ
Netzwerk FAQ
Festplatten FAQ
Datenrettung FAQ
Bildbearbeitung FAQ

Top iPhone Apps
Computer Einsteiger
Die 5 besten...
Explipedia
Themen
Direktlinks

Neue Einträge
News einsenden News einschicken
Tipps einsenden Tipp einschicken

SN-LINKS

Suche
Befreundete Seiten
Top Seiten

Supportnet/Forum/Tabellenkalkulation



Supportnet/Forum/Tabellenkalkulation
von Czerno vom 15.05.2017, 13:13 Diese Seite den Supportnet Favoriten hinzufügen  Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden


VBA Tabelle per PDF per Email versenden

 (197 Hits)

Hallo zusammen ich habe folgende Programmierung eines Makros
gemacht. Ziel ist es die Tabellenblätter Montag - Freitag im PDF
Format per EMail versenden soll und die erzeugte PDF-Datei aber
gelöscht werden soll. Ich finde den Fehler allerdings leider nicht.

Könnt Ihr mir helfen?

Vielen Dank im Vorfeld.



Sub SendeMail()

Dim arrBlätter() As String
 Dim sPdfDateiF5 As String
 Dim OutApp As Object
 Dim OutMail As Object

 If MsgBox("Möchten Sie die Anforderung abschicken?", 4, "Frage") = 
vbYes Then
   
   ' speichern unter als PDF:
   sPdfDateiF5 = "C:\KFZ-Anforderung.PDF"
  
   ' speichert das aktuelle Blatt (=ActiveSheet) als PDF
   
    ReDim arrBlätter(1 To 5)
    arrBlätter(1) = "Montag"
    arrBlätter(2) = "Dienstag"
    arrBlätter(3) = "Mittwoch"
    arrBlätter(4) = "Donnerstag"
    arrBlätter(5) = "Freitag"
    
    'Falls eine Vergrößerung zB. auf 5 Elemente notwendig ist,
    'ohne dabei die bisherigen Elementinhalte zu verlieren:
    ReDim Preserve arrBlätter(1 To 5)
    
    arrBlätter(5) = "Freitag"
    
    Sheets(arrBlätter).Select
    Sheets(arrBlätter(1)).Activate
    ActiveSheet.ExportAsFixedFormat _
     Type:=xlTypePDF, _
     Filename:=sPdfDateiF5, _
     Quality:=xlQualityStandard, _
     IncludeDocProperties:=True, _
     IgnorePrintAreas:=False, _
     OpenAfterPublish:=False
     
   ' Outlook starten
   
Set appOutlook = CreateObject("Outlook.Application")

' neue Email erstellen

Set MailItem = appOutlook.CreateItem(olMailITem)

    
   ' Werte den Eigenschaften zuweisen...
   OutMail.To = "name@provider.de" 'richtige Email-Adresse angeben
   OutMail.CC = ""
   OutMail.BCC = ""
   OutMail.Subject = "KFZ-Anforderung"
   OutMail.Body = ""

   ' Anhang hinzufügen:
   OutMail.Attachments.Add sPdfDateiF5

   ' ...und abschicken
   OutMail.Send

   ' Objekte sauber auflösen
   Set OutMail = Nothing
   Set OutApp = Nothing
End If
End Sub





Antwort schreiben 50 Bonuspunkte

Antworten...
Antwort 1 von M.O. vom 15.05.2017, 15:00 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo,

probier es mal so:
Sub SendeMail()

 Dim sPdfDateiF5 As String
 Dim OutMail As Object
 Dim arrBlätter
 Dim Antwort
 
 Antwort = MsgBox("Möchten Sie die Anforderung abschicken?", 4, "Frage")
 
 If Antwort = vbYes Then
   
   ' speichern unter als PDF:
   sPdfDateiF5 = "C:\KFZ-Anforderung.PDF"
  
   ' speichert Blätter Montag bis Freitag als eine PDF
   
    arrBlätter = Array("Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag")
        
    Worksheets(arrBlätter).Select
    Worksheets(arrBlätter(0)).ExportAsFixedFormat _
     Type:=xlTypePDF, _
     Filename:=sPdfDateiF5, _
     Quality:=xlQualityStandard, _
     IncludeDocProperties:=True, _
     IgnorePrintAreas:=False, _
     OpenAfterPublish:=False

     
   ' Outlook starten
    Set OutMail = CreateObject("Outlook.Application")

   ' neue Email erstellen
    With OutMail.CreateItem(0)
     ' Werte den Eigenschaften zuweisen...
       .To = "name@provider.de" 'richtige Email-Adresse angeben
       .CC = ""
       .BCC = ""
       .Subject = "KFZ-Anforderung"
       .Body = ""

       ' Anhang hinzufügen:
       .Attachments.Add sPdfDateiF5
         ' ...und abschicken
       .Send
    End With

   ' Objekte sauber auflösen
   Set OutMail = Nothing
  
   'PDF-Datei wieder löschen
  Kill sPdfDateiF5
  
End If

End Sub


Gruß

M.O.


Antwort noch nicht bewertet Als gute Antwort bewerten
Diese Antwort hat mein Problem gelöst
Antwort 2 von M.O. vom 15.05.2017, 15:06 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo,

noch ein Nachtrag: Damit das Erstellen und Versenden der E-Mail klappt, muss im VBA-Editor unter Extras - Verweise bei Microsoft Outlook XX.0 Object Library ein Haken gesetzt werden (XX steht hier für die Zahl der Office Version).

Gruß

M.O.


Antwort noch nicht bewertet Als gute Antwort bewerten
Diese Antwort hat mein Problem gelöst
Antwort 3 von czerno vom 16.05.2017, 09:16 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo M.O.,

vielen lieben Dank für deinen Beitrag.

Ich habe alles ausprobiert. Den entsprechenden Haken gesetzt nun kommt eine
Fehlermeldung 400.

Leider verzweifel ich gerade daran woran es liegen kann. Ich habe deinen Code
exakt kopiert und irgenwie geht es trotzdem nicht.

Habt Ihr eine Idee?

Grüße und Danke
Czerno


Antwort noch nicht bewertet
Antwort 4 von M.O. vom 16.05.2017, 10:10 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo Czerno,

in welcher Zeile wird denn der Fehler angezeigt?
Hast du den Code auch in ein Standard-Modul deiner Arbeitsmappe kopiert?

Gruß

M.O.


Antwort noch nicht bewertet Als gute Antwort bewerten
Diese Antwort hat mein Problem gelöst
Antwort 5 von czerno vom 16.05.2017, 10:31 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Zitat:


Hallo Czerno,

in welcher Zeile wird denn der Fehler angezeigt?
Hast du den Code auch in ein Standard-Modul deiner Arbeitsmappe kopiert?

Gruß

M.O.


Hallo M.O.,

mist das war ein Fehler. Ich habe es nicht als Modul sondern in der Arbeitsmappe programmiert. Dann kann es ja nicht funktionieren.

Nun habe ich eine neue Fehlermeldung:

Laufzeitfehler '1004':

Das Dokument wurde nicht gespeichert. Das Dokument ist möglicherweise geöffnet, oder beim Speichern ist ein Fehler aufgetreten.


Klicke ich auf Debuggen wird folgender Code gelb markiert:


    Worksheets(arrBlätter(0)).ExportAsFixedFormat _
     Type:=xlTypePDF, _
     Filename:=sPdfDateiF5, _
     Quality:=xlQualityStandard, _
     IncludeDocProperties:=True, _
     IgnorePrintAreas:=False, _
     OpenAfterPublish:=False


Vielen Dank für deine Antwort im Vorfeld.

Grüße
Czerno


Antwort noch nicht bewertet
Antwort 6 von M.O. vom 16.05.2017, 11:01 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo Czerno,

du hast als Verzeichnis zum Speichern den Pfad C:\ eingegeben. Versuche mal eine Datei auf C zu speichern. Wahrscheinlich kommt die Fehlermeldung, dass du keine Berechtigung zum Speichern auf C hast.

Lege also ein Verzeichnis auf C an, z.B. PDF, ändere die Pfadangabe im Makro entsprechend ( sPdfDateiF5 = "C:\PDF\KFZ-Anforderung.PDF") und versuche es noch einmal.

Gruß

M.O.


Antwort noch nicht bewertet Als gute Antwort bewerten
Diese Antwort hat mein Problem gelöst




Antwort schreiben
    Bitte einen 'Nickname' wählen.
Nickname:*
    (eMail-Adresse wird nicht veröffentlicht.)
eMail:
Nachricht: Ich möchte bei Antworten benachrichtigt werden.
    Hilfe zur Beitragsformatierung gibts [hier]
                   
Antwort:*
  Die Nutzungsbedingungen habe ich gelesen und akzeptiert.

MACHEN SIE IHRE WEBSITE ATTRAKTIVER
Sie haben eine eigene Website und wollen Ihre Besucher auf den Supportnet-Service aufmerksam machen? Kopieren Sie einfach den Quellcode in Ihre Seite und jeder Besucher Ihrer Seite kann direkt auf die Supportnet-Datenbank zugreifen.

My Supportnet


SUCHE

Gruppen im Forum
Betriebsysteme
Software
Hardware
Netzwerk
Programmierung
Sonstiges

Impressum © 1997-2015 SupportNet
Version: supportware 1.8.230E / 18.10.2010, Startzeit:Mon Jun 26 21:36:45 2017