1.9k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo zusammen :-)

Ich habe ein kleines Problem und hoffe das ihr mir weiterhelfen könnt.

Ich habe eine relativ große Excel-Tabelle (160 Spalten, 120.000
Zeilen).

Nun lasse ich per VBA für 10 Spalten und alle 120.000 Zeilen einfache
Berechnungen durchführen. Da dies etwas dauert habe ich mir mit
einer Userform einen Fortschrittsbalken gebaut. Leider hängt sich der
Fortschrittsbalken nach ca. 1/3 des Weges auf (im Userform Fenster
steht "Keine Rückmeldung"). Nachdem die Berechnungen beendet
sind, verschwindet das Fenster einfach (was es ja auch tun soll).

Hier ist mein Code (ja ich weiß, die Variablen sind noch nicht
deklariert :-)):

Private Sub CommandButton1_Click()

i = 3
x = 0

Do While Cells(i, 1) <> ""
Cells(i, 21) = WorksheetFunction.VLookup(Cells(i, 2), Sheets("Basis").
[A2:V723], 3, False)
Cells(i, 23) = Cells(i, 2) & Cells(i, 15)
Cells(i, 24) = Round(Cells(i, 20) + Cells(i, 21) + Cells(i, 22), 2)
Cells(i, 26) = WorksheetFunction.VLookup(Cells(i, 2), Sheets("Basis").
[A2:V915], 5, False)

If i < 11250 And i >= 3 Then x = 1
If i < 22500 And i >= 11250 Then x = 2
If i < 33750 And i >= 22500 Then x = 3
If i < 45000 And i >= 33750 Then x = 4
If i < 56250 And i >= 45000 Then x = 5
If i < 67500 And i >= 56250 Then x = 6
If i < 78750 And i >= 67500 Then x = 7
If i < 90000 And i >= 78750 Then x = 8
If i < 101250 And i >= 90000 Then x = 9
If i < 112500 And i >= 101250 Then x = 10

ProgressBar1.Max = 10
ProgressBar1.Min = 0
ProgressBar1.Value = x

i = i + 1

Loop

i = 3

Unload UserForm1
UserForm1.Hide

End Sub


Kann mir jemand weiterhelfen?!

Warum hängt sich die Userform nach ca. 1/3 auf und wie kann ich das
beheben?

Herzlichen Dank und schöne Grüße
Lisa

4 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Lisa,

rufst du die Userform mit
UserForm1.Show vbModeless

auf? Wenn nicht, versuch das mal.

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo M.O.

Danke für deinen Beitrag!

Ja das tue ich obwohl ich nicht weiß was es genau tut :-)

Hatte diesen Tipp schon an andere Stelle gefunden...

Lisa
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Lisa,

Vbmodeless bewirkt, dass, wenn eine Userform sichtbar ist, trotzdem noch andere Aktionen laufen können.

Nächster Versuch:

Ändere den Codeteil
ProgressBar1.Max = 10
ProgressBar1.Min = 0
ProgressBar1.Value = x

mal in
With UserForm1.ProgressBar1
.Max = 10
.Min = 0
.Value = x
End With


Gruß

M.O.
0 Punkte
Beantwortet von
Hallo zusammen.

Habe eine Lösung gefunden:

DoEvents

einfügen und alles ist okay :-)

Danke für die Hilfe!

Lisa
...