PDf aus Hyperlink als Emailanhang automatisch mitsenden
#21
Guten Morgen Ihr Lieben,

@Egon12 leider verstehe ich Deine Erklärungen nicht ganz. ich bekomme auch keine Hochkommas wenn ich die Datei, wie du beschrieben hast einfüge. Ausserdem soll dies ja dynamisch passieren, sonst müsste ich dies ja nicht machen und könnte die Anhänge händisch anfügen. wahrscheinlich habe ich auch das falsch verstanden, das tut mir leid.... 


@schauan habe Deinen Vorschlag nochmals geprüft. so sieht mein Code nun aus und dieser funktioniert so auch. anstatt .send habe ich noch auf .display gesetzt.
Code:
Sub Zahlungserinnerung_senden()
Dim objOutlook As Object
Dim objMail As Object
Dim LinkPath As String
Dim HyperlinkCell As Range
   

LinkPath = Range("U12").Text
   
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
With objMail
  .To = Range("Empfänger_Zahlungserinnerung")
.Subject = Range("Betreff_Zahlungserinnerung")
  .Body = Range("Text_Zahlungserinnerung")
        .Attachments.Add LinkPath ' Datei aus Hyperlink
        .display
       
End With
End Sub


Nun fehlt nur noch die Schleife falls mehrere Rechnungen offen sind und alle angehängt werden müssen.
Die Links können von U12 bis U23 untereinander stehen.

Habe versucht die Schleife von egon 12 anzuhängen will aber nicht passen...

wie ergänze ich das in meinem aktuellen Code?

Ich wünsche Euch einen guten Start in den Tag.

Liebe Grüsse Mamamia
Antworten Top
#22
Moin,

also, die Schleife und den Text müsstest Du dann weiter unten platzieren und oben einen Schleifenzähler deklarieren. Die Variable für den Text brauchst Du dann nicht unbedingt.

Code:
'Variablendeklaration und Startwert setzen
Dim iCnt%: iCnt = 12

'...

       'Schleife ab U12, solange in U was steht
       do while cells(iCnt, 21).Text <> ""
          .Attachments.Add cells(iCnt, 21).Text ' Datei aus Hyperlink
          'Zeilenzaehler hochsetzen
          iCnt=iCnt+1
       'Ende Schleife ab U12, solange in U was steht
       Loop

'...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#23
Hallo Mamami,

also die doppelten Hochkommata werden bei gehaltener Shift Taste + Rechtsklick Maus --> Button "Als Pfad kopieren" anklicken --> Einfügen in die Zelle mitgegeben. In der Zelle sieht das dann beispielhalft so aus:

"C:\Users\uwele\Downloads\IMSLP920002-PMLP1445579-e-reiche-2-konzert_trombone.pdf"

Dann entfernst du die beiden " so:

C:\Users\uwele\Downloads\IMSLP920002-PMLP1445579-e-reiche-2-konzert_trombone.pdf

Da du schreibst, dass diese Pfade in U12 bis U... dynamisch erzeugt werden muss t du schon schreiben/zeigen wie die Daten in diesen Bereich kommen.

Des Weiteren stellt sich natürlich folgende Frage: Was steht noch alles unterhalb diese Bereiches U12 bis U... was keine Pfad ist.

Sollte da nichts weiter stehen würde ja so in deiner Demodatei klappen:
Code:
For i = 12 To Tabelle1.Cells(Rows.Count, 21).End(xlUp).Row
            .Attachments.Add Tabelle1.Range("U" & i).Value
        Next i
Kann es aber nicht, da ein Stückchen darunter es mit externen Links weiter geht. Dazu braucht es eine passende Fehlerbehandlung. Diese kann man dir aber erst zeigen, wenn du uns den vollständigen Inhalt im Spalte U zeigst. 
Es weiß momentan keiner was uns da noch erwartet zum Thema Fehlerbhandlung.

Hier ein letzter Versuch meinerseits ohne deine Rückmeldung dazu: 
Code:
Sub Zahlungserinnerung_senden()
    Dim objOutlook As Object
    Dim objMail As Object
    Dim LinkPath, i&
    Set objOutlook = CreateObject("Outlook.Application")
    Set objMail = objOutlook.CreateItem(0)
    With objMail
        .To = Range("Empfänger_Zahlungserinnerung")
        .Subject = Range("Betreff_Zahlungserinnerung")
        .Body = Range("Text_Zahlungserinnerung")
        For i = 12 To Tabelle1.Cells(Rows.Count, 21).End(xlUp).Row
            If InStr(1, Tabelle1.Range("U" & i).Value, ":\") > 0 Then .Attachments.Add Tabelle1.Range("U" & i).Value
        Next i
        .display
        '.send
    End With
End Sub
Diese Fehlerbehandlung übernimmt nur Zellinhalte, welche im String ":\" enthalten. Es kann natürlich sein, dass dies immer noch nicht ausreicht.
Für dem Fall startest du nicht einfach die Prozedur, sondern klickst in die Prozedur hinein und mit F8 Step by Step gehst du die Prozedur durch bis der Fehler auftaucht. Dann schaust du im Lokalfenster (falls es nicht geöffnet ist musst du es noch öffnen) nach welchem Wert die Variable i hat und schaust in die Zelle Spalte U Zeilennummer i nach was da nicht zusammenpasst. 

Gruß Uwe
Antworten Top
#24
Ihr Beiden,

Bin erst jetzt dazu gekommen alles zu testen.
Funktionieren Beide nun einwandfrei, und hängen die gwünschten Dokumente an.

Ihr könnt Euch gar nicht vorstellen wie dankbar ich euch bin da uns dies eniges vereinfacht.

Nun verstehe  ich die Formeln, respektive den Vorgang auch.

Ich danke Euch und wünsche einen erholsamen Abend.

Liebe Grüsse mamamia
Antworten Top


Gehe zu:


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