VBA Outlook 2000: Noch Fragen zum Cc, Bcc und Verteilerlisten

Home-›Foren-›Outlook-›VBA Outlook 2000: Noch Fragen zum Cc, Bcc und Verteilerlisten

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

      Hallo,

      obwohl ich schon vor längerer Zeit diese Frage gestellt habe, aber die Antworten nicht so recht verstanden habe (bin noch VBA-Anfänger), wollte ich
      mal fragen, ob mir jemand mal helfen kann.

      Ich habe ein OL-Formular gebaut und habe noch 3 Fragen zu den Themen Cc, Bcc und Verteilerlisten.

      Der Versand von E-Mails im An, Cc und Bcc-Feld klappt gut. Wenn ich allerdings An ausfülle, aber Cc und/oder Bcc weglasse,
      wird keine Mail versandt. Wenn ich keines der 3 Felder ausfülle, dann wird trotzdem versandt.

      Kann mir jemand einen Tipp geben, wie ich meinen Code in cmdSenden_Click verändern könnte, damit
      1) MsgBox \“Sie müssen in die Felder \’An\‘, \’Cc\‘ oder \’Bcc\‘ mindestens eine gültige E-Mail-Adresse eingeben\“, vbExclamation
      erscheint, wenn eines der Felder nicht ausgefüllt ist (mit If… Or… klappt es irgendwie nicht) und
      2) damit auch dann Mails versandt werden, wenn nur eines oder zwei Felder mit einer E-Mail-Adresse versehen sind.

      Private Sub cmdSenden_Click()

      Dim iAN As Integer, iCC As Integer, iBCC As Integer
      For iAN = 0 To cmbAN.ListCount – 1
      For iCC = 0 To cmbCC.ListCount – 1
      For iBCC = 0 To cmbBCC.ListCount – 1
      If Trim(cmbAN.Value) <> \“\“ Or Trim(cmbCC.Value) <> \“\“ Or Trim(cmbBCC.Value) <> \“\“ Then
      EmailSenden Me.cmbAN.List(iAN), Me.cmbCC.List(iCC), Me.cmbBCC.List(iBCC), Me.txtBetreff, Me.rtNachricht, Me.rtAktuelles, Me.txtLogo, Me.txtNews, Me.txtAnlage
      Else
      MsgBox \“Sie müssen in die Felder \’An\‘, \’Cc\‘ oder \’Bcc\‘ mindestens eine gültige E-Mail-Adresse eingeben\“, vbExclamation
      End If
      Next iBCC
      Next iCC
      Next iAN
      MsgBox \“E-Mail wurde erfolgreich versandt\“, vbInformation
      Unload Me
      End Sub

      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)

      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\“)
      Set NachrichtOL = AppOL.CreateItem(olMailItem)
      Set meinCC = NachrichtOL.Recipients.Add(sCC)
      meinCC.Type = 2
      Set meinBCC = NachrichtOL.Recipients.Add(sBCC)
      meinBCC.Type = 3
      With NachrichtOL
      .Recipients.Add sAn
      .CC = sCC
      .BCC = sBCC
      .Subject = sBetreff

      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
      End With
      End Sub

      3) wie könnte ich erreichen, dass ich die UserForm_Activate() auf Verteilerlsiten untersuche und VL bei der
      Auswahl auch zulasse. Momentan kann ich nur auf Konktakte mit E-Mail-Adressen zugreifen. Sobald eine VL existiert,
      gibt es sofort eine Fehlermeldung. Dem Umgang mit DistListItem-Objekt verstehe ich nicht.

      Private Sub UserForm_Activate()
      On Error GoTo Fehlerbehandlung
      Dim KontakteOL As Outlook.MAPIFolder, OrdnerOL As Outlook.MAPIFolder
      Set AppOL = GetObject(, \“Outlook.Application\“)
      Set NameSpaceOL = AppOL.GetNamespace(\“MAPI\“)
      Set KontakteOL = NameSpaceOL.GetDefaultFolder(olFolderContacts)
      Me.cmbKontakteOrdner.AddItem \“Hauptordner\“
      For Each OrdnerOL In KontakteOL.Folders
      Me.cmbKontakteOrdner.AddItem OrdnerOL.Name
      Next
      Me.cmbKontakteOrdner.ListIndex = 0
      Exit Sub
      Fehlerbehandlung:
      If Err = 429 Then
      Set AppOL = CreateObject(\“Outlook.Application\“)
      End If
      Resume Next
      End 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

      Private Sub cmdVon_Click()
      Dim x As Integer
      For x = 0 To lstKontakte.ListCount – 1
      If lstKontakte.Selected(x) = True Then
      lstAN.AddItem lstKontakte.List(x)
      End If
      Next x
      End Sub

      Vielen Dank für die Tipps im Voraus.

      mfg
      BenC

      #73292
      lastwebpage
      Moderator

        Hallo,
        also zu Punkt 1 und 2 generell würde ich die Überprüfung der Mailadresse in eine
        Unterfunktion schreiben um auf folgendes zu Prüfen
        mind 3 Zeichen@mind 3 Zeichen.mind 2 Zeichen,
        also Kurz gesagt ob das Eingabeformat überhaupt stimmt,
        so,weiter redest du immer bei AN,BB,CC von ODER das ist aber verkehrt!
        entweder AN alleine oder AN mit BB,CC, Eine Mail ohne AN geht nicht!
        es reicht also zu prüfen ob AN gültig ist.

        Dieses DistListItem ist einfach nur eine Verteilerliste,die mindestens einen Kontaktenthält.

        mfg
        Peter
        (Nachtrag evtl. lässt dein Provider auch ein senden ohn AN zu,must du mal ausprobieren)

        [Editiert am 18/7/2004 von lastwebpage]

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

      Das Thema ‘VBA Outlook 2000: Noch Fragen zum Cc, Bcc und Verteilerlisten’ ist für neue Antworten geschlossen.

      Hat Ihnen der Beitrag gefallen?

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