Domino 9 und frühere Versionen > ND8: Entwicklung

Druckbereich in Excel wird nicht mehr erkannt

<< < (2/3) > >>

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