MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 16.05.2018, 14:11   #1
M0nkey_83
Neuer Benutzer
Neuer Benutzer
Standard VBA - E-Mail mit personen bezogenen Daten aus Excel versenden

Hallo Leute

Ich habe ein kleines Anliegen.

Ich erhalte wöchentlich die Verkaufszahlen meiner Aussendienstmitarbeiter auf Excel-Basis.
Ich filtere jeweils die Verkäufe aus den Rohdaten, speichere diese als PDF ab und sende es jedem einzelnen Mitarbeiter per E-Mail zu.

Mein Wunsch wäre es, dass dies per Knopfdruck pro Mitarbeiter ein Mail erstellt wird inkl. den gewünschten Daten (Verkäufe des Mitarbeiters in der letzten Woche) als Anhang (Excel oder PDF).

Siehe dazu die Testdatei (Spalte A = Mitarbeiter; Spalte B = Verkaufsdatum)

Ich bin blutiger Anfänger und habe etwas mit VBA versucht zu machen. Es funktioniert aber nur bedingt, da es aktuell nur für einen Mitarbeiter funktioniert und die Werte variabel sein müssen.

Code ist in der Testdatei enthalten.

Ich hoffe, dass Ihr mir behilflich sein könnt.

Besten Dank im Voraus!

LG, M0nkey_83
Angehängte Dateien
Dateityp: xlsm testdatei.xlsm (17,4 KB, 5x aufgerufen)

Geändert von M0nkey_83 (16.05.2018 um 15:28 Uhr).
M0nkey_83 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2018, 15:45   #2
Beverly
MOF Guru
MOF Guru
Standard

Hi,

du müsstest das in einer Schleife für jeden Mitarbeiter machen. Lies dazu erst alle Mitarbeiter ohne Duplikate in ein Dictionary ein, übergib das Ergebnis an ein Array und benutze dann dieses, um wiederum in einer Schleife die Daten zu filtern und die Mails zu versenden (ungetestet):

Code:

Sub MailSenden()
    Dim objDict As Object
    Dim Bereich As Variant
    Dim lngZaehler As Long
    Dim arrDaten() As Variant
    Dim Outlook As Object
    Dim OutlookMailItem As Object
    Dim myAttachments As Object
    Set objDict = CreateObject("Scripting.Dictionary")
    With Worksheets("Tabelle1")
        Bereich = .Range("A2", .Range("A2").End(xlDown))
    End With
    ' Schleife über alle Werte
    For lngZaehler = LBound(Bereich) To UBound(Bereich)
        ' Eintrag wird nur übernommen wenn er im DictionaryObject noch nicht enthalten ist
        objDict(Bereich(lngZaehler, 1)) = 0
    Next
    ' Werte in ein Array übergeben
    arrDaten = objDict.keys
    For lngZaehler = 0 To UBound(arrDaten())
        'Filter für Mitarbeiter
        ActiveSheet.Range("$A$1:$B$41").AutoFilter Field:=1, Criteria1:=arrDaten(lngZaehler)
        ActiveSheet.Range("$A$1:$B$41").AutoFilter Field:=2, Criteria1:= _
            xlFilterLastWeek, Operator:=xlFilterDynamic
        'Speichert eine PDF Datei auf dem Desktop
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
           "C:Users...Desktopsales_report_last_week.pdf", Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
            False
            
        'Öffnet Outlook und erzeugt ein E-Mail inkl. Anhang
        Set OutlookApp = CreateObject("outlook.application")
        Set OutlookMailItem = OutlookApp.CreateItem(0)
        Set myAttachments = OutlookMailItem.Attachments
        With OutlookMailItem
            .To = "test@test.de"
            .Subject = "sales report"
            .Body = "Im Anhang die Verkaufszahlen der letzten Woche."
            myAttachments.Add "C:Users...Desktopsales_report_last_week.pdf"
            .Display
        End With
        
        Set OutlookMailItem = Nothing
        Set OutlookApp = Nothing
    Next lngZaehler
    Set objDict = Nothing
End Sub

GrußformelBeverly's Excel - Inn

__________________

Bitte im Beitrag eine kurze Rückmeldung auch in dem Fall geben, wenn ein Problem gelöst wurde - dies hilft auch anderen Usern, wenn sie den betreffenden Thread lesen.
Möchtest du dich außerdem für die Hilfe bei der Lösung deines Problems bedanken? Das kannst du ganz einfach durch die Bewertung eines Beitrags (Schalter unten links).
Beverly ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2018, 16:13   #3
M0nkey_83
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hi Beverly

Herzlichen Dank.

Ich werde dies versuchen umzusetzen . Es scheint eine gute Herausforderung zu sein.

Nur noch ein paar ergänzende Fragen:
a) Ist mit Dictionary eine Art Hilfstabelle gemeint?
b) Endet in deinem Code die Schleife? Nicht das ich den Mailserver in unserem Betrieb in die Knie zwinge .

LG, M0nkey_83
M0nkey_83 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2018, 16:16   #4
M0nkey_83
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Beverly, ich glaube habe den Code jetzt verstanden. Versuche es mal
M0nkey_83 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:47 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.