Ich möchte gerne bei meinen Programm, wenn der Rechner
arbeitet (Er aktualisiert mit Sverweis die ganzen daten, un
das dauert ca. 1,5 Minuten) ein Fenster am Bildschirm
anzeigen, wo steht bitte warten, oder man sieht eine
Statusanzeige, wie weit er ist (wenn das einfach ginge, was
ich nicht glaube)
Das Fenster soll, nachdem er fertig ist automatisch
verschwinden, wie macht man das ?
Hallo Anton,
danke für das Feedback 
Ein Weg wäre, du stellst die Berechnung unter Optionen auf „manuell“.
„F9“ startet dann ein Makro was die Zellen berechnet und eine Fortschrittsanzeige in einem Fenster anzeigt.
Im Beispiel wird davon ausgegangen dass die Sverweise in Spalte B stehen und in Spalte A noch andere Formeln.
Je nachdem welche der drei Makros „Berechne, Berechne2, Berechne3“ du im Makro „Einmalig“ auf die taste F9 legst, werden entweder alle benutzen Zellen berechnet, nur Zellen mit Formeln (macht am meisten Sinn) oder nur die Zellen in Spalte B.
Nachfolgend der Code. Benötigt wird eine Userform mit einem ProzessBarSteuerelement und 2 TextBoxen, so wie hier in der Beispielsdatei:
http://www.hostarea.de/server-12/Dezember-53d22018ad…
Code getestet auf XL2000
Gruß
Reinhard
Option Explicit
Public Merker As Long, M As Long
'
Sub Berechne()
' funktioniert erst ab XL2000 wg. Show 0
Dim Zei As Long
Application.ScreenUpdating = False
M = Range("B" & Rows.Count).End(xlUp).Row
UserForm1.Show 0
For Zei = 1 To M
UserForm1.Caption = Left("Berechnungsfortschritt.......", Len("Berechnungsfortschritt.......") \* Zei / M)
UserForm1.TextBox1 = Zei
UserForm1.ProgressBar1.Value = Zei
Cells(Zei, 2).Calculate
DoEvents
Next Zei
Application.ScreenUpdating = True
Unload UserForm1
End Sub
'
Sub Berechne2()
' funktioniert erst ab XL2000 wg. Show 0
Dim Zelle As Range, N As Long
Application.ScreenUpdating = False
M = ActiveSheet.UsedRange.Cells.Count
UserForm1.Show 0
For Each Zelle In ActiveSheet.UsedRange
N = N + 1
UserForm1.TextBox1 = N
UserForm1.ProgressBar1.Value = N
Zelle.Calculate
DoEvents
Next Zelle
Application.ScreenUpdating = True
Unload UserForm1
End Sub
'
Sub Berechne3()
' funktioniert erst ab XL2000 wg. Show 0
Dim Zelle As Range, N As Long
Application.ScreenUpdating = False
M = ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas).Cells.Count
UserForm1.Show 0
For Each Zelle In ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas)
N = N + 1
UserForm1.TextBox1 = N
UserForm1.ProgressBar1.Value = N
Zelle.Calculate
DoEvents
Next Zelle
Application.ScreenUpdating = True
Unload UserForm1
End Sub
'
Sub Einmalig()
Application.OnKey "{F9}", "Berechne"
Merker = Application.Calculation
Application.Calculation = xlCalculationManual
End Sub
'
Sub Zuruecksetzen()
Application.Calculation = Merker
Application.OnKey "{F9}", ""
End Sub