- This topic has 1 Antwort, 2 Stimmen, and was last updated 11:54 um 30. April 2004 by lastwebpage.
- AutorBeitrag
- 30. April 2004 um 10:56 #22080UnbekanntParticipant
Hallo,
Frage 1:
Wenn ich mein Formular mit folgendem Code ausstatte, dann funkt zwar Cc und Bcc , aber bei fehlenden Cc oder Bcc gibt eine Fehlermeldung:
Habe mir überlegt, ob man nicht irgendwie nach den drei übergebenen Parametern von der Sub EmailSenden fragen könnte, ob
entweder bei An oder Cc oder Bcc oder als Kombination Werte eingeben wurden? Enthält kein Feld einen Wert, dann könnte eine
MsgBox \“Bitte geben Sie bei An, Cc, oder Bcc eine gültige E-Mail-Adresse ein\“ ausgegeben werden und der Fall wäre für jeden
User klar. Über einen Tipp von dir, wie ich nach den übergebenen Parametern fragen könnte, würde ich mich freuen. Über andere
Tipps freue ich mich genauso. Meine Versuche (siehe Sub) klappen irgendwie nicht.Private Sub EmailSenden(sAn As String, Optional sCC As String, Optional sBCC As String, Optional sBetreff As String, Optional sNachricht As String, Optional sAktuelles As String, Optional sLogo As String, Optional sNews As String, Optional sDateiAnhang As String, Optional sPr As Long)
Dim sTempNachricht As String
Dim sTempAktuelles As String
Dim NachrichtOL As Object
Dim meinCC As Recipient
\’Dim meinBCC As Recipient
Set AppOL = GetObject(, \“Outlook.Application\“)
Set NameSpaceOL = AppOL.GetNamespace(\“MAPI\“)
If sAn <> \“\“ Or sCC <> \“\“ Or sBCC <> \“\“ Then
Set NachrichtOL = AppOL.CreateItem(olMailItem)
Set meinCC = NachrichtOL.Recipients.Add(sCC)
meinCC.Resolve
If Not meinCC.Resolved Then
MsgBox \“asdasdasa\“
End If
\’Set meinBCC = NachrichtOL.Recipients.Add(sBCC)
\’meinBCC.Type = 3
With NachrichtOL
.Recipients.Add sAn
.CC = sCC.BCC = sBCC
.Subject = sBetreff
\‘ .Class=
.Importance = sPrsTempNachricht = sNachricht
sTempNachricht = Replace$(sTempNachricht, vbCrLf, \“
\“)
sTempNachricht = Replace$(sTempNachricht, vbNewLine, \“
\“)
sTempNachricht = Replace$(sTempNachricht, \“ \“, \“ \“)sTempAktuelles = sAktuelles
sTempAktuelles = Replace$(sTempAktuelles, vbCrLf, \“
\“)
sTempAktuelles = Replace$(sTempAktuelles, vbNewLine, \“
\“)
sTempAktuelles = Replace$(sTempAktuelles, \“ \“, \“ \“).HTMLBody = \“
\“ & Chr(13) & _
\“\“ & _
\“\“ & _
\“\“ & _
\“\“ & sTempNachricht & \“\“ & _
\“\“ & sTempAktuelles & \“ \“ & Chr(13) & _
\“\“
If sDateiAnhang <> \“\“ Then
.Attachments.Add Source:=sDateiAnhang, Position:=Len(txtAnlage) + 20
End If
.Send
Else
MsgBox \“Bitte geben Sie im Feld An, Cc oder Bcc eine gültige E-Mail-Adresse ein\“
End IfEnd With
End SubFrage 2:
ich habe, um E-mails komfortabel aus dem Adressbuch zu holen, ein kleines Formular gebaut (ähnlich wie bei Outlook, wenn
man beim Erstellen einer neuen Mail z.B. auf die Schaltfläche An oder CC klickt). Klappt soweit ganz gut. Sobald ich jedoch eine
Verteilerliste dabei habe, gibt es eine Fehlermeldung (Laufzeitfehler 13) und Debugger markiert die Stelle Next bei folgender Sub:Private Sub cmbKontakteOrdner_Change()
Dim OrdnerOL As Outlook.MAPIFolder, KontaktOL As Outlook.ContactItem
Me.lstKontakte.Clear
If Me.cmbKontakteOrdner.ListIndex = 0 Then
Set OrdnerOL = NameSpaceOL.GetDefaultFolder(olFolderContacts)
Else
Set OrdnerOL = NameSpaceOL.GetDefaultFolder(olFolderContacts).Folders(Me.cmbKontakteOrdner.ListIndex)
End If
For Each KontaktOL In OrdnerOL.Items
Me.lstKontakte.AddItem KontaktOL.Email1Address
Next
End SubHätte jemand eine Idee, wie man das ändern könnte? Danke für Tipps im Voraus.
mfg
BenC30. April 2004 um 11:54 #72088lastwebpageModeratorHallo
zu Frage 2
Ich würde sagen die Zeile
For Each KontaktOL In OrdnerOL.Items ist falsch,
da KontaktOL bei einer Verteilerliste mehrere Elemente enthält.zu Frage 1:
Also ich weis es nicht 100% aber das Feld AN muss immer ausgefüllt werden,nicht ODER
mit BB,CC.
Du kannst auch nicht CC oder BB einfach so zu einer Adresse \“addieren\“
NachrichtOL.Recipients.Add(sCC)
siehe dir mal folgendes Codebeispiel an:Set myOlApp = CreateObject(\“Outlook.Application\“)
Set myItem = myOlApp.CreateItem(olMailItem)
Set myRecipient = myItem.Recipients.Add (\“Jon Grande\“)
myRecipient.Type = olCCalso erst Wert \“Addieren\“ dann den Typ setzen.
mfg
PeterP.S. Nach dem eine Nachricht in diesem Forum eingegeben wurde wird diese angezeigt
und kann editiert werden,damit sowas wie am Ende deiner nachricht nicht passiert. - AutorBeitrag
Das Thema ‘VBA für Outlook 2k: Fragen zu Codes’ ist für neue Antworten geschlossen.