Top-Themen

Aktuelle Themen (A bis Z)

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, 10633 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 ..
Ähnliche Inhalte
VB for Applications
Excel - VBA - Fusszeile Text und Grafik
gelöst Frage von JuckieVB for Applications1 Kommentar

Guten Morgen an alle, in Excel gibt es ja die Möglichkeit, die Fußzeile per VBA zu "gestalten". Die Fußzeile ...

VB for Applications
Fusszeile mit PageSetup mit VBA in Excel Makro funktioniert nicht?
Frage von HerrHartVB for Applications5 Kommentare

Ich habe eine Fusszeile mit dem Macro Recorder unter Excel 2013 aufgenommen: With ActiveSheet.PageSetup .LeftHeader = "" .CenterHeader = ...

Microsoft Office
Excel 2010 mit VBA sortieren ?
gelöst Frage von dressaMicrosoft Office4 Kommentare

Hallo miteinander, Ich habe die Aufgabe mit Excel einen Dateiordner auszulesen und diese in Excel nach 2 Kriterien in ...

Microsoft Office
EXCEL IF Bedingung in VBA erstellen
Frage von user2k14Microsoft Office8 Kommentare

Hallo Zusammen, Wie kann ich mehrere If Bedingungen in VBA abbilden und diese dann durch einen Button in Excel ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 1 TagApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 1 TagWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 1 TagWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement16 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...