Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1096to1100
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Druckbereich erweitern

Druckbereich erweitern
Stefanglander
Moin moin,
habe ich im Forum folgendes gefunden:
Option Explicit
Private Sub Workbook_BeforePrint(Cancel As Boolean)
With Tabelle1
.Range("B:C").EntireColumn.Hidden = True
.Range("F:F").EntireColumn.Hidden = True
.Range(.Cells(1, 8), .Cells(1, .Columns.Count)).EntireColumn.Hidden = True
End With
Application.OnTime Now + TimeSerial(0, 0, 1), "Einblenden"
End Sub
Nun habe ich drei Wünsche:
1.) Wie muss der Code aussehen damit er auch für die Tabellenblätter 4 und 7 gilt ?
2.) Die Seiten sollen nur soweit ausgeduckt werden wie in Spalte A ein Wert steht.
A ist abhänig von folgendem Inhalt :=WENN(B9="";"";A6+1)
3.) Kann ich die

Private Sub Workbook_BeforePrint(Cancel As Boolean) anweisung auch auf einen Commandbutton  _
legen ? Wenn ja wie muss der Code dafür aussehen.
Danke für die Bemühungen
Stefan


		

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Druckbereich erweitern
16.08.2009 20:25:29
Tino
Hallo,
versuche es mal mit dieser Variante.
kommt als Code in DieseArbeitsmappe
Option Explicit 
 
Private Sub Workbook_BeforePrint(Cancel As Boolean) 
Dim i As Integer 
Dim varRow 
'hier die Tabellen entsprechend angeben 
'hier ist es die Tabelle 1, Tabelle 4 u. Tabelle 7 
myAr = Array(Sheets(1), Sheets(4), Sheets(7)) 
 
For i = Lbound(myAr) To Ubound(myAr) 
    With myAr(i) 
     varRow = Application.Match(10 ^ 307, .Columns(1), 1) 
      
     If IsNumeric(varRow) Then 
      If varRow < .Rows.Count Then 
       .Rows(varRow + 1 & ":" & .Rows.Count).Hidden = True 
      End If 
     End If 
      
     .Range("B:C").EntireColumn.Hidden = True 
     .Range("F:F").EntireColumn.Hidden = True 
     .Range(.Cells(1, 8), .Cells(1, .Columns.Count)).EntireColumn.Hidden = True 
    End With 
Next i 
  
 Application.OnTime Now + TimeSerial(0, 0, 1), "Einblenden" 
End Sub 
 
 
kommt als Code in Modul1
Option Explicit 
Public myAr() 
Sub Einblenden() 
Dim i As Integer 
 
For i = Lbound(myAr) To Ubound(myAr) 
 myAr(i).Cells.EntireColumn.Hidden = False 
 myAr(i).Cells.EntireRow.Hidden = False 
Next i 
  
Erase myAr 
End Sub 
Gruß Tino
Anzeige
AW: Druckbereich erweitern
16.08.2009 21:26:44
Stefanglander
Hallo Tino,
das haut im Prinzip hin...aber
Ich weiß das es in einem Forum eigentlich nicht üblich ist das man telefoniert,
aber ob ich Dich einmal anrufen darf ?
Wenn das machbar ist schreibe mir doch bitte eine mail an Stefanglander@aol.com
Lieben Gruss
Stefan
AW: Druckbereich erweitern
16.08.2009 21:47:03
Tino
Hallo,
telefonisch ist für ein Forum nicht üblich, da hast du recht.
Daher muss ich dies auch ablehnen, sorry.
Stell deine Fragen und wenn ich kann werde ich versuchen zu helfen.
So haben auch andere etwas davon.
Gruß Tino
AW: Druckbereich erweitern
16.08.2009 21:56:25
Stefanglander
Hallo Tino,
kein Problem, dann versuche ich mal das ganze in Worte zu packen.
Also das mit dem drucken haut soweit hin bis auf das was ich wieder als Pferdefuss eingebaut habe.
In Spalte A, auf die sich ja die Abfrage wie weit gedruckt werden soll, befindet sich immer ein Datensatz in 3 Zeilen.
Ich habe in Spalte A immer 3 Zellen zu einer verbunden.
Beispiel:
Mein letzter Datensatz steht in der Zelle A44. Das ist eine verbundene Zelle die eigentlich aus den Zellen
A44:A46 besteht.
Wenn nun gedruckt wird, wird in diesem Beispiel aber nur noch die Zeile 44 gedruckt.
Da ich Rahmen um jeden Datensatz habe wird der letzte Datensatz nun ohne die Inhalte der Zeile 45 und 46 und ohne abschliessende Rahemenlinie gedruckt.
Uff, ist das kompliziert, ich hoffe ich konnte mein Problem beschreiben.
Gruss
Stefan
Anzeige
versuche es mit diesem Code
16.08.2009 22:17:21
Tino
Hallo,
sollte funktionieren.
kommt als Code in DieseArbeitsmappe
Option Explicit 
 
Private Sub Workbook_BeforePrint(Cancel As Boolean) 
Dim i As Integer 
Dim varRow 
Dim rZelle As Range 
 
myAr = Array(Sheets(1), Sheets(4), Sheets(7)) 
 
For i = Lbound(myAr) To Ubound(myAr) 
    With myAr(i) 
     varRow = Application.Match(10 ^ 307, .Columns(1), 1) 
      
     If IsNumeric(varRow) Then 
      If varRow < .Rows.Count Then 
        Set rZelle = .Cells(varRow, 1).Offset(1, 0) 
       .Rows(rZelle.Row & ":" & .Rows.Count).Hidden = True 
      End If 
     End If 
      
     .Range("B:C").EntireColumn.Hidden = True 
     .Range("F:F").EntireColumn.Hidden = True 
     .Range(.Cells(1, 8), .Cells(1, .Columns.Count)).EntireColumn.Hidden = True 
    End With 
Next i 
  
 Application.OnTime Now + TimeSerial(0, 0, 1), "Einblenden" 
End Sub 
 
 
Gruß Tino
Anzeige
Danke Tino
16.08.2009 22:25:38
Stefanglander
Hallo Tino,
ich habe mir eben beide Codes ausgedruckt um zu sehen was sich geändert hat.
Das hätte ich nie alleine hinbekommen.
Vielen vielen Dank
Stefan

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige