Microsoft Excel

Herbers Excel/VBA-Archiv

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

Procress Bar

Betrifft: Procress Bar von: Herbert Greim
Geschrieben am: 27.10.2014 17:40:14

hallo zusammen,

habe mal wieder ein Problem und hoffe ihr könnt mir helfen.
folgender Code holt aus einer geschkossenen Datei die Daten.

Sub TestGetValue(ByVal tagimjahr As Long, ByVal wochentag As String)

Dim a As String
Dim b As String
Dim c As String
Dim Zelle As Range, wks As Worksheet, Bereich As String, lloRow As Long
Dim lloCol As Long
Dim hcbrutto As Long
Dim hcnetto As Long
Dim hcbruttom As Long
Dim hcnettom As Long
Dim ll As Long
Dim name1 As Long
Dim name2 As Long
Dim name3 As Long

Application.EnableEvents = False




Set wks = Worksheets(wochentag) 'Tabelle in die die Werte eingefügt werden sollen

a = ThisWorkbook.path 'beide Dateien müssen im selben Verzeichnis gespeichert sein
b = "AWH_1.xlsx" 'Name der geschlossenen Datei; ändern, wenn erforderlich
c = "AWH" 'Blattname in geschl. Datei; ändern, wenn erforderlich

lloCol = tagimjahr 'die Spalte in der der gesuchte Tag steht (geschlossene Datei)
lloRow = 11 'Startzeile in offener Datei, in die die Daten geschrieben werden; ändern, wenn erforderlich
hcbrutto = 3
hcnetto = 3
hcbruttom = 4
hcnettom = 4
name1 = 11
name2 = 11
name3 = 11
ll = 15

'Schreibt die Werte in die angegebene Tabelle in den Bereich

For Each Zelle In wks.Range(Cells(15, lloCol), Cells(79, lloCol))
Range("AB" & lloRow).Value = GetValue(a, b, c, Zelle.Address) '"J" = Zielspalte; ändern, wenn erforderlich
lloRow = lloRow + 1
'Schrittweite festlegen

'Schrittbreite pro Aktualisierung


Next Zelle
jetzt möchte ich ein Process Bar einfügen komme aber nicht weiter.
Userform hab ich schon erstellt.

vielen Dank

Gruß
Herby

  

Betrifft: AW: Progress Bar, Hinweise von: Rudi Maintaire
Geschrieben am: 27.10.2014 21:47:02

Hallo,
du musst TestGetValue im Initialize- oder Activate-Ereignis der UF aufrufen und in TestGetValue je nach Programmfortschritt die Progressbar aktualisieren.

Gruß
Rudi


  

Betrifft: AW: Progress Bar, Hinweise von: Herbert Greim
Geschrieben am: 28.10.2014 09:54:55

Hi Rudi,

folgender Code steht in einem Modul.


Option Explicit



Public SW As Long

Dim Schritt As Double, Schritt1 As Double, Schritt2 As Double
Dim länge As Double, Länge1 As Double, Länge2 As Double
Dim i As Long, z As Long
Dim j As Integer
Dim Spalte As Integer


Sub Progressbar1()
SW = 200500 'Schrittweite festlegen
länge = 0
Schritt = PB1.Label1.Width / SW 'Schrittbreite pro Aktualisierung
For i = 5 To SW


länge = länge + Schritt
PB1.Label2.Width = länge
PB1.Label3.Caption = Format(i / SW, "0 %")
DoEvents
Next
Application.Wait (Now + TimeValue("0:00:2"))
Unload PB1
End Sub
und das steht im UF

Option Explicit

Private Sub UserForm_Activate()
SW = 0
Label2.Width = 0
Call Progressbar1

End Sub
wie bekomme ich jetzt alles zusammen ?

sorry steh voll auf dem Schlauch.

Gruß
Herby