E-Mail-Versand aus Excel mit Userform

11/09/2007 - 20:47 von Markus Franz | Report spam
Hallo,



in meiner Excel-Tabelle möchte ich gern die Funktion einbauen, dass ich
mittels Makro die weiteren Bearbeiter mittels Mail informieren kann, dass
neue Eintragungen in der Tabelle vorgenommen wurden.



Die Bearbeiternamen stehen auf dem Tabellenblatt Bearbeiter von C3 bis C50
und die passenden Mailadressen von D3 bis D50.



Da nicht immer alle Bearbeiter informiert werden müssen, wollte ich ein
Userform dafür nutzen, welches automatisch Kontrollkàstchen mit den ganzen
Bearbeiternamen von C3 bis C50 anzeigt, sofern CXX nicht leer ist. (Geht so
was überhaupt?; Wàre ja ein „dynamisches Userform“; also wenn nur C3 bis C10
mit Bearbeitern gefüllt ist, brauche ich die restlichen Kontrollkàstchen ja
nicht).

Darunter will ich ein Textfeld anlegen, wo der E-Mail-Text eingetragen wird.
Wenn ich dann von den Bearbeitern mittels Hàkchen 5 Leute auswàhle, sollen
genau die unter Spalte DXX für den Bearbeiter hinterlegten Mail-Adresse dann
in An: bei der Mail eingetragen werden.



Wie löst man am besten dieses Problem?



Eine einfache Lösung habe ich schon (, macht aber noch nicht ganz, was ich
will):



Aus einem àhnlichen Projekt habe ich dazu folgenden Code entnommen und
versucht anzupassen:



Sub Send_Excel_Workbook()

Dim Nachricht As Object, OutApp As Object

Set OutApp = CreateObject("Outlook.Application")

Dim AWS As String

'Aktive Arbeitsmappe wird als mail gesendet

AWS = ThisWorkbook.FullName

InitializeOutlook = True

Set Nachricht = OutApp.CreateItem(0)

With Nachricht

.To = Worksheets("Bearbeiter").Range("D3")

.Subject = "Neue Informationen“

'.attachments.Add AWS

.Body = "Sehr geehrter Empfànger," & vbCrLf & "blabla. "

'Hier wird die Mail nochmals angezeigt

.Display

'Hier wird die Mail gleich in den Postausgang gelegt

.Send

End With

'OutApp.Quit

Set OutApp = Nothing

Set Nachricht = Nothing

MsgBox ("Information wurde übermittelt.")

End Sub



Der Code funktioniert, aber leider eben nur mit der einen hinterlegten
Adresse aus Bearbeiter!D3. Ich würde aber gern alle Adressen von D3 bis D49
in der Mail bei „An:“ stehen haben. Wie macht man dies?

Die einfache Variante hat den Nachteil, dass man dann manuell die
Mail-Adressen rauslöschen muss, die man nicht möchte.





Vielen Dank für etwaige Lösungen.

Gruß

Markus
______________________________
Windows XP (SP2),
Office 2000

Antworten bitte ausschließlich in der Newsgroup!
 

Lesen sie die antworten

#1 Ewald
13/09/2007 - 08:34 | Warnen spam
Hallo Markus,
durchlaufe den Bereich D3:D49 in einer Schleife.
Etwa so:
With Nachricht
For I = 3 To 49
If IsEmpty(Worksheets("Tabelle1").Cells(I, 4)) Then
Exit For
End If
If I = 3 Then
.to = Worksheets("Tabelle1").Cells(I, 4)
Else
.to = .to & "; " & Worksheets("Tabelle1").Cells(I, 4)
End If
Next I
.Subject = "Neue Informationen"
.attachments.Add AWS
.Body = "Sehr geehrter Empfànger," & vbCrLf & "blabla. "
'Hier wird die Mail nochmals angezeigt
.Display
'Hier wird die Mail gleich in den Postausgang gelegt
.send
End With

Gruß
Ewald

Ähnliche fragen