Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

EXCEL 2010 VBA Fusszeile erstellen

Frage Microsoft Microsoft Office

Mitglied: Meierjo

Meierjo (Level 2) - Jetzt verbinden

21.11.2013, aktualisiert 11:25 Uhr, 9243 Aufrufe, 9 Kommentare, 1 Danke

Hallo zusammen

mittels folgendem Code-Schnipsel erstelle ich per VBA eine Fusszeile

With ActiveSheet.PageSetup
'so lauten die Zeilen, wenn Application.PrintCommunication = off
.LeftFooter = "&A"
.CenterFooter = "Seite &P von &N"
.RightFooter = "&F"
.LeftMargin = Application.InchesToPoints(0.19685)
.RightMargin = Application.InchesToPoints(0.19685)
.TopMargin = Application.InchesToPoints(0.19685)
.BottomMargin = Application.InchesToPoints(0.31496)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
.Orientation = xlLandscape
End With

Soweit kein Problem.

Nun hat ja aber Excel ein Problem mit der Geschwindigkeit, wenn in VBA Fusszeilen programmiert werden.

Wenn ich vor dem PageSetup
Application.PrintCommunication = False und nach dem PageSetup wieder auf True zurückstelle, läuft der Code wesentlich schneller (ca Faktor 10 schneller)

Siehe http://www.xing.com/net/vbatreff/office-2007-2010-vba-657492/druckenvor ...

Problem ist nun, dass die Befehle anders heissen müssen:
'so lauten die Zeilen, wenn Application.PrintCommunication = on
.LeftFooter = "&B"
.CenterFooter = "Seite &S von &A"
.RightFooter = "&N"

Dies wäre ja noch zu umgehen, aber wenn ich links, zentrisch und rechts gleichzeitig eine Fusszeile eingeben will, überschreibt er mir die Fusszeile mit irgendwelchen Werten, die ich nicht nachvollziehen kann.

zB links &R, in der mitte Seite 1 von, und rechts bleibt leer

Links, zentrisch oder rechts einzeln funktionieren

Kann jemand diesen Fehler von Excel bestätigen? Gibt's da eine Lösung dafür?

Danke und gruss meierjo
Mitglied: colinardo
21.11.2013, aktualisiert um 13:30 Uhr
Hallo Meierjo,
sorry deine Beschreibung ist etwas wirr,
Zitat von Meierjo:
Problem ist nun, dass die Befehle anders heissen müssen:
'so lauten die Zeilen, wenn Application.PrintCommunication = on
.LeftFooter = "&B"
.CenterFooter = "Seite &S von &A"
.RightFooter = "&N"
verstehe nicht was du mit diesen Fußzeilen-Codes erreichen willst:
&B = Turns bold printing on or off. (Willst du eine vorhandene Fußzeile fett formatieren ?)
&S = Turns strikethrough printing on or off.
&A = Prints the name of the workbook tab.

Mit deinen angegebenen Codes sähe deine Fußzeile bspw. so komisch aus:
Links Mitte Rechts
Seite von Tabelle1 10
Siehe dazu: http://msdn.microsoft.com/en-us/library/office/ff822794.aspx

Dies wäre ja noch zu umgehen,
Was willst du umgehen ???

aber wenn ich links, zentrisch und rechts gleichzeitig eine Fusszeile eingeben will,
überschreibt er mir die Fusszeile mit irgendwelchen Werten, die ich nicht nachvollziehen kann.
Kann jemand diesen Fehler von Excel bestätigen?
Kann ich hier auf mehreren Office 2010 Systemen nicht nachvollziehen

Grüße Uwe
Bitte warten ..
Mitglied: Meierjo
21.11.2013, aktualisiert um 14:21 Uhr
Hallo Uwe

Habe zum besseren Verständnis mal eine Beispiel-Mappe auf unseren FTP hochgeladen:
ftp://beispiel:Uze9ybene@ftp.heggli-gubler.ch

Dort sind 20 Tabelle drin, die mit der Fusszeile versehen werden sollen.
Werden im Makro die beiden Zeilen
'Application.PrintCommunication = False und
'Application.PrintCommunication = True auskommentiert, werden die Fusszeilen korrekt erstellt.
Links der Tabellen-Name
mittig :Seite 1 von 1
rechts der Arbeitsmappen-Name

Allerdings ist die Laufzeit für dieses kleine Makro bei meinen PC ~28 Sec, was zu lange ist.

Also habe ich laut: http://www.xing.com/net/vbatreff/office-2007-2010-vba-657492/druckenvor ... am anfange des Codes die Zeile 'Application.PrintCommunication = False eingegeben, was den Code wirklich sagenhaft beschleunigt.
Allerdings stimmt dann die Fusszeilen-Formatierung nicht mehr. Mir kommt es so vor, als ob bei der schnelleren Variante die Formatcodes für manuelle Eingabe verwendet werden müssen.

http://www.at-exceltraining.de/index.php/fragen-a-anworten-zu-excel/47- ...

Ich hoffe, meine Beschreibung ist nun verständlicher.

Gruss meierjo
Bitte warten ..
Mitglied: colinardo
21.11.2013, aktualisiert um 14:56 Uhr
Ich hoffe, meine Beschreibung ist nun verständlicher.
alles klar, das du das in einer Schleife verwendest hatte mir gefehlt ..
Eine wirkliche Lösung dafür gibt es nicht, aber anscheinend soll dieser Fehler nur bei den Kopf- und Fußzeilen auftreten.
D.h. du könntest mal versuchen nur für die Eigenschaften der Footer PrintComunication einzuschalten und für alle anderen Eigenschaften auszuschalten, vielleicht verringert sich dann die benötigte Zeit auf deinem Rechner. Hier geht's in unter 1 Sekunde...

01.
With ActiveSheet.PageSetup 
02.
 
03.
     Application.PrintCommunication = False 
04.
    .LeftMargin = Application.InchesToPoints(0.19685) 
05.
    .RightMargin = Application.InchesToPoints(0.19685) 
06.
    .TopMargin = Application.InchesToPoints(0.19685) 
07.
    .BottomMargin = Application.InchesToPoints(0.31496) 
08.
    .HeaderMargin = Application.InchesToPoints(0) 
09.
    .FooterMargin = Application.InchesToPoints(0) 
10.
    .Orientation = xlLandscape 
11.
      
12.
     Application.PrintCommunication = True 
13.
    .LeftFooter = "&A" 
14.
    .CenterFooter = "Seite &P von &N" 
15.
    .RightFooter = "&F" 
16.
End With
Grüße Uwe
Bitte warten ..
Mitglied: colinardo
21.11.2013, aktualisiert um 15:08 Uhr
Ich würde außerdem die Schleife mal anders schreiben, damit nicht jedes Sheet "manuell" selektiert wird:

01.
Sub Fusszeile() 
02.
    Dim StartZeit, EndZeit, Laufzeit As Date 
03.
    Dim i% 
04.
    StartZeit = Now 
05.
    For i = 1 To Worksheets.Count 
06.
        Application.PrintCommunication = False 
07.
        With Worksheets(i).PageSetup 
08.
            .LeftMargin = Application.InchesToPoints(0.19685) 
09.
            .RightMargin = Application.InchesToPoints(0.19685) 
10.
            .TopMargin = Application.InchesToPoints(0.19685) 
11.
            .BottomMargin = Application.InchesToPoints(0.31496) 
12.
            .HeaderMargin = Application.InchesToPoints(0) 
13.
            .FooterMargin = Application.InchesToPoints(0) 
14.
            .Orientation = xlLandscape 
15.
 
16.
            Application.PrintCommunication = True 
17.
            .LeftFooter = "&A" 
18.
            .CenterFooter = "Seite &P von &N" 
19.
            .RightFooter = "&F" 
20.
        End With 
21.
    Next i 
22.
     
23.
    EndZeit = Now 
24.
    Laufzeit = EndZeit - StartZeit 
25.
    MsgBox "Bearbeitunsgszeit: " & Laufzeit, vbOKOnly 
26.
End Sub
Bitte warten ..
Mitglied: Meierjo
21.11.2013 um 15:31 Uhr
Hallo Uwe

Ja, diese Version läuft bei mir auch unter 1 Sekunde. Aber wenn Application.PrintCommunication = False auskommentiert wird, dann dauerts auch bei dir länger, oder??

Gruss Meierjo
Bitte warten ..
Mitglied: colinardo
21.11.2013, aktualisiert um 15:34 Uhr
Zitat von Meierjo:
Ja, diese Version läuft bei mir auch unter 1 Sekunde. Aber wenn Application.PrintCommunication = False auskommentiert wird,
dann dauerts auch bei dir länger, oder??
nö. (Core i7 860 2,8GHz 4 Kern 8GB Ram, Win7x64)
denke das liegt aber zusätzlich am verwendeten Drucker etc.
Bitte warten ..
Mitglied: Meierjo
21.11.2013 um 15:38 Uhr
Hallo

Ok, bei mir ist ein Netzwerkdrucker als Default hinterlegt. Kann das was damit zu tun haben?

Werde deine Versionen mal in den fertigen Code einbauen, und dir berichten, was Sache ist.

Danke dir vorerst mal.

Gruss meierjo
Bitte warten ..
Mitglied: colinardo
21.11.2013 um 15:42 Uhr
Zitat von Meierjo:
Ok, bei mir ist ein Netzwerkdrucker als Default hinterlegt. Kann das was damit zu tun haben?
Oh ja, mach mal testweise einen lokalen zum Standarddrucker...
Bitte warten ..
Mitglied: Meierjo
21.11.2013 um 15:51 Uhr
Hallo

Ok, mit Standrard-Drucker rennt das wie der Teufel. Auf sowas wäre ich nie gekommen.

Ja, man lernt immer wieder dazu.

Danke dir vielmal für deine Hilfe.

Gruss meierjo
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Microsoft Office
gelöst Verschieben von Zellinformation in andere Spalte (per VBA) excel 2010 (5)

Frage von thomas1972 zum Thema Microsoft Office ...

Microsoft Office
gelöst Excel 2010 Zellen mit bestimmten Inhalt mit Makro formartierten (5)

Frage von packmann2016 zum Thema Microsoft Office ...

Microsoft Office
Excel 2010 - Microsoft Excel kann die Daten nicht kopieren (4)

Frage von EDV-Oellerking zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...