Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1420to1424
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Ladebalken

Ladebalken
13.04.2015 09:50:10
Philipp
Hallo Zusammen,
Ich habe in einem älteren Beitrag ( https://www.herber.de/forum/archiv/900to904/902228_Ladebalken_fuer_Makros.html - zweitletzte Antwort) eine sehr schöne Beispieldatei gefunden, wie ein Ladebalken über ein vba-Formular generiert wird (1. Beispiel).
Diesen Ladebalken wollte ich gerne in meiner Datei integrieren, wobei ich gänzlich versagt habe und auf eure Hilfe hoffe. Ich habe schon viel rum probiert, aber bekomme jedes mal einen anderen Fehler. Leider befasse ich mich erst seit kurzer Zeit mit VBA und bin daher (noch) kein Profi :)
Meine Vorgehensweise:
Ich war so frech und habe das Formular (Den Balken) einfach mal in mein Excel-dokument gespeichert. Der erste Unterschied zur Beispieldatei ist, dass meine Subs nicht in einem externen Modul, sondern in den Worksheets stehen.
Dieser Code steht in in meinem Worksheet Tabelle1:

'Initialisierung für den Prozessbalken
Public SW As Long
Public Schritt As Double
Public Länge As Double
Public Sub plan_load_Click()
Dim i As Long
Dim speichergroesse As Long
Dim pep_zeilen As Long
Dim woche_zeilen As Long
Dim erste_ladezeile As Long
If Tabelle9.Cells(1, 2) > 0 Then
PB1.Show
erste_ladezeile = 0
pep_zeilen = 7
woche_zeilen = 12
i = 3
speichergroesse = Tabelle9.Cells(2, 1)
'Deklarationen für den Prozessbalken
SW = 3005                                       'Schrittweite festlegen
Länge = 0
Schritt = PB1.Label1.Width / SW
While i 
"Unnötigen Code", bei welchem einfach nur irgendwelche Dinge hin und her kopiert werden habe ich durch ein "'bla bla bla" ersetzt :)
In meinem Formular steht folgendes:

Option Explicit
Public SW As Long
Public Sub UserForm_Activate()
SW = 0
Label2.Width = 0
Call Tabelle1.plan_load_Click
End Sub

Bin für jede Hilfe dankbar!
Liebe Grüße, Philipp

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ladebalken
13.04.2015 10:41:55
fcs
Hallo Philipp,
du solltest den Code für den Fortschrittsbalken in einem allgemeinen Modul belassen, da Variablen als Public deklariert werden und dies funktioniert nur in allgemeinen Modulen.
Da du im Code bei allen Zellobjekten mit den Code-Namen der Tabellenblätter arbeitest sollten auch keine Probleme bei der Bearbeitung der Zellen auftreten.
Achtung: wenn du einen 64-bit Rechner verwendest könnte DoEvents Probleme machen. Zumindest hatte ich da kürzlich einen Problemfall, dass die Anzeige der Sytemzeit in Textboxen Kummer bereitete.
Gruß
Franz

AW: Ladebalken
13.04.2015 16:08:44
Philipp
Hallo Franz,
Erstmal vielen Dank für deine Antwort!
Ich habe nun folgendes getan...
Das steht in meinem Code der Tabelle1:

Public Sub plan_load_Click()
Call plan_load_modul
End Sub
Dies habe ich getan, damit er auf den button reagiert.
Im Modul habe ich nun das eingebaut, was ich vorhin im Code der Tabelle1 hatte.
Im Code des Formulars steht folgendes:

Option Explicit
Public Sub UserForm_Activate()
SW = 0
Label2.Width = 0
Call plan_load_modul
End Sub
Wenn ich jetzt den button klicke, erscheint folgender Fehler:

Laufzeitfehler '400':
Formular wird bereits angezeigt und kann daher nicht gebunden dargestellt werden.

Beim Klick auf Debuggen wir die Zeile PB1.Show markiert.
Hat jemand eine Idee?
Und dann noch eine Frage zu DoEvents: Kann ich das einfach weg lassen? was macht es überhaupt?
Nochmals vielen Dank,
Philipp

Anzeige
AW: Ladebalken
13.04.2015 16:34:07
fcs
Hallo Philipp,
das Makro zur Schaltfläche muss das Userform starten
Public Sub plan_load_Click()
PB1.Show  'Name des Userforms ggf. anpassen
End Sub
Frage zu DoEvents: Kann ich das einfach weg lassen?
Hier nicht! Dann bleibt die Balkenanzeige auf einem festen Wert stehen.
Mit DoEvents wird die Steuerung an das Betriebssystem übergeben.
In der Summe wird dadurch die Anzeige des UF nach jedem Durchlauf deiner Schleife aktualisiert.
Was man ggf. machen muss, wenn man ein 64-bit-System hat weiss ich nicht.
Gruß
Franz

Anzeige
AW: Ladebalken
13.04.2015 17:49:46
Philipp
Hallo Franz,
Na logisch... sitze heute einfach schon zu lange vorm PC :)
Vielen, vielen Dank!
PS: Ich habe jetzt mal DoEvents verwendet, bei mir funktioniert es.
Ich hoffe bei den Kollegen, die mit dem Tool arbeiten müssen tut es das auch :D

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige