Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1368to1372
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
Progressbar in Code integrieren
23.07.2014 11:18:19
ela
hallo,
ich Habe folgendes problem.
Und zwar möchte ich einen Fortschrittsbalken in mein Programm integrieren.
Das Programm hat die Funktionen Dateien auf eine SHarepointseite hochzuladen. Welche dateien hochgeladen werden sollen wird durch das anhaken von kontrollkästschen abgefragt.
Somit habe ich eine Schleife für das hochladen der dokumente erzeugt. Da das ziemlich lange dauern kann, würde ihc gerne eine fortschrittsanzeige einbauen.
Das heißt ich möchte mit Klick auf die Befehlschaltfläche "hochladen" in meinem Excel Workbook, dass eine Userform aufgeht in der die Progressbar den Fortschritt der hochgeladenen dateien bzw die durchläufe in der schleife repräsentiert.
Da ich leider überhaupt keine Erfahrung mit Userform und progressbar habe, wäre ihc für ein kurzes Code Bsp dankbar. unten ist eine verkürzte form meines codes in das die progressbar integriert werden soll.
Könnte mir jemand ein beispiel in meinen code einfügen?
dim wbname as string 'Workbookname
dim znr as integer 'Zeilennummer
dim box as oleobject 'Kontrollkästschen
znr =1
For Each box In Tabelle1.OLEObjects 'jedes Active-X-Steuerelement prüfen
If TypeName(box.Object) = "CheckBox" Then werden "CheckBox"
'wenn Kontrollkästschen angehakt dann datei hochladen
If box.Object.Value = True Then
quelldatei = Workbooks(wbname).Worksheets(3).cells(znr,2)
zieldatei = Workbooks(wbname).Worksheets(3).cells(znr,3)
'kopieren der datei von quellordner in zielordner
filecopy quelldatei, zieldatei
znr = znr+1
end if
end if
next box
Vielen lieben Dank
Viele grüße
ela

24
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Progressbar in Code integrieren
23.07.2014 12:09:07
Oberschlumpf
Hi Ela
grundsätzlich könnte das Ganze so funktionieren
(ob es das auch bei dir tut, weiß ich natürlich nicht, da du nur Code und keine Bsp-Datei zeigst)
blöd is auch, dass du nur den Teil vom ganzen Code zeigst. Ich geh mal davon aus, dass deine Sub direkt oberhalb der ersten DIM-Zeile beginnt - wenn nicht, na ja, nich mein Problem
So, versuch mal
Zuerst muss das Userform aufgerufen werden.
Bei Klick auf deinen Button muss also dieser Befehl folgen:
Userform1.Show 'wenn Userform anders heißt, dann Name anpassen
dann muss dein eigtl Makro vom Userform "aufgerufen" werden; im Activate-Ereignis

Private Sub Userform1.Activate 'auch hier Userform-Name anpassen, wenn erforderlich
sbProgress
End Sub
Und dein Makro sollte in einem allgemeinen Modul stehen.

Sub sbProgress()
dim wbname as string 'Workbookname
dim znr as integer 'Zeilennummer
dim box as oleobject 'Kontrollkästschen
Dim liCounter As Integer
'zuerst muss die Anzahl der Markierungen ermittelt werden
For Each box In Tabelle1.OLEObjects
If TypeName(box.Object) = "CheckBox" Then
If box.Object.Value = True Then
liCounter = liCounter + 1
end if
end if
Next
'nun wird der Min/Max-Wert für Progressbar festgelegt
Progressbar1.Min = 0
Progressbar1.Max = liCounter
znr =1
For Each box In Tabelle1.OLEObjects 'jedes Active-X-Steuerelement prüfen
If TypeName(box.Object) = "CheckBox" Then werden "CheckBox"
'wenn Kontrollkästschen angehakt dann datei hochladen
If box.Object.Value = True Then
quelldatei = Workbooks(wbname).Worksheets(3).cells(znr,2)
zieldatei = Workbooks(wbname).Worksheets(3).cells(znr,3)
'kopieren der datei von quellordner in zielordner
filecopy quelldatei, zieldatei
znr = znr+1
end if
end if
'und hier wird der Progrssbar-Wert so lange um 1 erhöht, bis Schleife beendet + Progress-Max  _
erreicht
Progressbar1.Value = Progressbar1.Value + 1
DoEvents
next box
'nach Ende deines Makros muss das Userform wieder geschlossen werden
Unload Userform1
End Sub

So, du musst also ein Userform hinzufügen.
Dem Userform fügst du über die Werkzeuge eine Progrssbar hinzu
Und dann den Code so eintragen, wie ich es beschrieben habe.
Hilfts?
Ciao
Thorsten

Anzeige
AW: Progressbar in Code integrieren
23.07.2014 16:31:10
ela
Hallo Thorsten,
habe es mal versucht.
Userform aufrufen geht.
Habe die Uploadfunktion jetzt auch in ein Modul namens´"Hochladen" gesteckt. Mit dem Button rufe ich also die userform auf. Welche wiederum das Modul Hochladen aufrufen soll. Problem dabei ist, dass mein Modul die Progressbar nicht erkennt und eine Fehlermeldung "Objektvariable nicht festgelegt"
Wie kann ich diese also ansprechen?
Vielen Dank
Viele grüße
Ela

AW: Progressbar in Code integrieren
23.07.2014 16:37:17
Oberschlumpf
Hi Ela
1) hast du dem Userform mit Hilfe der Werkzeuge auch eine Progressbar hinzugefügt?
2) Wenn JA, stimmt der Name der Progressbar mit dem verwendeten Namen im Code überein?
3) Wenn 1) = NEIN, dann mach so, dass du 1) mit JA beantworten kannst :-)
4) du musst nicht, aber du KÖNNTEST uns ja auch mal deine Datei mit Code und allem Drum + Dran zeigen....wie gesagt, du musst nich, aber du könntest es....
Hilfts?
Ciao
Thorsten

Anzeige
AW: Progressbar in Code integrieren
23.07.2014 16:49:02
ela
hallo thorsten,
ich habe es genau so gemacht. aber es fuktioniert nihct.
anbei die datei

Die Datei https://www.herber.de/bbs/user/91676.xlsm wurde aus Datenschutzgründen gelöscht


der code liegt im tabellenblatt 1. bis jetzt habe ich nur dich hochladen prozedur in das hochladen modul kopiert.
vielen dank und viele grüße
ela

AW: Progressbar in Code integrieren
24.07.2014 00:00:41
Daniel
HI
du damit das funktioniert , brauchst du 3 zusätzliche befehlszeilen im Makro Public Sub hochladen_Click():
1. vor der Schleife über die Checkboxen:
Userform1.Show vbModeless
das vbModeless ist wichtig, weil sonst der Code erst weiter läuft, wenn die Userform wieder geschlossen wird.
2. in der Schleife irgendwann nach dem hochzählen von AnzDat:
Userform1.ProgressBar1.Value = AnzDat / anzdatges * 100
3. nach der Schleife:
Unload Userform1
mehr isses nicht.
Gruß Daniel

Anzeige
AW: Progressbar in Code integrieren
24.07.2014 08:37:30
ela
hallo daniel,
super das funktioniert.
Vielen lieben Dank
Grüße
ela

schön, Problem gelöst...owT
24.07.2014 08:50:25
Oberschlumpf

AW: Progressbar in Code integrieren
24.07.2014 08:26:09
Oberschlumpf
Hi Ela
leider hast du es nicht ganz so gemacht, wie ich es zuvor beschrieben hatte.
Du hast den kompletten Code für sbProgress gar nicht in deine Datei übernommen.
Ich hab mal ein neues Modul hinzugefügt, hab es HerbersExcel genannt.
Darin befindet sich nun mein Code.
https://www.herber.de/bbs/user/91695.xlsm
Wenn du nun auf deinen neuen Button UserForm starten klickst, öffnet sich zwar das UF mit dem Fortschrittsbalken, aber leider läuft der Code trotzdem nicht durch...was nicht an meinem Code, sondern an deinem Code liegt, den ich mit übernommen habe.
die ersten Fehlerzeilen sind
quelldatei = Workbooks(wbname).Worksheets(3).Cells(znr, 2)
zieldatei = Workbooks(wbname).Worksheets(3).Cells(znr, 3)
nach Klick auf den Button "UserForm starten" hat die Variable wbname noch gar keinen Wert, ist also "".
Deswegen funktionieren die Zeilen nicht.
Da ich aber nicht weiß, welche Dateien an quell- + zieldatei übergeben werden sollen, bin ich erst mal wieder raus.
Vielleicht kommst du ja nun ein Stück weiter.
Wenn auch du nicht mehr weiter weißt, meld dich hier wieder im Forum.
Vielleicht in einem neuen Thread, da sonst nur Daniel + ich informiert werden, dass du wieder ne Frage hast.
Ciao
Thorsten
p.s. ach so, konnte erst jetzt wieder an dich antworten, weil ich zu hause noch immer Office 2003 nutze und deine Datei nicht öffnen kann.

Anzeige
AW: Progressbar in Code integrieren
23.07.2014 13:27:17
Daniel
Hi
ich würde in die Statuszeile den Meldungstext schreiben:
Dateien hochladen, in Arbeit: Datei x von y
dazu kannst du die Funktion: Application.Statusbar = "Meldungstext"
verwenden.
Nach Abschluss gibst du die Statusleiste wieder für die normalen Excelmeldungen frei mit: Application.Statusbar = False
eine echte Progessbar ist aufwendig und bringt eigentlich nicht viel.
Excel selbst machst seine Fortschrittsanzeige bei längeren Berechnungen in der Statusleise, wer schon mal ein bisschen mit Excel gearbeitet hat, sollte das kennen.
Gruß Daniel

Anzeige
AW: Progressbar in Code integrieren
23.07.2014 14:10:56
Oberschlumpf
Hi Daniel
...Excel selbst machst seine Fortschrittsanzeige bei längeren Berechnungen in der Statusleise, wer schon mal ein bisschen mit Excel gearbeitet hat, sollte das kennen.
...

Das mag sicher richtig so sein. Nur, so weit ich mich erinnere, erscheint Excels Fortschritt unten rechts in der Statuszeile....auf jeden Fall aber eher schlecht für den Normalo zu sehen/zu erkennen/zu finden.
Daher: Gut gebrüllt, Löwe! ;-)
Ciao
Thorsten

AW: Progressbar in Code integrieren
23.07.2014 14:22:14
Daniel
weiss nicht, meine Kollegen kommen mit sowas zu recht.
kann natürlich sein, das die ein bisschen cleverer sind als du und deine Kollegen ;-)
aber bevor ich mir Gedanken über eine Progressbar mache, nutze ich die Arbeitszeit lieber um den Ablauf nochmal zu überarbeiten und zu beschleunigen, da haben dann alle mehr davon.
Gruß Daniel

Anzeige
AW: Progressbar in Code integrieren
23.07.2014 14:47:24
Oberschlumpf
wer hat denn "als du und deine Kollegen " erwähnt?
aber egal...wie war das mit dem cleverer als du?!?

AW: Progressbar in Code integrieren
23.07.2014 14:52:51
Daniel
wenn ich den Menschen, die mit meinen Makros, arbeiten erkläre, dass sie bei Wartezeit den Programmfortschritt am unteren Bildschirmrand ablesen können, verstehen sie das in der Regel und benötigen keine aufwendige Progressbar.
Gruß Daniel

AW: Progressbar in Code integrieren
23.07.2014 15:08:02
Oberschlumpf
und jedem neuen Kollegen immer wieder das Gleiche noch mal erklären, wenn es die "wissenden" Kollegen nicht weiter geben. Da find ich ne ProgressBar schöner + besser.
Aber ok, über Geschmack....usw
Ciao
Thorsten

Anzeige
AW: Progressbar in Code integrieren
23.07.2014 15:18:58
Daniel
naja, welche Anwendung ist schon komplett selbsterklärend, so dass man sie ohne erläuterung an einen neuling weiter geben kann?
aber vielleicht habe ich ja einfach nur das Glück, dass ich in einer Firma arbeite, die gross genug ist, das man den Menschen die Jobs geben kann, für die sie geeignet sind.
Wer nicht komplett blind durch die gegend läuft, dem fällt schon irgendwann auf, dass da am unteren Bildschirmrand was passiert.
ich sorge lieber dafür, dass ne Progressbar gar nicht erst notwendig wird, anstatt dass ich mir Gedanken darüber mache, wie ich Progressbar möglichst schön gestalte.
Gruß Daniel

Anzeige
AW: Progressbar in Code integrieren
23.07.2014 16:05:55
Oberschlumpf
is doch gar nich schwer, ne pb mit einzubauen
Ciao
Ich

AW: Progressbar in Code integrieren
23.07.2014 16:24:30
Daniel
schwer nicht, aber aufwendiger als ne Meldung in der Statuszeile und ohne realen Mehrwert.

AW: Progressbar in Code integrieren
23.07.2014 16:32:29
Oberschlumpf
imma diese schiggn Wörter oder Bürodialekt...realer Mehrwert...hehe
Ich finde, ein dynamischer Fortschrittshinweis, der einem sofort ins Auge sticht, hat einen viel höheren, realen Mehrwert...hehe, als etwas, dass man immer wieder erst mal suchen muss.
Ciao
Thorsten

AW: Progressbar in Code integrieren
23.07.2014 20:59:17
Daniel
da du ja die schiggn Wörter selber nutzt, worin besteht den der reale Mehrwert einer sofort sichtbaren Progressbar?
Gruß Daniel

Anzeige
AW: Progressbar in Code integrieren
23.07.2014 21:00:58
Oberschlumpf
die Antwort steht da doch schon
Ciao
Thorsten
ich benutz nur, weil ich mich ja anzupassen weiß :-D

AW: Progressbar in Code integrieren
23.07.2014 21:48:10
Daniel
da steht irgenden wie noch recht wenig, ausser dass du deine Kollegen für zu blind hälst, die Fortsschrittsanzeige von alleine zu finden ;-)
und was du benutzt, benutzt du, warum und wieso ist egal.
Gruß Daniel

AW: Progressbar in Code integrieren
23.07.2014 22:39:24
Oberschlumpf
genau, du hast recht - ich meine Ruhe...hab ich doch jetzt, oder?!
Ciao
Ich

AW: Progressbar in Code integrieren
23.07.2014 22:54:56
Daniel
naja nicht ganz, ela hat da noch ein paar Fragen, da solltest du ihr helfen.
Gruß Daniel

AW: Progressbar in Code integrieren
23.07.2014 22:55:20
ela
Hallo
also um der Diskussion entgegen zuwirken.
Die Statusbar habe ich bereits in meinen Code miteinbezogen. Da diese allerdigs nicht gut sichtbar ist würde ihc gerne zusätzlich noch eine progressbar miteineziehen.
Meine Datei habe ich in dem Beitrag zuvor verlinkt.
Hat da schon mal einer reingeschaut und kann mir helfen?
hier nochmal der link:

Die Datei https://www.herber.de/bbs/user/91676.xlsm wurde aus Datenschutzgründen gelöscht


vielen dank und
Viele Grüße
ela

22 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige