Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1148to1152
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

Fortschrittsbalken

Fortschrittsbalken
HockMock

Hallo liebe Forumgemeinde,
es ist mal wieder soweit: ich komme ohne eure Hilfe nicht weiter. Damit meine Fragen etwas einfacher verständlich sind anbei eine kleine Datei: https://www.herber.de/bbs/user/68788.zip
In meiner Datei (Blatt: Basisdaten) werden per click auf die beiden Buttons jeweils eine Prozedur ausgeführt. Das funktioniert zwar wunderbar, aber ich würde das ganze gerne noch etwas benutzerfreundlicher gestalten. daher meine Fragen:
1) Wie bekomme ich während der Verarbeitung einen Fortschrittsbalken angezeigt? Ich habe zwar bereits das Forum durchsucht und einiges gefunden, aber leider komme ich damit nicht so ganz klar.
2) Beim ausführen meines Codes sind entsprechende "Tabellenblattwechsel" enthalten. Ideal wäre wenn alles im Hintergrund ablaufen würde und der benutzer somit von dem Daten-Hin-und-Her-schaufeln gar nix' mitbekommt.
Ich würde mich freuen, wenn ihr mir hierzu weiterhelfen könntet.
Danke im voraus.
HockMock
AW: Fortschrittsbalken
25.03.2010 08:14:30
Hajo_Zi
Hallo Unbekannte(r),
zu 2 verzichte auf select.
Hinweise zu select usw.

AW: Fortschrittsbalken
25.03.2010 08:24:35
HockMock
Hallo Ha-Jo,
das hab ich schon probiert aber folgende Probleme:
a) im Makro "Histo_Gesamt" werden Histogramme erstellt. Hier hatte auf "activeSheet..." und somit auch "select" und anstelle dessen den vollen Pfad hinterlegt. Hier bin dann ständig auf einen fehler gelaufen. ich hab es auf die eingebettete Funktion "Histogramm" geschoben.
b) wie wäre hier die genaue Anweisung. Ich möchte in einem anderem Blatt Daten holen und in einem anderen Blatt (idealerweise ausgeblendet) reinschreiben. Auch hier habe ich's ohne slect probiert - leider aber ohne Erfolg.
Danke.
HockMock
Anzeige
AW: Fortschrittsbalken
25.03.2010 08:36:59
Hajo_Zi
Hallo Unbekannnte(r),
Du mußt die zelle komplett anggeben als mit Tabelle und Zellbezeichnung und falls andere Datei auch noch mit Dateiname.
Gruß Hajo
AW: Fortschrittsbalken
25.03.2010 09:01:36
HockMock
Hallo Hajo,
kannst du hier etwas konkreter werden? ich Hab's durchaus mit dem kompletten Pfad versucht - - - - Worksheets("Blattname").Range(Cells(12, x), Cells(13, x)).Copy
Leider klappt es in der Umsetzung aber dennoch nicht.
Danke,
ANdreas
AW: Fortschrittsbalken
25.03.2010 09:08:44
Hajo_Zi
Hallo Andreas,
VBA Gut da sollte Wissen vorhanden sein. Von Pfad habe ich nichts geschrieben, da die Datei ja wohl auf ist.
Ich schaue über das Internet nicht auf fremde Rechner, darum sehe ich Deine Versuche nicht. Ich habe noch keinen Grund gesehen eine Datei runterzuladen und da was zu suichen.
Gruß Hajo
Anzeige
Konkreter: Richtige Adressierung
25.03.2010 09:11:59
Renee
Hin Andreas,
Eine Adressierung wie:
Worksheets("Blattname").Range(Cells(12, x), Cells(13, x)).Copy

ist immer noch falsch, da die Cells() -Bestandteile ebenfalls richtig addressiert sein müssen.
Umständlich so:
Worksheets("Blattname").Range(Worksheets("Blattname").Cells(12, x),Worksheets("Blattname"). Cells(13, x)).Copy
Einfacher so:
With Worksheets("Blattname")
.Range(.Cells(12, x), .Cells(13, x)).Copy
End With

GreetZ Renée
AW: Konkreter: Richtige Adressierung
25.03.2010 09:23:48
HockMock
Hallo Renee,
danke das hat mir tatsächlich weitergeholfen. Aber leider bleibt auch hierbei mein Problem bei der Erstellung der Histos bestehen:
Sub testHisto_Gesamt()
'Erstellung Histogramm Gesamt
SendKeys "{ENTER}", True
Application.Wait Time + TimeSerial(0, 0, 1)
Application.SendKeys "{ENTER}", True
With Worksheets("Zwischenrechnung")
Application.Run "ATPVBAEN.XLA!Histogram", Range("HistGesamt"), _
.Range("b197"), .Range("c16:c195"), False, False, False
End With
End Sub
Auch der Tipp von Robert (screen.updateing = false) hilft hier nix!!!
Danke
HockMock
Anzeige
Dafür gibts auch keine Lösung,
25.03.2010 09:40:05
Renee
(die mir bekannt ist), Andreas
Die Steuerung wird hier vom Histogramm-Makros des AddIn's übernommen und auf diese hast du keinen Einfluss.
GreetZ Renée
AW: Dafür gibts auch keine Lösung,
25.03.2010 09:43:03
HockMock
Hallo Renee,
schade! Aber trotzdem danke. Zumindest ist ein Teilproblem beseitigt.
Grüße,
HockMock
zu 2) siehe..
25.03.2010 08:46:32
robert
hi,
schau dir mal
Application.ScreenUpdating in der hilfe an
gruß
robert
AW: zu 2) siehe..
25.03.2010 09:13:46
HockMock
Hallo Robert,
einfach und genial !! Zumindest für einen Teil meiner Probleme.
Leider funktioniert das aber nicht mit meinen Histogrammen:
siehe hier:
SendKeys "{ENTER}", True
Application.Wait Time + TimeSerial(0, 0, 1)
Application.SendKeys "{ENTER}", True
Application.Run "ATPVBAEN.XLA!Histogram", Range("HistGesamt"), _
ActiveSheet.Range("b197"), ActiveSheet.Range("c16:c195"), False, False, False
wenn ich hier application false ... true setze wird das einfach ignoriert.
Danke,
Hockmock
Anzeige
AW: Fortschrittsbalken
25.03.2010 09:54:00
HockMock
Hallo nochmals an alle,
vielen dank für die zahlreichen Antworten zu Punkt (2) - hat mir auf jeden Fall geholfen!
Kann mir vielleicht aber noch jemand bezüglich Punkt (1) "Integration Fortschrittbalken" weiterhelfen? Oder sollte ich besser einen neuen Beitrag posten?
@Hajo: bez. Einstufung meines VBA-Wissens bin ich für meine Fälle eigentlich immer ganz gut zurecht gekommen. Vielleicht ist "Gut" aber dennoch etwas hoch gegriffen. Ich Stufe mich somit herab auf "Anfänger"
Grüße,
Hockmock
AW: Fortschrittsbalken
25.03.2010 10:02:25
Hajo_Zi
Hallo Unbekannte(r),
schreibe doch mal was zu Deinem Programm für welche aktion soll ein Fortschrittsbalkken sein.
Falls Schleife schaue hier http://hajo-excel.de/chCounter3/getfile.php?id=118
Gruß Hajo
Anzeige
AW: Fortschrittsbalken
25.03.2010 11:23:44
HockMock
Hallo Hajo,
im Idealfall für zwei Prozeduren.
Nr. 1) Hier werden bei mir insgesamt rd. 50 Histogramme erstellt; dies ist natürlich sehr Zeitintensiv (rd. 1,5 Minuten)
Sub Histo_Gesamt()
Worksheets("Zwischenrechnung").Select
'Erstellung Histogramm Gesamt
SendKeys "{ENTER}", True
Application.Wait Time + TimeSerial(0, 0, 1)
Application.SendKeys "{ENTER}", True
Application.Run "ATPVBAEN.XLA!Histogram", Range("HistGesamt"), _
ActiveSheet.Range("b197"), ActiveSheet.Range("c16:c195"), False, False, False
'Erstellung Histogramm Beschaffung / Vertrieb
Application.Wait Time + TimeSerial(0, 0, 1)
Application.SendKeys "{ENTER}", True
Application.Run "ATPVBAEN.XLA!Histogram", Range("HistBeschVertr"), _
ActiveSheet.Range("g197"), ActiveSheet.Range("h16:h195"), False, False, False
'Erstellung Histogramm Beschaffung (EW)
Application.Wait Time + TimeSerial(0, 0, 1)
Application.SendKeys "{ENTER}", True
Application.Run "ATPVBAEN.XLA!Histogram", Range("HistBeschaffung"), _
ActiveSheet.Range("l197"), ActiveSheet.Range("m16:m195"), False, False, False
Worksheets("Basisdaten").Select
End Sub

Nr2) Hier werden mehrere Daten von einem in ein anderes Tabellenblatt übertragen
Sub Uebertrag_Historie()
Dim woche As Integer, AnzDurchläufe As Integer, x As Integer, y As Integer
Application.ScreenUpdating = False
Worksheets("Historie").Select
woche = Worksheets("Basisdaten").Range("Berichtswoche") + 3
x = 3
y = 3
For AnzDurchläufe = 1 To 46
Worksheets("Zwischenrechnung").Select
Worksheets("Zwischenrechnung").Range(Cells(12, x), Cells(13, x)).Copy
Worksheets("Historie").Select
Worksheets("Historie").Range(Cells(y, woche), Cells(y, woche)).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Worksheets("Zwischenrechnung").Select
Worksheets("Zwischenrechnung").Range(Cells(8, x), Cells(9, x)).Copy
y = y + 2
Worksheets("Historie").Select
Worksheets("Historie").Range(Cells(y, woche), Cells(y, woche)).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
x = x + 5
y = y + 2
Next AnzDurchläufe
Worksheets("Basisdaten").Select
Application.ScreenUpdating = True
End Sub

Würde mich freuen, wenn du mir helfen könntest!
Grüße,
HockMock
Anzeige
AW: Fortschrittsbalken
25.03.2010 11:35:43
Hajo_Zi
Hallo Unbekannte(r),
für den zweiten Teil könntest Du mein Beispiel fast unverändert benutzen, nur es ist bei Dir nur en Laufbalken.
Für den ersten Teil müßte man es anpassen, auch nur ein Balken und keine Schleife. Da würde ich vorschlagen dn Fortschrittsbalken entsprechend der Anzahl zu machen. Innerhalb der Erstellung würde sich der Fortschrittsbalken nicht ändern.
Mein Code in Dein Beispiel einzubauen ist sehr Zeitaufwendig.
Es muss ja eine Userform erstellt werden, dein Code muss aus diese UserForm gestartet werden und der Fortschritsbalken ist anzupassen.
Das ist mir Leider zu Zeitaufwendig.
Gruß Hajo
Anzeige
AW: Fortschrittsbalken
25.03.2010 12:27:49
HockMock
Hallo Hajo,
danke für deinen Tipp. Dein Beispiel werde ich natürlich versuchen umzusetzen.
Für den anderen Teil - danke ich dir natürlich auch. ich verstehe natürlich, dass du hier nicht viel Zeit in die Programmierung anderer Leute investieren kannst!
Vielleicht ist ja der Ansatz von Martin etwas für mich?
Grüße,
Andreas
AW: Fortschrittsbalken
25.03.2010 11:45:10
Martin
Hallo HockMock
Hätte hier noch einen anderen Lösungsansatz. Vielleicht etwas komisch aber es geht . . .
Hatte mal das gleiche Problem und habe es mit einem einfachen Lable gelöst, dass ich nach dem Application.wait einfach um einen Anteil breiter machte bis die gewünschte Breite gefüllt war. So wie ich dich verstanden habe willst du ja dies nur aus optischen Gründen und aus Userfreundlichen Gründen so anzeigen, damit man sieht, dass sich hier was ändert.
Schöne Grüsse aus der Schweiz.
Martin
Anzeige
AW: Fortschrittsbalken
25.03.2010 12:24:24
HockMock
Hallo Martin,
das hört sich im Prinzip gut an: was müsste ich dafür tun? wie müsste der Code dafür aussehen? Brauch ich dann auch ein Userform?
Danke
HockMock
Statt Fortschrittsbalken, Statusbar
25.03.2010 13:42:40
Renee
Hi Andreas,
Statt eines komplizierten (asynchronem) VBA-Code, schreib doch for jedem Histogramm-Aufruf
Application.StatusBar = "Histogramm 1 von 50"
Application.StatusBar = "Histogramm 2 von 50"
... etc.

Dann sieht der Benutzer in der Statuszeile von Excel, das sich was tut.
GreetZ Renée
AW: Statt Fortschrittsbalken, Statusbar
25.03.2010 14:31:43
HockMock
Hallo Renee,
das ist zumindest besser als gar nichts - und einfach ist es ebenfalls !!
Vielen dank für diesen Tipp.
Grüße,
HockMock
Anzeige
AW: Fortschrittsbalken
26.03.2010 00:56:57
Martin
Hallo HockMock
Ja ich habe dies bei einer Userform eingebaut gehabt. Einfache zwei Bezeichungsfelder gemacht. Das eine in grau und das andere in blau. Das graue in der Endlänge und das blaue habe ich klein angefangen. Mein Macro hatte viele Punkte zum abarbeiten, da aber die Excel-Formeln in der Tabelle zu langsam waren musste ich im Macro ein Application.wait einbauen. Immer nach dieser künstlichen Pause (1 Sec) habe ich den blauen Balken über die Breite etwas grösser werden lassen.
Meine Gedankengänge waren damals, dass der User sieht, dass sich etwas bewegt und das Excel noch arbeitet.
Hilft dir dies?
nun aber gute Nacht.
Martin

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige