Excel - Werte aus Zeile des Button, per Email senden

  • Excel

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Diecke.

    Excel - Werte aus Zeile des Button, per Email senden

    Hallo Leute,

    ich möchte in Excel pro Zeile einen Command Button einfügen, der aus der jeweiligen Zeile (und immer den gleichen Spalten), Werte per Email versendet.
    Folgenden Code habe ich bereits testweise erstellt. Leider ist dieser nicht mit relativem Bezug, und ich möchte nicht dauernd das Makro anpassen. Es sind ca. 800 Zeilen!


    Visual Basic-Quellcode

    1. Private Sub CommandButton1_Click()
    2. Sub MailSenden()
    3. On Error Resume Next
    4. Dim olApp As Object
    5. Set olApp = CreateObject("Outlook.Application")
    6. With olApp.CreateItem(0)
    7. strhtml = Range("B1").Value & " <br>"
    8. strhtml = strhtml & ActiveCell.Offset(-4, -10).Range("A2").Activate & " <br>"
    9. strhtml = strhtml & Range("E1").Value & " <br>"
    10. strhtml = strhtml & Range("F1").Value & " <br>"
    11. strhtml = strhtml & Range("G1").Value & " <br>"
    12. strhtml = strhtml & Range("H1").Value & " <br>"
    13. strhtml = strhtml & Range("I1").Value & " <br>"
    14. strhtml = strhtml & Range("J1").Value & " <br>"
    15. strhtml = strhtml & Range("K1").Value & "<br><br>"
    16. strhtml = strhtml & "Mit freundlichen Grüßen,<br>"
    17. strhtml = strhtml & "Die Objektabteilung"
    18. .to = "Test@test.de" 'Empfänger
    19. ' .cc = "kopie@an.de" 'Optional Kopie an
    20. ' .bcc = "bliendkopie@an.de" 'Optional Bliendkopie
    21. .Subject = "Ausschreibung_" & ThisWorkbook.Worksheets("Tabelle1").Range("B1")
    22. .htmlbody = strhtml
    23. .Display 'Zeigt die Mail an
    24. ' .send 'Optional Mail sofort senden.
    25. End With
    26. Set olApp = Nothing
    27. End Sub


    Ich hoffe meine Beschreibung ist verständlich.

    Beste Grüße Christian

    *Topic verschoben, Code eingefärbt*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Und Deine Frage ist welche? Wie man mit einfachen Mitteln jetzt 800 Buttons mit passend hinterlegtem Makro-Code erzeugt? Warum nicht den Button auf eine Userform ziehen und dann eine eMail aus dem erstellen, was die ausgewählte Tabellenzeile hergibt? Führt zu einem Button mit 1x Code, der aber sich aus dem ergibt, was man auswählt.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Ich würde noch nicht mal eine Userform nehmen, sondern den einen Button in die Headerzeile nehmen und diesen Bereich einfrieren.
    Wenn du mehrere Zellen auswählst, kannst du auch über eine bestimmte Spalte der ausgewählten Zeilen loopen.

    Visual Basic-Quellcode

    1. For Each Cell In Intersect(Selection.EntireRow,Range("A:A"))
    2. Html = Cell.Value & "<br>" & Cell.Offset(0,1).Value & "<br>"
    3. ' ...
    4. Next

    Ich habe mir für einen ähnlichen Fall mal einen Right-Klick-Handler geschrieben.
    Das ist sehr bedienerfreundlich aber ein wenig kompliziert zum Programmieren.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Hallo!

    1. Oder mit ActiveCell.Row arbeiten. Range("K" & ActivellCell.Row).Value
    2. Ich rate davon ab für jede Zeile eine eigene Schaltfläche zu erstellen. Denn bei 800 Zeilen ist die Datei schnell nicht mehr lauffähig. Ich hatte vor ein paar Jahren für einen Anwender eine Datei reparieren müssen/dürfen bei der der Anwender auch zuviele Schaltflächen in der Datei hatte, weshalb die Datei auch nicht mehr lief. Der hatte sogar ein paar tausend Schalflächen und mindestestens nochmal soviele Makros. Nach meiner Bearbeitung sind noch 8 Makros übrig geblieben (vieles nurnoch per Doppelklick-Ereignis).

    Gruß, René

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „mumpel“ ()