Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
528to532
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
528to532
528to532
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Fortschrittanzeige oder Zähler bei Ersetzen
07.12.2004 20:03:21
Oliver
Hallo Helferinnen oder Helfer!
Und zwar habe ich ein kleines Problem! Es geht um folgendes:
Ich (wir auf der Arbeit) ein System zur Stromzählerferneinlesung. Dieses System erzeugt täglich eine Datei mit 96 1/4-h-Werten von ca. 30 Zählern. Zusätzlich bilde ich mit Excel auf dem gleichen Tabellenblatt zusätzliche Werte. Also zusammengenommen etwa 60 Spalten. Zu jeder Salte wird eine Summe oder ein Maximalwert ausgegeben. Zu erwähnen ist auch, dass das System die erzeugten Dateien automatisch im Verzeichnis und unter dem Namen
\\Ies-leit\Rohdaten\RWE\yyyymm\Netz_yyyymmdd.xls
abspeichert (yyyy = Jahreszahl; mm = Monatszahl, dd = Tageszahl)
Ich habe nun ein Programm zu einer Monatstabelle geschrieben, in der quasi "Blanko"-Verknüpfungen zu den einzelnen Tagesdateien sind.
(pro Tag werden 100 Werte von einer Tagesdatei in die Monatsdatei verknüpft, bei 30 Tagen snd das dann ca. 3000 Werte bzw. 3000 Verknüpfungen)
Man gibt als Benutzer per UserForm Monat und Jahr der zu erzeugenden Monatsdatei an, und das Programm aktualisiert rund 3000 Verknüpfungen in der neu zu erstellenden Monatsdatei. Da dieses Aktualisieren aber ca. 5 Minuten dauert, hätte ich gerne eine UserForm, in der mir angezeigt wird, wieviel Verknüpfungen ausgetauscht werden, und welche dann beim Ersetzen hochzählt
( 0...3000 von 3000 Verknüpfungen aktualisiert ). Auch schick wäre ne fortlaufende Statusanzeige.
Hier kommt der Quellcode der Prozedur Austauschen, mit der ich den Ersetzvorgang realisiert habe. Ich habe mal Kommentare drangeschrieben. Und es funktioniert auch. Aber die Optik halt. Sonst sitzt der spätere Benutzer 3 Minuten vorm PC und hat nix zu gucken :-)
'Start der Prozedur Austauschen:

Sub Austauschen()
'Initialisierung + Deklaration der Variablen vom Typ String:
Dim verknüpfung, datei4, datei5, datei6
'Speichere Text in datei4:
datei4 = "\\Ies-leit\rohdaten\RWE\"
'Speichere Text datei5:
datei5 = "\[Netz_"
'Speichere Text in datei6:
datei6 = "\\Ies-leit\rohdaten\RWE\yyyymm\[Netz_yyyymm"
'Addiere die Strings aus datei4, datum, datei5 & datum
'und speichere in verknüpfung:
verknüpfung = datei4 + datum + datei5 + datum
'Ünterdrückung von Bildschirmmeldungen:
Application.DisplayAlerts = False
'Aktiviere im neu gespeicherten Tabellenblatt das Arbeitsblatt Tabelle1:
Application.Worksheets("Tabelle1").Activate
'Bildschirmaktualisierung ausschalten:
Application.ScreenUpdating = False
'Einschalten der Statusbar:
Application.DisplayStatusBar = True
'Zeige "BITTE WARTEN" in Statusbar während des Ersetzens, Neu Berechnens und Speicherns:
Application.StatusBar = "BITTE WARTEN!"
'Ersetzen des in datei6 gespeicherten Strings durch den in verknüpfung gespeicherten
'Strings für das aktive Tabellenblatt Tabelle1:
Cells.Replace What:=datei6, Replacement:=verknüpfung, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
'Neu berechnen:
Calculate
'Speichern:
Application.ActiveWorkbook.Save
'Ausschalten der StatusBar:
Application.DisplayStatusBar = False
'Bildschirmakualisierung wieder einschalten:
Application.ScreenUpdating = True
'Ende der Prozedur:
End Sub

Ach, ich sollte noch erwähnen, dass datum modulglobal deklariert wurde, und z.B. im November den Wert 200411 beinhaltet
Die gesamte Verknüpfung in einer Zelle lautet z.B.:
='\\Ies-leit\rohdaten\RWE\yyyymm\[Netz_yyyymm01.xls]Tabelle1!'$O$3
Es wird also nur dieser Textstring:
"\\Ies-leit\rohdaten\RWE\yyyymm\[Netz_yyyymm" gegen diesen "\\Ies-leit\rohdaten\RWE\yyyymm\[Netz_200411" ausgetauscht
Ich habe auch schon ne Idee: Irgendwas mit derFind-Methode, die erst mal alle zu ersetzenden Verknüpfungen zählt. Den Wert in "i" schreibt, und bei der Replace-Methode wird dann einfach ne andere Variable hochgezählt!
Vielleicht versteht mich ja jemand und hilft mir dann:-)
Danke schonmal!!!!
Grüsse, Oliver

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

Betreff
Datum
Anwender
Anzeige
AW: Fortschrittanzeige oder Zähler bei Ersetzen
yps
hi Oliver,
wenn du vor dem ändern der verknüpfungen die berechnung abschaltest
Sheets("Tabelle1").EnableCalculation = False
dann wirst du wahrscheinlich gar keine wartezeiten haben
und nicht vergessen mit
Sheets("Tabelle1").EnableCalculation = True
die berechnung wieder einschalten
cu Micha
AW: Fortschrittanzeige oder Zähler bei Ersetzen
08.12.2004 06:44:46
Oliver
Hey Micha!
Sorry, aber dass ist ja nicht das Problem. Hatte vergessen, zu erwähnen, dass der ganze Kram (Tagesdateien) auf nem Server liegt. Und ich behaupte mal, dass das die Zeit schon verdoppelt. Aber das ist ja nicht so schlimm, dass das 3 Minuten dauert. Ich würde nur gerne ne Userform mit nem Zähler oder ner Fortschrittanzeige um den ganzen Kram bauen.
Meine Idee war ja mit der Find-Methode erstmal die Anzahl der Verknüpfungen bestimmen, Wert in Variable (ca. 3000) und dann mit nem Zähler jedes Replace zählen, und das ganze dann in ner Userform sichtbar machen. Ich muss auch noch erwähnen, dass meine Programmierkenntnisse eher aus dem Bereich prozedural stammen (sieht man vielleicht an meinem Spaghetti-Code:-)) Trotzdem erstmal danke!!!
Aber vielleicht hilft mir ja doch noch jemand!!!
Anzeige
AW: Fortschrittanzeige oder Zähler bei Ersetzen
P@ulchen
Hi Oliver,
ich würde die Daten nicht über Verknüpfungen in die Mappe holen, sondern per Makro die betreffenden Tagesdateien öffnen und die Werte direkt in die Monatsdatei übernehmen.
Ich hatte mir mal eine Beispieldatei mit verschiedenen Fortschrittsanzeigen erstellt und diese mal für Deine Belange erweitert (Button "Oliver").
Nach Auswahl des Monats wird die Anzahl der Tage des gewählten Monats errechnet.
Danach werden in meinem Beispiel Tagesspalten angelegt und je Tag 100 Zellen eingefärbt.
Der Fortschritt wird durch 2 Balken angezeigt.
Vielleicht hilft es Dir ja etwas weiter : https://www.herber.de/bbs/user/14501.xls
Gruß aus Leipzig
P@ulchen
Das Forum lebt auch von den Rückmeldungen !
Anzeige
AW: Fortschrittanzeige oder Zähler bei Ersetzen
08.12.2004 19:31:59
Oliver
Hallo Paulchen!
Erstmal danke für die Mühe! Ich denke, da kann ich was mit anfangen! Mit diesem "Werte holen", da hatte ich ursprünglich auch schon dran gedacht. Das ist das gleiche Prinzip, wie sich die Tagesdateien erstellen. Die Makro hinter der Tagesdatei bezieht ihre Werte über ein Archiv (rel. große Textdatei) Nur ist es so, dass Cheffe möchte, dass, wenn er in einer der 365 Tagesdateien einen einzigen Wert ändert, dass sich dann automatisch die entsprechende Monatsdatei und die eben endlich fertiggewordene Jahresdatei ändert. Und wenn ich die Werte nur reinschreiben lasse, ohne sie mit der Tagesdatei zu verknüpfen, müsste er sich bei jeder Änderung die Monatsdatei neu erstellen, und das ist ihm zu aufwendig. Er will einmal im Monat aufs Knöpfchen drücken , und gut is:-)
Trotzdem noch mal vielen Dank für die Progressbar!!! Ich habe gestern 4h versucht, ihr Leben einzuhauchen, das einzige was kam, war Laufzeitfehler!!!!!
Werds morgen mal auf meine Sache umbauen!!!
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige