VBA für Outlook 2k: Fragen zu Codes

Home-›Foren-›Outlook-›VBA für Outlook 2k: Fragen zu Codes

2 Antworten anzeigen - 1 bis 2 (von insgesamt 2)
  • Autor
    Beitrag
  • #22080
    Unbekannt
    Participant

      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 = sPr

      sTempNachricht = 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) & _
      \“

      \“ & _
      \“

      \“ & _
      \“

      \“ & _
      \“

      \“ & Chr(13) & _
      \“

      \“ & _
      \“\“ & sTempNachricht & \“
      \“ & sTempAktuelles & \“

      \“
      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 If

      End With
      End Sub

      Frage 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 Sub

      Hätte jemand eine Idee, wie man das ändern könnte? Danke für Tipps im Voraus.

      mfg
      BenC

      #72088
      lastwebpage
      Moderator

        Hallo
        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 = olCC

        also erst Wert \“Addieren\“ dann den Typ setzen.

        mfg
        Peter

        P.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.

      2 Antworten anzeigen - 1 bis 2 (von insgesamt 2)

      Das Thema ‘VBA für Outlook 2k: Fragen zu Codes’ ist für neue Antworten geschlossen.

      Hat Ihnen der Beitrag gefallen?

      1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Keine Bewertung vorhanden)
      Loading...