Sprung mit Case aus Loop Schleife

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
ScrollBar MsgBox
Bild

Betrifft: Sprung mit Case aus Loop Schleife
von: Claus
Geschrieben am: 11.10.2003 20:44:28

Guten Abend! ICh brüte gerade über meinem Programm, dass irgendwann Emails versenden soll...kontrolliert...
Dazu braucht es nocch etwas Beistand. In dem Code weiter unten sind Case-Anweisungen und ich weiß nicht, wie ich keine Mail sende im Falle von Case "2" und wieder in die Do-Loop Schleife springe, um weitere Cases zu porüfen. Was muss ich da hinschreiben?



Private Sub Mail_Click()
'Email an einen bestimmten Adressaten versenden
Dim o
Dim m

If "intrexx" = ActiveWorkbook.Username Or "El Puma" = ActiveWorkbook.Username Then

x = 2
Do Until Application.WorksheetFunction.CountBlank(Rows(x)) = 256
    'Wenn Staus "OK" (in Zelle X, 4), dann nicht senden
    If Cells(x, 4) = "" Then
        
    'Outlook öffnen
    Set o = CreateObject("Outlook.Application")
    'Fenster für neue Mail wird geöffnet
    Set m = o.CreateItem(0)
    
    'Emails abhängig vonIng.-Büro
    Select Case Cells(x, 5)
    Case "Labinal"
      m.To = "firma.1@web.de"
    Case "Teccon"
      m.To = "Firma.2@web.de"
    Case Else
      Cells(x, 6) = "Keine e-mail Adresse angegeben"
    End Select
    
    'Betreff
    m.Subject = "BM " & Cells(x, 1) & ", Einarbeitungstermin: " & Cells(x, 2)
    
    'Text
    'Erste Nachricht 10 Tage vor Terminablauf
    Select Case Cells(x, 3)
    Case ""
      m.Body = "Der Termin für die Einarbeitung der BM " & Cells(x, 1) & " läuft in 10 Tagen aus. Die Bauunterlage muss in 10 Tagen auf Status 3-3 sein."
    Case "1"
    'Zweite Nachricht 5 Tage vor Terminablauf
      m.Body = "Nur noch 5 Tage um die BM " & Cells(x, 1) & " komplett einzuarbeiten! Die Bauunterlage muss in 5 Tagen auf Status 3-3 sein."
    'Zweimal benachrichtigt, dann nicht mehr verfolgen
    Case "2" <--- hier muss eine Anweisung folgen

    
    End Select
    'Anhang (wiederholen für mehrere Anhänge)
    'm.attachments.Add "Attachment.txt"
    'Lesebestätigung anfordern (siehe Outlook-Konstanten)
    m.ReadReceiptRequested = False
    'Wichtigkeit markieren (2=High, 1=Normal, 0=Low)
    m.importance = 2
    'Senden
    m.Send
   
    'Zellwert für Anzahl gesendete Mails erhöhen
    Cells(x, 3) = Cells(x, 3).Value + 1
    
    End If
x = x + 1
Loop

Else: MsgBox "Sie haben für diese Funktion keine Freigabe!"
End If

End Sub

     Code eingefügt mit Syntaxhighlighter 2.4

Bild


Betrifft: AW: Sprung mit Case aus Loop Schleife
von: Thomas Risi
Geschrieben am: 11.10.2003 21:30:58

Hallo Claus

Wenn ich das richtig verstehe, willst Du einige Anweisungen überspringen. Versuch's mal etwa so ...


Private Sub Mail_Click()
'Email an einen bestimmten Adressaten versenden
Dim o
Dim m

If "intrexx" = ActiveWorkbook.Username Or "El Puma" = ActiveWorkbook.Username Then

x = 2
Do Until Application.WorksheetFunction.CountBlank(Rows(x)) = 256
    'Wenn Staus "OK" (in Zelle X, 4), dann nicht senden
    If Cells(x, 4) = "" Then
        
    'Outlook öffnen
    Set o = CreateObject("Outlook.Application")
    'Fenster für neue Mail wird geöffnet
    Set m = o.CreateItem(0)
    
    'Emails abhängig vonIng.-Büro
    Select Case Cells(x, 5)
    Case "Labinal"
      m.To = "firma.1@web.de"
    Case "Teccon"
      m.To = "Firma.2@web.de"
    Case Else
      Cells(x, 6) = "Keine e-mail Adresse angegeben"
    End Select
    
    'Betreff
    m.Subject = "BM " & Cells(x, 1) & ", Einarbeitungstermin: " & Cells(x, 2)
    
    'Text
    'Erste Nachricht 10 Tage vor Terminablauf
    Select Case Cells(x, 3)
    Case ""
      m.Body = "Der Termin für die Einarbeitung der BM " & Cells(x, 1) & " läuft in 10 Tagen aus. Die Bauunterlage muss in 10 Tagen auf Status 3-3 sein."
    Case "1"
    'Zweite Nachricht 5 Tage vor Terminablauf
      m.Body = "Nur noch 5 Tage um die BM " & Cells(x, 1) & " komplett einzuarbeiten! Die Bauunterlage muss in 5 Tagen auf Status 3-3 sein."
    'Zweimal benachrichtigt, dann nicht mehr verfolgen
    Case "2" <--- hier muss eine Anweisung folgen
    
        Goto 10
    

    End Select
    'Anhang (wiederholen für mehrere Anhänge)
    'm.attachments.Add "Attachment.txt"
    'Lesebestätigung anfordern (siehe Outlook-Konstanten)
    m.ReadReceiptRequested = False
    'Wichtigkeit markieren (2=High, 1=Normal, 0=Low)
    m.importance = 2
    'Senden
    m.Send
   
    'Zellwert für Anzahl gesendete Mails erhöhen
    Cells(x, 3) = Cells(x, 3).Value + 1

10:

    End If
x = x + 1
Loop

Else: MsgBox "Sie haben für diese Funktion keine Freigabe!"
End If

End Sub



     Code eingefügt mit Syntaxhighlighter 2.5

Gruß
Thomas

Risi Thomas Softwareentwicklung




Bild


Betrifft: Wie beim C64
von: Claus
Geschrieben am: 11.10.2003 21:45:33

...Danke


 Bild

Beiträge aus den Excel-Beispielen zum Thema " Sprung mit Case aus Loop Schleife"