Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

Schleife anpassen | Herbers Excel-Forum


Betrifft: Schleife anpassen von: Thomy
Geschrieben am: 18.11.2009 09:09:27

Hallo Excelexperten

Ich versende SMS über eine Exceltabelle. Die benoetigten Daten lade ich automatisch in die Exceltabelle. Die Anzahl ist immer unterschiedlich. Ich kann aber hoechstens 20 miteinander versenden. Wie muss ich den folgenden Code, den ich hier gefunden habe aendern, damit immer zuerst geprueft wird, wie viele Daten vorhanden sind und die Schlaufe For i = 1 to ?? angepasst wird.
Im Voraus vielen Dank für eure Hilfe.
Thomy

Private Sub CommandButton1_Click()
    Dim OutApp As Object, Mail As Object
    Dim i As Integer
    Dim Nachricht
    For i = 1 To 20
        Set OutApp = CreateObject("Outlook.Application")
        Set Nachricht = OutApp.CreateItem(0)
        With Nachricht
            .SentOnBehalfOfName = Cells(i, 6)
            .To = Cells(i, 5) 'Adresse
            .Subject = Cells(i, 8)
            .Body = Cells(i, 9)
            .Display
            SendKeys "%s", True
        End With
        Set OutApp = Nothing 'CreateObject("Outlook.Application")
        Set Nachricht = Nothing 'OutApp.CreateItem(0)
        Application.Wait (Now + TimeValue("0:00:05"))
    Next i
End Sub

  

Betrifft: AW: Schleife anpassen von: Oberschlumpf
Geschrieben am: 18.11.2009 09:32:32

Hi Thomy

Wenn ich dich richtig verstanden habe, dann versuch es mal so:

Private Sub CommandButton1_Click()

    Dim OutApp As Object, Mail As Object
    Dim i As Integer
    Dim Nachricht
    
    
    Dim lloLetzte As Long
    lloLetzte = Cells(Rows.Count, 3).End(xlUp).Row
        If lloLetzte > 20 Then lloLetzte = 20
        
    
    For i = 1 To lloLetzte 
        Set OutApp = CreateObject("Outlook.Application")
        Set Nachricht = OutApp.CreateItem(0)
        With Nachricht
            .SentOnBehalfOfName = Cells(i, 6)
            .To = Cells(i, 5) 'Adresse
            .Subject = Cells(i, 8)
            .Body = Cells(i, 9)
            .Display
            SendKeys "%s", True
        End With
        Set OutApp = Nothing 'CreateObject("Outlook.Application")
        Set Nachricht = Nothing 'OutApp.CreateItem(0)
        Application.Wait (Now + TimeValue("0:00:05"))
    Next i

End Sub
- an lloLetzte wird die zuletzt benutzte Zeile in Spalte C übergeben
- sollten mehr Datenzeilen als 20 vorhanden sein, wird lloLetzte auf 20 begrenzt

Voraussetzung ist aber, dass zumindest in Spalte C keine weiteren Infos, als die vom Code abgefragten stehen.
Will sagen, zumindest in Spalte C dürfen unterhalb deiner erwähnten Daten keine weiteren Einträge stehen.

Hilfts?

Ciao
Thorsten


  

Betrifft: AW: Schleife anpassen von: Thomy
Geschrieben am: 18.11.2009 09:47:41

Hallo Thorsten

Funktioniert bestens.
Vielen Dank.
Thomy


Beiträge aus den Excel-Beispielen zum Thema "Schleife anpassen"