Excel Steuerelemente nach unten kopieren und mit Mailfunktion belegen

SilvioS

Cadet 1st Year
Registriert
Mai 2024
Beiträge
12
Hallo zusammen,

Ich habe eine Tabelle in der ich Stammdaten verwalte und über die ich auch Kautionen verwalte. Ich habe folgende Spalten, die für mein Vorhaben relevant sind:

D: Name
E: Vorname
AH: Kaution
AB: Kontoinhaber
AC: IBAN
AD Mandatsreferenz


AI: hier ist ein Steuerelement zum anklicken eingefügt.

Die Tabelle ist auch als Tabelle formatiert, so dass Formeln beim hinzufügen neuer Zeilen autom. erscheinen. Dann soll beim Anklicken des Elements eine Mail versendet werden in der Mail soll folgendes drin stehen: Bitte ziehe die Kaution in Höhe von (Kautionshöhe aus AH) für Vorname und Nachname (aus E und D) ein. Bankverbindung Kontoinhaber (AB), IBAN (AC) Mandatesreferenz (AD)

Ich habe dazu folgenden Code generiert: siehe Anlage.

Aber das Steuerelement wird nicht nach unten kopiert und die Mailfunktion funktioniert leider auch nicht.

Ist hier ein Experte der mir weiterhelfen kann? Ich bin leider kein Experte in dem Gebiet.

Anbei auch die Grundtabelle - bitte nicht wundern als Excel mit Makros konnte ich die Datei hier nicht hochladen
 

Anhänge

Du brauchst nur ein Makro, was die aktive Zeile nutzt!
Und das per Shortcut oder ähnliches auslösen!
Dazu noch das Outlook Plugin in der XLSM aktivieren.

Und anstatt ein Element nehmen, per Makro dann "Gesendet" einschreiben... wäre das eine Idee?
 
also wie die Lösung aussieht ist eingentlich egal. Mein Gedanke war halt der der User der die Eintragungen macht anklicken muss ob die Kaution eingezogen werden soll oder nicht. Und bei entsprechender Auswahl sollte halt autom. eine Mail generiert werden.
 
ob die Kaution eingezogen werden soll
Also eher Entscheiden ob eine Mail gesendet wird?

Mail senden und den Versand Dokumentieren?
Ergänzung ()

Und die Empfänger Email fehlt ja auch. Woe steht die=
Ergänzung ()

Sub SendEmail()
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim ws As Worksheet
Dim selectedRow As Long
Dim emailBody As String

Set ws = ThisWorkbook.Sheets("Dein Tabellenblatt Name") ' Ersetze mit dem Namen deines Tabellenblatts
selectedRow = ActiveCell.Row

' Überprüfe, ob die aktive Zeile gültig ist
If selectedRow < 2 Then
MsgBox "Bitte wähle eine gültige Zeile aus.", vbExclamation
Exit Sub
End If

Set OutlookApp = CreateObject("Outlook.Application")

emailBody = "Bitte ziehe die Kaution in Höhe von " & ws.Cells(selectedRow, "AH").Value & "€ für " & ws.Cells(selectedRow, "E").Value & " " & ws.Cells(selectedRow, "D").Value & " ein. " & vbCrLf & _
"Bankverbindung: Kontoinhaber " & ws.Cells(selectedRow, "AB").Value & ", IBAN " & ws.Cells(selectedRow, "AC").Value & ", Mandatsreferenz " & ws.Cells(selectedRow, "AD").Value & "."

Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.To = "Empfänger@beispiel.de" ' Ersetze mit der Empfängeradresse
.Subject = "Kautionseinzug"
.Body = emailBody
.Send
End With

' Bestätigung in die Zelle AI schreiben
ws.Cells(selectedRow, "AI").Value = "Email gesendet " & Format(Date, "dd.mm.yyyy")

Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
 
Zuletzt bearbeitet:
Ja genau die Entscheidung ob eine Mail versendet wird, trifft der den den Datensatz eingibt, daher hätte ich das mit so einem Haken lösen wollen

Also der Versand muss nicht dokumentiert werden. Der Empfänger steht im Code

.To = "Empfänger@beispiel.de" ' Ersetze mit der Empfängeradresse
 
nein im idealfall soll das durch anklicken autom. erstellt werden

manuell haben wir es jetzt und da wird es oft vergessen
 
So ich bins nochmal, da ich noch nicht weiter bin. Anbei mal eine Musterdatei, in der ich ein Formularsteuerelement eingefügt habe. Wie kann ich nun gewährleisten, dass dieses Element in jeder neuen Zeile erscheint. Fügt man unten einen Namen an, bleibt D3 leer
 

Anhänge

ja das weis ich, aber ich bekomme es nicht zum Laufen
 
Wieso kein "X" rein schreiben per DropDown?
Und du musst es als XLSM speichern, da sonst alle VBA Daten gelöscht werden!
Somit ist kein VBA Code enthalten.
 
ja auch als XLM gespeicherte Datei funktioniert es nicht.
 
Zurück
Oben