Microsoft Excel

Herbers Excel/VBA-Archiv

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

Schleife laufen und dabei einen Zaehler anzeigen l

Betrifft: Schleife laufen und dabei einen Zaehler anzeigen l von: Bernhard
Geschrieben am: 10.09.2004 15:52:33


Servus,

nun habe ich meine routine laufen moechte diese aber noch ein wenig aufpeppe.

Wie kann ich mir einen Zaehler in einem Fenster anzeigen lassen ?
Wie kann ich einen Cancel oder PAuse oder Abbrechen Button darin einbauen ?

Die Loop ist die folgende:

Sub Doppelte_Zeilen_Spalte1_sortieren_und_markieren()
    ' vergleicht dann alle uebereinander liegenden Felder in Spalte A und markiert die doppelten Spalten rot

' Anzahl der Zeilen wird in A festgestellt
' Es gibt eine Überschriftenzeile
    Dim I As Long' Startzeile ist Zeile 2 wegen der Überschrift
    Dim J As Long' Durchlaufender Zähler
        For I = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        For J = Cells(Rows.Count, 1).End(xlUp).Row To I + 1 Step -1
            If Cells(I, 1) = Cells(J, 1) And Cells(I, 4) = Cells(J, 4) Then
                Rows(J).Interior.ColorIndex = 3
                ' Rows(J).Delete
            End If
        Next J
    Next I
End Sub




Kann ich mir die Zeile ("I") oder "J") ausgeben lassen ohne dass die Performance noch mehr in die Knie geht ?

Kann ich einen Pause oder Stop Button einbauen ?

Danke und Gruss


Bernhard
  


Betrifft: warum neuer thread ? von: ypsilon
Geschrieben am: 10.09.2004 17:25:59

siehe unten


  


Betrifft: AW: Schleife laufen und dabei einen Zaehler anzeigen l von: andre
Geschrieben am: 10.09.2004 17:32:29

Hallo Bernhard,
unabhängig davon, ob Dein Algorythmus mehr oder weniger gut ist - mal ein Hinweis:
Dein For I ... geht durch alle Zeilen, egal, ob Du doppelte löschst oder nicht.
Wenn Du 100 Zeilen hast und im ersten Durchlauf 99 löschst ackert Dein Makro trotzdem noch bis zum 100. Durchlauf. Da könntest Du z.B. die Schleife eher verlassen:
If I > Cells(Rows.Count, 1).End(xlUp).Row then exit for
Das mit dem Zähker und dem Abbrechen regelst Du über ein userform:
- Userform1 mit Label1, CommandButton1 und Checkbox1
Declare Sub Sleep Lib "Kernel32" (ByVal Zeit As Long)
Code im Userform:
Private Sub CommandButton1_Click()
test
End Sub

Code im Modul:
Declare Sub Sleep Lib "Kernel32" (ByVal Zeit As Long)
Sub test()
For i = 1 To 20
DoEvents
UserForm1.Label1.Caption = i
Sleep 50 'für 50 ms
UserForm1.Repaint
If UserForm1.CheckBox1 = True Then Exit Sub
Next
End Sub


 

Beiträge aus den Excel-Beispielen zum Thema "Schleife laufen und dabei einen Zaehler anzeigen l"