Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
772to776
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
772to776
772to776
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Fortschrittanzeige funktioniert nicht

Fortschrittanzeige funktioniert nicht
13.06.2006 13:19:21
Mark
Hallo Leute
Ich will eine Art Ladebalken für ein Makro haben. Mein Code soll immer wenn die ZeileTmp um 200 gewachsen ist, eine Zelle farbig markieren. Anschließnd wird dann der Vergleichszähler wieder um 200 erhöht.
Leider funktioniert das nicht. Die Variablen einmal gleich waren zählt er den Vergleichszähler auch schön hoch. Sogar die Spalte macht er richtig. Aber danach läuft er immer wieder den Code durch obwohl er theoretisch garnicht in die If-Verzweigung reinkommen kann, da die Variablen nicht gleich sind.
Der Code liegt in einer For Schleife die die Variable ZeileTmp hochzählt.
If ZeileTmp = Vergleichszähler Then
Application.ScreenUpdating = True
Sheets("Status").Select
Cells(15, Spalte).Select
Selection.Interior.ColorIndex = 11
Application.ScreenUpdating = False
fertig = 1
Vergleichszähler = Vergleichszähler + 200
Spalte = Spalte + 1
End If
Was mache ich denn falsch??
Danke im Vorraus
Gruß Mark

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fortschrittanzeige funktioniert nicht
13.06.2006 13:49:22
Daniel A.
ohne direkt auf deine Frage einzugehen; warum benutzt du nicht einfach die
Application.Statusbar-Anweisung?
z.B.
Application.Statusbar = Zeilennummer
Am Ende noch mit Application.Statusbar = False (Statusbar zurücksetzen)
Ansonsten eine witzigi Idee! Gruss, Daniel
AW: Fortschrittanzeige funktioniert nicht
13.06.2006 14:00:38
Mark
Hallo Daniel
Hast schon recht. Ich wollte halt meine Rechenleistung schonen. Bei 18000 Zeilen verlängert das Anzeigen in der Statusbar doch wohl die Verarbeitungsdauer oder nicht!?!
Ich frag mich halt nur, warum der Code nicht funktioniert, weil er in meinen Augen Sinnvoll ist...!?!
Aber trotzdem Danke
Mark
Anzeige
AW: Fortschrittanzeige funktioniert nicht
13.06.2006 13:52:00
Harald E
Hi Mark,
bist Du den Code mal schrittweise mit F8 durchgegangen und hast dir die Variablen per Mauszeiger angeschaut ?
In meiner Glaskugel sehe ich nur nebulös irgendwas von ZeileTmp Schleife mit Step 200. ;-)
(die komplette Schleife enthälst Du uns ja vor.)
P.S.: Select is nicht gerade der Brüller :-D
If ZeileTmp = Vergleichszähler Then
Application.ScreenUpdating = True
Sheets("Status").Cells(15, Spalte).Interior.ColorIndex = 11
Application.ScreenUpdating = False
fertig = 1
Vergleichszähler = Vergleichszähler + 200
Spalte = Spalte + 1
End If
Gruss Harald
Anzeige
AW: Fortschrittanzeige funktioniert nicht
13.06.2006 14:04:12
Harald E
Hi,
wußte doch, dass ich mir auch mal sowas gebastelt hatte ;-)

Sub Fortschrittsbalken()
Dim anz As Long, i As Long
'Anzahl Schleifendurchläufe
anz = 5
'Bereiche freimachen
Range("C1", "a1:a" & anz).ClearContents
'Breite Spalte C entsprechend Schleifenlänge, rotesWingDing-Zeichen
Range("C1") = WorksheetFunction.Rept("l", anz)
Columns(3).AutoFit
With Range("C1")
.ClearContents
.Font.Name = "Wingdings"
.Font.ColorIndex = 3
End With
'Schleife
For i = 1 To anz
Cells(i, 1) = "test"
Range("C1") = WorksheetFunction.Rept("l", i)
Application.Wait (Now + TimeValue("0:00:01"))
Next i
Range("C1").ClearContents
End Sub

Gruss Harald
Anzeige
AW: Fortschrittanzeige funktioniert nicht
13.06.2006 14:06:51
Mark
Hi Harald
Da gebe ich dir natürlich recht. Select ist nicht sehr schick. Benutz zwar mittlerweile kaum noch den Makrorecorder, aber daruch habe ich mir das irgendwie angewöhnt.
Erklär mir doch mal bitte deinen Satz:
In meiner Glaskugel sehe ich nur nebulös irgendwas von ZeileTmp Schleife mit Step 200. ;-)
???
Die Schleife komplett hier zu posten, würde glaub ich den Rahmen sprengen. Ist etwas umfangreicher. Ich wollt halt mal wissen, wo ich da einen Fehler drin habe, weil mir der Code eigentlich so logisch vorkommt...
Ich habe den Code mal angehalten als die ZeileTmp bei 1000 war. Vergleichszähler ist bei 400 und die Spalte bei 6. Also einmal durchgelaufen, beides hochgezählt und dann nicht wieder verwendet.
Hast du einen Rat für mich?
Danke, Mark
Anzeige
AW: Fortschrittanzeige funktioniert nicht
13.06.2006 14:20:44
Harald E
hi,
ich habs mal folgendermaßen nachgebaut und dein Fehler stellt sich nicht ein.

Sub test()
zaehler = 1
For i = 1 To 3
If i = zaehler Then
MsgBox "i = zaehler"
'End if
zaehler = zaehler + 1 'oder + 200 Ausstieg nach einer Runde
End If
Next i
End Sub


Sub test1()
zaehler = 1
For i = 1 To 1001 Step 200 'oder ohne Step 200, steigt auch nach 1 Runde aus
If i = zaehler Then
MsgBox "i = zaehler"
'End if
zaehler = zaehler + 200
End If
Next i
End Sub

Gruss Harald
AW: Fortschrittanzeige funktioniert nicht
13.06.2006 14:31:20
Mark
Hi
Einerseits sagst du, dass mein Fehler nicht Auftritt aber andererseits sagst du, dass die beiden Varianten auch nach einer Runde aussteigen, wie mein Makro!?!?
Das versteh ich jetzt grad nicht....
Gruß Mark
Anzeige
AW: Fortschrittanzeige funktioniert nicht
13.06.2006 14:38:23
Harald E
Ja...hab beide Varianten durchgespielt.
for i = to 3
und zaehler = zaehler + 1
beide Variablen gehen um 1 hoch und sind somit im nächsten Durchlauf gleich. Kein Ausstieg
Anders
for i = to 3
und zaehler = zaehler + 200
i geht um 1 hoch, zaehler um 200. Die Variablen sind im nächsten Durchlauf unterschiedlich und er springt auf End If.
Wenn deine Schleife nach diesem Grundprinzip aufgebaut ist, kann ich eine Fehlermeldung nicht erklären.
Gruss Harald
AW: Fortschrittanzeige funktioniert nicht
13.06.2006 14:38:39
Reinhard
Hi Mark,
wie wärs mit einem Microsoft Statusbar Control ?
Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
AW: Fortschrittanzeige funktioniert nicht
17.06.2006 12:01:31
schauan
Hallo allerseits,
da steigt doch nichts nach einer Runde aus. Die Schleife wird ordnungsgemäß durchlaufen nur in's If wird nur reingegangen wenn die Bedingung stimmt. Und wenn man den Stp auf 1 setzt und den Zähler jedesmal um 200 addiert dann klappt's eben nur beim ersten mal und wenn man Pech hat und die Variable zaehler ist nur Integer kommt weit vor dem 1000. Durchlauf noch eine Fehlermeldung.
Hier mal ein anderer Ansatz:


Sub testmod()
For i = 1 To 1001 Step 200 'oder ohne Step 200, 
  If (i - 1) Mod 200 = 0 Then MsgBox i
Next i
End Sub

     Code eingefügt mit Syntaxhighlighter 4.0

Hoffe geholfen zu haben
Grüße von André aus Gera - Excel-97-2003

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige