Hi Leute,
bevor ich meine Sachlage schildere kurz der Hinweis: Ich = blutiger Anfänger in Sachen VBA!!! :)
Hier meine derzeitige Lage:
Ich habe mir aus dem Internet einen VBA-basierten Code geholt mit welchem man einen gewissen Zellbereich in denen mehrere E-Mail Adressen hinterlegt sind heranzieht und diese als Empfänger in die über einen/einer Button/Schaltfläche generierte Mail übernimmt. Die aktuelle Excel Mappe wird ebenfalls, nach Aufforderung diese vorher zu speichern, als Anhang hinzugefügt. Derzeit bestehen 3 solcher Buttons welche jeweils andere Empfänger haben.
Jetzt zu meiner 1. Frage:
Ist es möglich, einen Code einzubauen welcher den Benutzer dazu zwingt die E-Mail-Buttons in einer gewissen Reihenfolge zu betätigen, also: Button 3 kann erst genutzt werden wenn Button 2 + 1 genutzt wurden und Button 2 erst wenn Botton 1 genutzt wurde.
Frage 2:
Kann ich dem Benutzer iwie eine Rückmeldung geben (vielleicht durch farbliche Markierung des Buttons) wenn er den Button aktiviert und die Mail versendet hat?
Soviel von mir, ich danke euch vorab schon einmal für die evtl. Hilfe ;)
Gruß
Julian
PS: Hier mal kurz der Code:
Private Sub CommandButton1_Click()
Dim MyMessage As Object, MyOutApp As Object
Dim Qe As Integer
Dim AWS As String
'Testen ob die aktuelle Mappe schon gespeichert wurde
If ThisWorkbook.Saved = False Then
'Die letzten Änderungen wurden noch nicht gespeichert
Qe = MsgBox("Diese Mappe wurde noch nicht gespeichert, und kann nicht versandt werden!" _
& Chr$(13) & "Soll die Datei gespeichert werden?", vbInformation + vbYesNo, "Sendefehler")
If Qe = vbNo Then
'Abbruch durch Benutzer
MsgBox "Sendevorgang abgebrochen"
Exit Sub
Else
'Prüfen ob die Datei schon mal gespeichert wurde
If Right(ThisWorkbook.Name, 3) <> "xls" Then
'Nein > Speicherdialog aufrufen
Application.Dialogs(xlDialogSaveAs).Show
Else
'Speichern
ThisWorkbook.Save
End If
End If
End If
'Aktive Arbeitsmappe wird als mail gesendet
'Übergabe des Mappennames an die Variable
AWS = ThisWorkbook.FullName
'Outlook Object erstellen
Set MyOutApp = CreateObject("Outlook.Application")
'Outlook Nachricht erstellen
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
'Empfänger
.To = ""
'Betreff
.Subject = ""
.Attachments.Add AWS
'Hier wird ein normaler Text erstellt
.Body = ""
'Hier wird eine HTML Mail erstellt
'Dies kann zu Problemen führen, wenn der Empfänger
'nur TEXT Dateien empfangen darf.
'.HTMLBody = "Das ist ein Test." & vbCrLf & "Bitte ignorieren."
'Hier wird die Mail nochmals angezeigt
.Display
'Hier wird die Mail gleich in den Postausgang gelegt und gesendet
'.Send
End With
'Outlook schliessen
'Variablen leeren
Set MyOutApp = Nothing
Set MyMessage = Nothing
End Sub |