Domino 9 und frühere Versionen > ND8: Entwicklung
Druckbereich in Excel wird nicht mehr erkannt
v_haderer:
--- Zitat von: Peter Klett am 12.08.14 - 08:28:02 ---Hast Du schon einmal versucht, den Druckbereich im Script festzulegen?
--- Ende Zitat ---
hat testweise funktioniert:
ActiveSheet.PageSetup.PrintArea = "$B$4:$D$7"
...hilft mir aber wie gesagt nicht wirklich weiter :-(
Peter Klett:
Kommst Du per Script an die deutsche Eigenschaft (-> Druckbereich)?
Wenn Du die irgendwie erkennen könntest, könntest Du die per Script wieder setzen, wie Du schon probiert hast.
ascabg:
Hallo,
Hast du schon einmal nachgesehen, ob nach dem Oeffnen des Dokumentes, basierend auf der Vorlage,
die Eigenschaft PageSetup.PrintArea ueberhaupt noch gesetzt ist auf dem gerade offenen Sheet?
Andreas
TRO:
Das ist ein (bekannter) Bug in Excel (nicht Notes!) bei der Ansteuerung über COM.
Hier ein Code-Schnipsel um das auszubügeln. Ich habe das in meinem Code in zwei Teile trennen müssen, da ich die Excel-datei nach dem ersten Öffnen mehrfach speichern muss, das Setzen der Print-Area darf aber nur beim "finalen" Speichern stattfinden
%REM
Excel2010 (und auch schon Excel2007) hat einen Bug: beim Öffnen über workbook.Open "vergisst" Excel den Druckbereich und die Druckwiederholzeilen.
Die stehen zwar intern noch in den NamenPrint_Area und Print_Titles müssen aber von dort geholt und neu gesetzt werden
Darf aber nur im "finalen" speichern gesetzt sein, sonst kommt es zu einer Bereichs-Namen-Fehlermeldung von Excel
%END REM
Dim sSheetName As String
Dim sCurrentName As String
Dim sRange As String
Erase g_sAreaList
Erase g_sTitleList
'erster Teil: holen der PrintArea
Forall sheet In g_xlWBook.Worksheets
sSheetName = sheet.Name
Forall n In sheet.Names
sCurrentName = n.Name
If Instr( sCurrentName, "Print_Area" ) > 0 Then
sRange = n.RefersTo
g_sAreaList( sSheetName ) = sRange
Elseif Instr( sCurrentName, "Print_Titles" ) > 0 Then
sRange = n.RefersTo
g_sTitleList( sSheetName ) = sRange
Else
'
End If
End Forall
End Forall
'andere Sub
'zweiter Teil: Setzen der PrintArea
Forall sheet In g_xlWBook.Worksheets
sSheetName = sheet.Name
If Iselement( g_sAreaList( sSheetName ) ) Then
sRange = g_sAreaList( sSheetName )
sheet.PageSetup.PrintArea = sRange
End If
If Iselement( g_sTitleList( sSheetName ) ) Then
sRange = g_sTitleList( sSheetName )
sheet.PageSetup.PrintTitleRows = sRange
End If
End Forall
hth
Thomas
v_haderer:
--- Zitat von: ascabg am 12.08.14 - 10:21:46 ---Hallo,
Hast du schon einmal nachgesehen, ob nach dem Oeffnen des Dokumentes, basierend auf der Vorlage,
die Eigenschaft PageSetup.PrintArea ueberhaupt noch gesetzt ist auf dem gerade offenen Sheet?
Andreas
--- Ende Zitat ---
Hallo,
ist leider leer und somit wird alles gedruckt!
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln