Clever-Excel-Forum

Normale Version: Ladebalken in For Each Abfrage einbauen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

nachdem mir Gast 123 so super mit dem Makro zur Seite Stand und ich das nun zum laufen bekommen habe,
würde ich gerne einen Ladebalken in Form einer Userform einbauen, da die Abfrage doch etwas dauert bei min. 280 Zeilen.


Hier mal meine Abfrage:
Code:
Option Explicit      '20.1.2017  Gast 123  Clever Form

Const AbgDatei = "MASTER HTIG PRODUCTION.xlsx"  'Original Name der Abgleich Datei
Const Deliver1 = "Overview"      'kann jedes Jahr geandert werden
Const MaschSpa = "F"    'Spalte der Maschinen Nummer (F) oder als Nummer
Const MZ1 = 19   '1.Zeile in Maschinenliste wahlweise 19 oder 22


'Module für Serien Nr in Delivered
'MS-Find Methode  (ist sehr langsam!!)

Sub SerienNr_vergleichen_Find()
Dim lzDV As Long, lzML As Long, OldTxt
Dim rFind As Range, MaschNr As String
Dim Wb As Workbook, DEL As Worksheet
Dim i As Long, n As Long, j As Long

On Error GoTo Fehler
Set Wb = Workbooks(AbgDatei)
Set DEL = Wb.Worksheets(Deliver1)
lzDV = DEL.Cells(Rows.Count, 1).End(xlUp).Row

'[f1,f2] = Time '** nur zum Test, spaeter bitte löschen

OldTxt = Application.StatusBar
Application.ScreenUpdating = False
With ThisWorkbook.Worksheets("Maschinenliste")
   lzML = .Cells(Rows.Count, 1).End(xlUp).Row
   'ganze Spalte G auf "Nein" setzen
   .Range("G" & MZ1 & ":G" & lzML) = "Nein"
 
   'Schleife zum suchen der Serien-Nr in Delivered
   For j = MZ1 To lzML
      Application.StatusBar = lzML & "  /  " & j
      MaschNr = .Cells(j, 5).Value
      If Left(MaschNr, 1) = "!" Then MaschNr = Mid(MaschNr, 2, 50)
      Set rFind = DEL.Columns(MaschSpa).Find(What:=MaschNr, after:=Cells(1, MaschSpa), LookIn:=xlValues, _
          LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False)
         
        If Not rFind Is Nothing Then _
           .Cells(j, 7) = "Ja": n = n + 1
   Next j
End With
Unload UserformProgressbar
'[f2] = Time '** nur zum Test, spaeter bitte löschen

Application.StatusBar = OldTxt
Application.ScreenUpdating = True
MsgBox n & "  Maschinen aus der Liste sind in den Produktionshallen."
Exit Sub

Fehler:  MsgBox "Unerwarteter Fehler - Richtige Datei mit richtigem Blatt geöffnet ??"

End Sub
Ich hänge die Testdatei zu einem Balken mit dazugehörigen Makro mit an.
Ich weiß nur leider nicht wie ich den mit meiner Abfrage einbauen kann.  Man hat ja die variable j für die Anzahl der Zeilen die er ermittelt (letzte beschriebene Zeile) und die MZ1 mit der zeile mit der er anfängt in Const declariert.

Ich habe nur keine Ahnung wie ich das umbauen kann das der ladebalken als max wert eben die ermittelte zeile nimmt und dann auch läuft.
Meinen Testcode hab ich lieber mal nicht rein da es so ein durcheinander ist :D
Wäre froh wenn mir da jemand helfen könnte der Erfahrung damit hat.



VIelen Dank

Grüße René
Hallo zusammen,

habe es hinbekommen und als erledigt markiert.


Grüße René
Hallo Rene,

auch wenn du das nun schon gelöst hat, würde ich immer versuchen, das Makro so weit zu optimieren, dass du keinen "Ladebalken" benötigst.