Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1336to1340
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Emailverteiler/Makro zu langsam
30.10.2013 15:09:26
Sebastian
Hallo Excelprofis,
für das Versenden eines Formulars benötige ich eine Verteilerliste, die ich mit Hilfe von Checkboxes generieren möchte. Auf meinem Sheet befinden sich acht von diesen. Für jede Box nutze ich diesen Code:
  • 
    Private Sub CheckBox1_Click()
    'Kontrollkästchen ansprechen
    'S
    Dim i%
    If CheckBox1.Value = True Then
    For i = 2 To 12
    Worksheets("Verteilerliste").Cells(i, 10) = Worksheets("Verteilerliste").Cells(i, 2) _
    _
    Next
    Else
    For i = 2 To 12
    Worksheets("Verteilerliste").Cells(i, 10) = ""
    Next
    End If
    End Sub
    

  • Setze ich in der ersten Box den Haken, überträgt das Makro mir die Email-Adressen ohne Probleme in eine andere Spalte. Spreche ich aber z.B. die 7. Checkbox an passiert nichts oder erst nach einer gefühlten Minute. Woran liegt das? Ist mein Ansatz für das Generieren eines Emailverteilers gänzlich falsch? Vielleicht habt Ihr ja eine bessere Idee, solch einen Verteiler zu erstellen (auch unter dem Gesichtspunkt "AN" & "CC")...?! Für Kritik und Lösungsansätze wäre ich euch sehr dankbar...!
    Anbei die Datei: https://www.herber.de/bbs/user/87881.xls

    11
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Emailverteiler/Makro zu langsam
    30.10.2013 15:17:50
    Bastian
    Hallo Sebastian,
    ich mache das so:
    Sub Checkboxes_auswerten()
    Dim objCB As Object
    Dim strAdr() As String
    Dim strAdrStr As String
    Dim lngCounter As Long
    For Each objCB In Worksheets("Verteilerliste").CheckBoxes
    If objCB.Value = 1 Then
    ReDim Preserve strAdr(lngCounter)
    strAdr(lngCounter) = objCB.TopLeftCell.Offset(1, 2).Text
    lngCounter = lngCounter + 1
    End If
    Next
    strAdrStr = Join(strAdr, "; ")
    Worksheets("Verteilerliste").Range("A1") = strAdrStr
    End Sub
    
    Der komplette Mailverteiler steht dann in Zelle A1.
    Gruß, Bastian

    AW: Emailverteiler/Makro zu langsam
    30.10.2013 15:33:36
    Tino
    Hallo,
    kann zwar diese Verzögerung bei mir nicht feststellen
    aber einen Vorschlag um die Schleife zu verhindern kann ich machen.
    Private Sub CheckBox1_Click()
        With Worksheets("Verteilerliste")
            If CheckBox1.Value = True Then
                .Cells(2, 10).Resize(11).Value = .Cells(2, 2).Resize(11).Value
            Else
                .Cells(2, 10).Resize(11).Value = ""
            End If
        End With
    End Sub
    
    Private Sub CheckBox2_Click()
        With Worksheets("Verteilerliste")
            If CheckBox2 = True Then
                .Cells(2, 11).Resize(11).Value = .Cells(2, 3).Resize(11).Value
            Else
                .Cells(2, 11).Resize(11).Value = ""
            End If
        End With
    End Sub
    
    Private Sub CheckBox3_Click()
        With Worksheets("Verteilerliste")
            If CheckBox3.Value = True Then
                .Cells(2, 12).Resize(11).Value = .Cells(2, 4).Resize(11).Value
            Else
                .Cells(2, 12).Resize(11).Value = ""
            End If
        End With
    End Sub
    
    '... 
    '... 
    '... 
    
    Gruß Tino

    Anzeige
    AW: Emailverteiler/Makro zu langsam
    31.10.2013 09:31:49
    Sebastian
    Vielen Dank für eure Antwort!
    Habe Tino's Lösungsvorschlag auf meine Bedürfnisse angepasst. Danke !!!
    @ Bastian: An deiner Lösung bin ich auch interessiert...! Hast du vielleicht eine Bespieldatei, die du hochladen kannst? Wenn ja, vielen Dank schon mal im Voraus...!
    Habe aber jetzt noch ein kleines Problem.
    Beim Versenden der Email bleibt der Code an der Stelle hängen:
    EmailadressenAN = Worksheets("Verteilerliste").Range("T2")
    EmailadressenCC = Worksheets("Verteilerliste").Range("U3")
    
    Anbei der Anfang von dem Makro:
    
    Dim obNachricht As Object
    Dim obMail As Object
    Dim htmlBody As String
    Dim Liste As String
    Dim EmailadressenAN As String
    Dim EmailadressenCC As String
    Set obMail = CreateObject("Outlook.Application")
    Set obNachricht = obMail.CreateItem(0)
    With obNachricht
    .GetInspector
    EmailadressenAN = Worksheets("Verteilerliste").Range("T2")
    EmailadressenCC = Worksheets("Verteilerliste").Range("U3")
    .To = EmailadressenAN
    .CC = EmailadressenCC
    .Subject = Subject
    
    Was mache ich falsch?

    Anzeige
    AW: Emailverteiler/Makro zu langsam
    31.10.2013 09:50:58
    Tino
    Hallo,
    welche Fehlermeldung bekommst Du an dieser Stelle,
    kann an diesen zwei Zeilen keinen Fehler erkennen.
    Gruß Tino

    AW: Emailverteiler/Makro zu langsam
    31.10.2013 09:56:03
    Sebastian
    Bekomme diesen Fehler:
    Userbild

    AW: Emailverteiler/Makro zu langsam
    31.10.2013 10:00:28
    Tino
    Hallo,
    lade mal ein Beispiel hoch, Fehler ist nicht nachvollziehbar.
    Gruß Tino

    jetzt ist es klar...
    31.10.2013 10:51:08
    Tino
    Hallo,
    , die Referenzieren ist falsch.
    mach aus ActiveWorkbook besser ThisWorkbook
    ActiveWorkbook ist die Datei die gerade aktiv ist
    ThisWorkbook ist die Datei wo der Code läuft
    Daher halte ich von Anfang an eine saubere Referenzieren
    ob man dies nun braucht oder nicht für sehr wichtig.
    Gruß Tino

    Anzeige
    AW: jetzt ist es klar...
    31.10.2013 12:52:29
    Sebastian
    Vielen Dank!!! Das war der Fehler....! Wünsche ein schönes langes Wochenende!
    Gruß
    Sebastian

    AW: Emailverteiler/Makro zu langsam
    31.10.2013 11:36:24
    Bastian
    Hallo Sebastian,
    anbei die Datei:
    https://www.herber.de/bbs/user/87889.xlsm
    Trifft nicht ganz Deine Anwendung, aber vielleicht kannst Du ja doch was davon gebrauchen.
    In Tabellenblatt1 steht eine Liste mit Mailadressen. Vor jeder Mailadresse ist eine Checkbox.
    Wenn Du das Makto "SendEmailWithOutlook" aufrufst, wird zunächst die Prozedur "Checkboxes_auswerten" aufgerufen. Diese sammelt alle Mailadressen, die hinter einer aktivierten Checkbox stehen, und fügt sie zu einem gemeinsamen String zusammen.
    Gruß, Bastian

    Anzeige
    AW: Emailverteiler/Makro zu langsam
    31.10.2013 12:54:43
    Sebastian
    Hallo Bastian,
    Dir auch vielen Dank!!! Wünsche auch ein schönes langes Wochenende!!!
    Gruß
    Sebastian

    237 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige