| Autor |
Nachricht |
RKausG
Im Profil kannst Du frei den Rang ändern
Verfasst am: 21. Apr 2009, 10:48 Rufname: Rainer
|
|
| Version: Office 2007 |
|
Hallo,
nutze die Funktion
| Code: | Function Anzahl_Druckseiten()
If Val(Application.Version) >= 12 Then
Anzahl_Druckseiten = Application.Caller.Parent.PageSetup.Pages.Count
Else
Anzahl_Druckseiten = Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")
End If
End Function | von Thomas ( http://www.office-loesung.de/ftopic299617_0_0_asc.php&highlight=anzahldruckseiten ).
Da Excel diese wohl mit jedem Eintrag durchführt braucht es recht lange, bis eine Eingabe beendet ist.
Gibt es eine Möglichkeit, dass die Formel nur mit z. B. meinem Makro [Drucken] kurz ausgeführt und gleich wieder beendet wird.
Gruß und vielen Dank im Voraus
Rainer
|
|
RKausG
Im Profil kannst Du frei den Rang ändern
Verfasst am: 21. Apr 2009, 17:40 Rufname: Rainer
|
| |
| Version: Office 2007 |
|
ups,
habe ich das jetzt versehentlich in die Rubrik Formeln geschrieben?
Kann das in VBA verschoben werden?
Oder kann mir hier jemand helfen?
Gruß Rainer
|
|
Thomas Ramel
Microsoft Excel-MVP

Verfasst am: 22. Apr 2009, 06:31 Rufname:
Wohnort: Riken CH
|
|
| Version: Office 2007 |
|
Grüezi Rainer
Hmmmm, eigentlich wird die Formel nur beim Eintragen in eine Zelle aktualisiert - oder später wenn sie mit F2+Return neu eingetragen wird.
Eingabenoder andere Berechnungen sollten eigentlich keine Neuberechnung auslösen wenn die Funktion genau so wie Du sie hier genannt hast im VBA-Modul steht.
Aber alternativ kannst Du natürlich das Ganze einfach vor dem Drucken ausführen lassen, indem Du den Code nicht als Funktion sondern im BeforePrint()-Ereignis ausführen lässt.
Dann musst Du allerdings jedesmal bestimmen in welche Zelle(n) die Seitenzahl geschrieben werden soll. Wenn es mehrere Druckseiten gibt, musst Du dann jede Zelle so angeben:
| Code: | Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Val(Application.Version) >= 12 Then
With Worksheets("Tabelle1")
.Range("F30").Value = .PageSetup.Pages.Count
End With
Else
With Worksheets("Tabelle1")
.Range("F30").Value = Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")
End With
End If
End Sub |
Mein eVermutung ist jedoch, dass es nicht diese Funktion ist, welche die Eingabe derart 'verlangsamt'.
Verwendest Du viele Matrix-Funktionen in der Mappe drin?
Kannst Du eine Demo-Mappe an einen Beitrag anhängen, damit wir die Sache direkt ansehen können?
_________________ Mit freundlichen Grüssen
Thomas Ramel
[Vista Ultimate SP-1 / xl2007 SP-2]
|
|
RKausG
Im Profil kannst Du frei den Rang ändern
Verfasst am: 22. Apr 2009, 11:45 Rufname: Rainer
|
|
| Version: Office 2007 |
|
Hallo Thomas,
muss definitiv an der Funktion liegen, da ich mit ' die Funktion ausgeschaltet habe.
Brauchte dann nicht einmal eine Stoppuhr um den Unterschied zu bemerken.
| Code: | 'Function Anzahl_Druckseiten()
' If Val(Application.Version) >= 12 Then
' Anzahl_Druckseiten = Application.Caller.Parent.PageSetup.Pages.Count
' Else
' Anzahl_Druckseiten = Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")
' End If
'End Function | Ergänzung der Zelle stellt sich vermutlich einfach dar, da in jedem ExcelSheet immer die gleiche Zelle für die Druckausgabe verwendet wird.
Gruß Rainer
|
|
Elvis_the_King
Im Profil kannst Du frei den Rang ändern

Verfasst am: 22. Apr 2009, 12:06 Rufname:
|
| |
| Version: Office 2007 |
|
Hi Rainer,
die Verwendung von PageSetup an und Pfirsich ist recht inperformant, insbesondere dann, wenn man einen Netzwerkdrucker als Standarddrucker hinterlegt hat.
Man kann gewisse Erfolge damit erzielen, den Standarddrucker vor Verwendung dieses Objektes auf einen lokalen Drucker o.ä. umzuswitchen und dies nach den gewünschten Änderungen am PageSetup wieder rückgängig zu machen. Näheres siehe u.a. hier:
http://clever-forum.de/read.php?11,56531,56531
HTH,
Eric
|
|
Thomas Ramel
Microsoft Excel-MVP

Verfasst am: 22. Apr 2009, 13:30 Rufname:
Wohnort: Riken CH
|
|
| Version: Office 2007 |
|
Grüezi Rainer
Ja, ich habe die Datei erhalten - Du hast dort jeweils +(0*JETZT()) angehängt.
Das bewirkt, dass die Formel bei jeder Neuberechnung ebenfalls neu berechent wird.
Daher würde ich auf die BeforePrint()-Variante umsteigen und die Seitenzahlen dann nur einmal vor dem Drucken oder der Seitenansicht einfügen und aktualisieren lassen.
_________________ Mit freundlichen Grüssen
Thomas Ramel
[Vista Ultimate SP-1 / xl2007 SP-2]
|
|
RKausG
Im Profil kannst Du frei den Rang ändern
Verfasst am: 22. Apr 2009, 14:38 Rufname: Rainer
|
|
| Version: Office 2007 |
|
Hallo Eric,
hallo Thomas,
danke für die Info's werde mir die für mich praktible rausfinden.
Gruß Rainer
@Thomas
hast Du den Button auf dem WorkSheet "eMail" auch mal testen können und als Fehlermeldung "Überlauf" bekommen?
Wundert mich, da genau die selben Codezeilen im einzelnen ExcelSheet ohne Probleme laufen.
|
|
RKausG
Im Profil kannst Du frei den Rang ändern
Verfasst am: 22. Apr 2009, 16:54 Rufname: Rainer
|
|
| Version: Office 2007 |
|
Hallo,
nachdem nun feststeht, dass es die in manchen Arbeitsblättern benutzte Ergänzung "+(0*JETZT())" ist und die Verwendung von PageSetup
| Elvis_the_King - 22. Apr 2009, 12:06 hat folgendes geschrieben: | ...
an und Pfirsich ist recht inperformant, insbesondere dann, wenn man einen Netzwerkdrucker als Standarddrucker hinterlegt hat. | wohl nicht ideal ist kam mir ein Gedanke.
Könnte ich nicht einfach in den Arbeitsblättern in den es Notwendig ist per Makro einfach vor dem Druck in den Zellen in denen die Zählfunktion ist "+(0*JETZT())" eintragen und vor Beendigung der Schleife wieder entfernen?
Werde es bei Gelegenheit so testen.
Falls jemand weiß ob das was bringt würde es mich freuen ein Feedback zu bekommen bevor ich mich an die Arbeit mache.
Gruß Rainer
|
|
Thomas Ramel
Microsoft Excel-MVP

Verfasst am: 22. Apr 2009, 17:04 Rufname:
Wohnort: Riken CH
|
|
| Version: Office 2007 |
|
Grüezi Rainer
Ja, das ist wohl eine Möglichkeit - eine andere Idee wäre, alle Zellen welche die Funktion enthalten gemeinsam zu markieren und dann diesen Bereichsnamen neu zu berechnen oder darin die Formel einmalig neu einzutragen (per VBA).
Ich müsste mir erst einen Überblick verschaffen, wo überall die Funktion eingesetzt worden ist - kannst Du mir da bitte einige Hinweise über die Blätter und Zellen geben?
_________________ Mit freundlichen Grüssen
Thomas Ramel
[Vista Ultimate SP-1 / xl2007 SP-2]
|
|
Nepumuk
VB / VBA Programmierer

Verfasst am: 22. Apr 2009, 17:12 Rufname: Max
Wohnort: Dusseldoof
|
|
| Version: Office 2007 |
|
Hallo zusammen,
ich mach das so:
In einer Zelle der Mappe steht eine 1 oder eine 0 (kann natürlich auch per Makro gesetzt werden). Mit einer Wenn-Formel in der ich diese Zelle abfrage, wird die Funktion berechnet oder nicht.
_________________ De fontibus non est disputandum
Gruß
Nepumuk
|
|
Thomas Ramel
Microsoft Excel-MVP

Verfasst am: 22. Apr 2009, 17:32 Rufname:
Wohnort: Riken CH
|
|
| Version: Office 2007 |
|
Grüezi Nepumuk
Danke fürs Niedermähen der Bäume, nun wird der Wald wieder sichtbar
_________________ Mit freundlichen Grüssen
Thomas Ramel
[Vista Ultimate SP-1 / xl2007 SP-2]
|
|
RKausG
Im Profil kannst Du frei den Rang ändern
Verfasst am: 23. Apr 2009, 08:10 Rufname: Rainer
|
|
| Version: Office 2007 |
|
Hallo Thomas,
hallo Nepumuk,
da ich für "Seitenzahl" schon eine Bedingung auf B1 (Druck WAHR/FALSCH) habe müsste ich für "Gesamtanzahl" ja dann auch einfach nur eine Bedingung anfügen.
Gruß Rainer
|
|
RKausG
Im Profil kannst Du frei den Rang ändern
Verfasst am: 23. Apr 2009, 10:39 Rufname: Rainer
|
| |
| Version: Office 2007 |
|
Hallo Thomas,
hallo Nepumuk,
habe die Anregung von "Nepumuk" umgesetzt und mir ein Kontrollkästchen "Seiten neu zählen" gesetzt.
Ist nun merklich besser.
Danke für Eure Hilfe.
Gruß Rainer
|
|
| Verwandte Themen |
| Forum / Themen |
Antworten |
Autor |
Aufrufe |
Letzter Beitrag |
 |
Excel VBA (Makros): Bitte Hilfe bei verschachtelter wenn dann Funktion in excel |
1 |
katinka361 |
105 |
16. Feb 2010, 23:10 Jürgen_H  |
 |
Excel Formeln: Sortierung von Spalten mit einer Wenn dann Funktion |
1 |
schiwo |
110 |
05. Jan 2010, 00:08 Janni 07  |
 |
Excel Formeln: excel matrix funktion |
6 |
chaaali |
541 |
03. Dez 2009, 18:45 ransi  |
 |
Excel Formeln: SUMMEWENN mit Jahr() Funktion als Kriterium |
2 |
isnetleichtfürmi |
114 |
22. Nov 2009, 14:57 isentleichtfürmi  |
 |
Excel Formeln: SVERWEIS mit WENN Funktion in den SVERWEIS Zeilen |
5 |
wheataster |
4988 |
19. Jan 2009, 12:44 keilers2k  |
 |
Excel Formeln: Funktion von Linie in Diagramm ausgeben lassen |
1 |
Catho |
723 |
21. Dez 2008, 20:10 fastmov  |
 |
Excel VBA (Makros): Sub Aufrufen |
11 |
Vaiki |
312 |
06. Aug 2008, 10:51 Gast  |
 |
Excel Hilfe: *T*Zählenwenn Funktion mit ausgeblendeten Zeilen |
13 |
Fragemaul |
426 |
29. Jul 2008, 23:00 Gast  |
 |
Excel Formeln: Autoberechung ausschalten |
3 |
messiah_net |
105 |
25. Jul 2008, 14:29 < Peter >  |
 |
Excel Formeln: Indirekt funktion und Zahlenformat |
3 |
hollekeeper |
836 |
10. Jan 2008, 17:37 hollekeeper  |
 |
Excel VBA (Makros): CInt und Val Funktion ohne Erfolg |
2 |
power-tower |
1130 |
12. Okt 2007, 11:35 power-tower  |
 |
Excel Formeln: Funktion Links bis zu einem bestimmten Zeichen ??? |
8 |
Spargel |
8876 |
04. Okt 2007, 18:01 urs  |
| |