Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
644to648
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
644to648
644to648
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro sehr langsam

Makro sehr langsam
02.08.2005 10:20:22
Joerg
Hallo zusammen,
habe mit Hilfe dieses Forums das folgende Makro geschrieben, funktioniert auch einwandfrei - vielen dank dafür, aber leider ist es sehr sehr langsam, so das das speichern bis zu 1min dauert - woran kann das liegen, was kann ich besser machen?
Vielen Dank, Mfg, Joerg

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim wks As Worksheet
For Each wks In ThisWorkbook.Worksheets
wks.PageSetup.RightFooter = "&""Verdana""&06 Zuletzt gespeichert " & Chr(10) & CStr(Format(Now(), "DD.MM.YYYY")) & " | " & CStr(Format(Now(), "HH:MM")) & " | " & ThisWorkbook.BuiltinDocumentProperties(7)
wks.PageSetup.CenterFooter = "&""Verdana"" &06 "
wks.PageSetup.LeftFooter = "&""Verdana""&06&F" & Chr(10) & "&A"
wks.PageSetup.LeftHeader = "&""Verdana""&06 Firma X | DT LO | vett03"
wks.PageSetup.CenterHeader = "&""Verdana"" &06 "
wks.PageSetup.RightHeader = "&""Verdana""&06 Seite &p" & " von " & "&N"
Next wks
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro sehr langsam
02.08.2005 11:23:30
Galenzo
jipp .PageSetup ist absolut laaaaaangsam...
eine ganz flinke Variante ist die Verwendung eines Excel4Makro-Aufrufes
nach dem Schema: Application.ExecuteExcel4Macro pgSetup
Viel Erfolg!
AW: Makro sehr langsam
04.08.2005 08:38:59
Joerg
Vielen Dank für die schnelle Antwort, leider kann ich nicht sehr viel damit anfangen - bin noch ziemlicher VBA Laie.
Könntest Du die obige Prozedur entsprechend anpassen, so dass ich sie direkt verwenden kann, oder zumindest ein Beispiel angeben wie ich mit dem Excel4Makro die Fußzeile ändere.
Vielen Dank
Joerg
AW: Excel4Makro PAGE.SETUP
04.08.2005 09:52:05
Galenzo
OK - da habe ich mal etwas gebastelt:
(ist etwas "tricky" - deshalb schön auf die Anführungszeichen achten! - am besten Kopieren/Einfügen)

Dim pgSetup$, foot$, head$
Dim wks As Worksheet

Application.ScreenUpdating = False

For Each wks In Worksheets

' Header-String zusammensetzen
head = """" & _
"&L&""""Verdana""""&06" & "Firma X | DT LO | vett03" & _
"&C&""""Verdana""""&06" & " " & _
"&R&""""Verdana""""&06" & "Seite " & "&P" & " von " & "&N" & _
""""
' Footer basteln
foot = """" & _
"&L&""""Verdana""""&06&F" & Chr(10) & "&A" & _
"&C&""""Verdana""""&06" & " " & _
"&R&""""Verdana""""&06" & "Zuletzt gespeichert " & Chr(10) & CStr(Format(Now(), "DD.MM.YYYY")) & " | " & CStr(Format(Now(), "HH:MM")) & " | " & ThisWorkbook.BuiltinDocumentProperties(7) & _
""""

' Makrosting zusammensetzen
pgSetup = "PAGE.SETUP(" & head & "," & foot & ")"

' Excel4Makro ausführen
Application.ExecuteExcel4Macro pgSetup

Next

Application.ScreenUpdating = True

Funktioniert's?
Anzeige
AW: Makro sehr langsam
04.08.2005 10:50:37
Joerg
Wow, das ging ja schnell - VIELEN DANK, leider funktioniert es noch nicht ganz richtig, beim Ausführen wird immer nur der Reiter der gerade aktuell ausgewählt ist upgedatet, die übrigen Kopf-/Fusszeilen bleiben unverändert ...
Habe statt "next" mal "next wks" eingefügt, jetzt werden alle Seiten upgedatet, aber nicht mehr richtig, jede Kopf-/Fusszeile ist anders mit kryptischen Inhalten ..
Habe die Prozedur im VBA Editor in "Diese Arbeitsmappe" eingefügt - ist das richtig ?!
'''''''''''''''''

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim pgSetup$, foot$, head$
Dim wks As Worksheet
Application.ScreenUpdating = False
For Each wks In Worksheets
' Header-String zusammensetzen
head = """" & _
"&L&""""Verdana""""&06" & "Firma X | DT LO | vett03" & _
"&C&""""Verdana""""&06" & " " & _
"&R&""""Verdana""""&06" & "Seite " & "&P" & " von " & "&N" & _
' Footer basteln
foot = """" & _
"&L&""""Verdana""""&06&F" & Chr(10) & "&A" & _
"&C&""""Verdana""""&06" & " " & _
"&R&""""Verdana""""&06" & "Zuletzt gespeichert " & Chr(10) & CStr(Format(Now(), "DD.MM.YYYY")) & " | " & CStr(Format(Now(), "HH:MM")) & " | " & ThisWorkbook.BuiltinDocumentProperties(7) & _
' Makrosting zusammensetzen
pgSetup = "PAGE.SETUP(" & head & "," & foot & ")"
' Excel4Makro ausführen
Application.ExecuteExcel4Macro pgSetup
Next wks
Application.ScreenUpdating = True
End Sub

''''''''''''''''''''''''''''''''''
Anzeige
AW: Makro sehr langsam
04.08.2005 13:13:42
Galenzo
hmm..
dann mal 2 Änderungen:
For Each wks In Worksheets
wks.Activate
' Header-String zusammensetzen
head = """" & _
' Excel4Makro ausführen
Application.ExecuteExcel4Macro pgSetup
Next
Application.ScreenUpdating = True
Ich verwende sonst keine Excel4Makros - außer zur Seiteneinrichtung.
Ich nehme daher an, daß das jeweilige Blatt aktiviert sein muß.
Klappt's jetzt?
AW: Makro sehr langsam
04.08.2005 13:29:31
Joerg
JA super, es geht VIELEN DANK, jetzt werden auch alle Reiter upgedatet ...
Ein kleiner Fehler war noch enthalten -
"&R&""""Verdana""""&06" & "Zuletzt gespeichert " & Chr(10) & CStr(Format(Now(), "DD.MM.YYYY")) & " | " & CStr(Format(Now(), "HH:MM")) & " | " & ThisWorkbook.BuiltinDocumentProperties(7) & _
""""
die Ausführungszeichen """" ganz am Ende müssen aus irgendeinem Grund in der gleichen Zeile stehen ...
#################

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim pgSetup$, foot$, head$
Dim wks As Worksheet
Application.ScreenUpdating = False
For Each wks In Worksheets
wks.Activate
' Header-String zusammensetzen
head = """" & _
"&L&""""Verdana""""&06" & "arvato distribution | DT LO | vett03" & _
"&C&""""Verdana""""&06" & " " & _
"&R&""""Verdana""""&06" & "Seite " & "&P" & " von " & "&N" & _
' Footer basteln
foot = """" & _
"&L&""""Verdana""""&06&F" & Chr(10) & "&A" & _
"&C&""""Verdana""""&06" & " " & _
"&R&""""Verdana""""&06" & "Zuletzt gespeichert " & Chr(10) & CStr(Format(Now(), "DD.MM.YYYY")) & " | " & CStr(Format(Now(), "HH:MM")) & " | " & ThisWorkbook.BuiltinDocumentProperties(7) & """"
' Makrosting zusammensetzen
pgSetup = "PAGE.SETUP(" & head & "," & foot & ")"
' Excel4Makro ausführen
Application.ExecuteExcel4Macro pgSetup
Next
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Makro nicht mehr langsam...
05.08.2005 09:37:36
Galenzo
eigentlich nicht - du darfst bloß nicht das Leerzeichen zwischen & und _ (am Zeilenende) vergessen: ....BuiltinDocumentProperties(7) & _

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige