Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Status Box aktualisieren

Forumthread: Status Box aktualisieren

Status Box aktualisieren
23.10.2012 14:01:19
Maximilian
Hallo Jungs!
Ich habe ein kleines Problem. Ich habe eine längere Prozedur in VBA. Es werden verschiedene Dinge getätigt, z.B.
- Bericht wird heruntergeladen
- anschließend geöffnet
- Daten werden bearbeitet
- gedruckt
- gespeichert
Während der Prozedur poste ich den aktuellen Status in eine Listbox. Leider sieht man nicht während der Prozedur, wie sich die ListBox füllt, sondern erst am Ende auf einmal die gesamten Einträge. Das Problem ist, dass die ListBox während der Prozedur quasi nicht optisch aktualisiert wird.
Gibt es einen Befehl, der diese aktualisieren kurz erneuert?

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: CROSSPOST O-L
23.10.2012 14:27:17
Maximilian
sehr hilfreich...

AW: Ne, frech von dir,...
23.10.2012 14:46:34
dir,...
Ich wusste nicht, dass die beiden Foren irgendwas miteinander gemein haben.
Die Antwort von Klaus hilft mir leider gar nichts.
Hier der Code, danke für einen hilfreichen Tipp...!
Sub Start()
FormSperren (True)
DeklariereVariablen
'Bericht runterladen
SetStatus ("Suche Bericht...")
If Dir(xlsBericht) = "" Then
ConfirmN
SetStatus ("Kein Bericht gefunden. Lade aktuellen Bericht herunter...")
If Not Download(urlBericht, xlsBericht) Then ConfirmP
Else
ConfirmP
SetStatus ("Bericht gefunden. Überprüfe Aktualität...")
If Format(FileDateTime(xlsBericht), "DD.MM.YYYY")  CDate(MainForm.TextBoxBis.Text) Then
.Rows(i).Delete
Else: i = i + 1
End If
Else: i = i + 1
End If
Loop
End With
Range("A1").Select
ConfirmP
'PivotTabelle erstellen
SetStatus ("Erstelle PivotTabelle...")
ThisWorkbook.Sheets("Daten").Select
ThisWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Daten" + "!$A:$AN").CreatePivotTable TableDestination:="", TableName:= _
"Pivot1", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
ActiveSheet.PivotTables(1).ColumnGrand = False
ActiveWorkbook.ShowPivotTableFieldList = False
ActiveSheet.Name = "Pivot"
'PivotTabelle bestücken
With ActiveSheet.PivotTables(1).PivotFields("Material-Nummer")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables(1).PivotFields("Handelnder")
.Orientation = xlColumnField
.Position = 1
End With
ActiveSheet.PivotTables(1).AddDataField ActiveSheet.PivotTables(1).PivotFields(" _
Auftragsmenge in BME"), "Anzahl von Auftragsmenge in BME", xlSum
'Nicht benötigte Daten aus PivotTabelle ausblenden
With ActiveSheet.PivotTables(1).PivotFields("Handelnder")
For i = 1 To .PivotItems.Count
If LCase(.PivotItems(i).Name) = "ec" Then
.PivotItems(i).Visible = True
ElseIf LCase(.PivotItems(i).Name) = "lk" Then
.PivotItems(i).Visible = True
ElseIf LCase(.PivotItems(i).Name) = "nicht zugeordnet" Then
.PivotItems(i).Visible = True
ElseIf LCase(.PivotItems(i).Name) = "wk" Then
.PivotItems(i).Visible = True
Else: .PivotItems(i).Visible = False
End If
Next
End With
ConfirmP
'Auswertungs-Sheet wird bestückt
SetStatus ("Erstelle Auswertungstabelle...")
'Bestellnummern kopieren
For i = 5 To Sheets("Pivot").UsedRange.Rows.Count + 2
Sheets(1).Cells(i + 5, 2).Value = Sheets("Pivot").Cells(i, 1)
Next
'Gesamtmenge
For i = 5 To Sheets("Pivot").UsedRange.Rows.Count + 2
Sheets(1).Cells(i + 5, 6).Value = Sheets("Pivot").Cells(i, 6)
Next
'Rückstand (Bestand - Bestellmenge)
For i = 10 To Sheets(1).UsedRange.Rows.Count
Sheets(1).Cells(i, 5).FormulaR1C1 = "=RC[-2]-RC[1]"
Next
'Bedarf (Bestand + FAUF - Bestellmenge)
For i = 10 To Sheets(1).UsedRange.Rows.Count
Sheets(1).Cells(i, 7).FormulaR1C1 = "=RC[-4]+RC[-3]-RC[-1]"
Next
ThisWorkbook.Sheets(1).Activate
ConfirmP
'Materialnummern in Zwischenablage
Range("B10").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
FormSperren (False)
End Sub

Anzeige
das ist nicht der Code der Listbox. owT
23.10.2012 15:00:17
Matze,Matthias

AW: das ist nicht der Code der Listbox. owT
23.10.2012 15:07:31
Maximilian
Den Code der ListBox?
Was meinst du denn genau?
Sub SetStatus(Text As String)
MainForm.StatusBox.AddItem (Text)
End Sub
Sub ConfirmP()
MainForm.StatusBox.List(MainForm.StatusBox.ListCount - 1) = MainForm.StatusBox.List( _
MainForm.StatusBox.ListCount - 1) + " " + ChrW(10004)
End Sub
Sub ConfirmN()
MainForm.StatusBox.List(MainForm.StatusBox.ListCount - 1) = MainForm.StatusBox.List( _
MainForm.StatusBox.ListCount - 1) + " " + ChrW(10006)
End Sub

Anzeige
Mainform.Repaint owT
23.10.2012 15:26:35
Rudi

AW: Mainform.Repaint owT
24.10.2012 08:18:05
Maximilian
Rudi, vielen Dank, genau das hab ich gesucht ;)

Ist auch zu ändern!...
23.10.2012 17:02:38
Matze,Matthias

Sub ConfirmP()
MainForm.StatusBox.List(MainForm.StatusBox.ListCount - 1) = MainForm.StatusBox.List( _
MainForm.StatusBox.ListCount - 1) + " " + ChrW(10004)

Sub ConfirmN()
MainForm.StatusBox.List(MainForm.StatusBox.ListCount - 1) = MainForm.StatusBox.List( _
MainForm.StatusBox.ListCount - 1) + " " + ChrW(10006)
End Sub


müssten die + nicht & werden ?

Anzeige
...denn hier geht's um VBA, nicht JScript! orT
24.10.2012 01:15:39
Luc:-?
Gruß Luc :-?
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige