Microsoft Excel

Herbers Excel/VBA-Archiv

Blätter autom. ein-/ausblenden + drucken

Betrifft: Blätter autom. ein-/ausblenden + drucken von: André
Geschrieben am: 22.07.2008 14:27:22

Hallo Forumteilnehmer,

habe den u.g. Code verwendet, leider arbeitet er nur nicht so wie er soll.

Die entsprechenden Blätter werden so wie es sein soll ausgeblendet, und das erste Arbeitsblatt auch vernünftig ausgedruckt. Sowie auch wieder in seinem Ursprungszustand hinterlassen. Nur leider passiert dies nicht für die weiteren Arbeitsblätter.

Die weiteren Arbeitsblätter werden nicht so ausgedruckt, als wenn ich den Code manuell für jedes Blatt einzelnd starte, und auch nicht wieder in den Urspungszustand versetzt.

Als Alternative könnte ich natürlich den Befehl aufzeichnen in dem ich in jedes Arbeitsblatt gehe und den Befehl manuell ausführe. Nur habe ich dort wieder das Problem, das sich der Tabellenname ständig ändert.
Und später nicht mehr ausführen lässt.

Ich kann mir den Fehler nicht erklären.

Vielleicht hat ja einer von euch eine Ahnung woran das liegen könnte.

Gruß
André

Hier der Code:

Sub Druck_neu()
  
    Sheets("WB").Select
    ActiveWindow.SelectedSheets.Visible = False
    Sheets("Voreinstellungen").Select
    ActiveWindow.SelectedSheets.Visible = False
  

  Dim TB As Worksheet
  For Each TB In Worksheets
  If TB.Visible Then
        TB.Unprotect Password:="pw"
        TB.Rows("6:10").EntireRow.Hidden = Not Rows("6:10").EntireRow.Hidden
        TB.Columns("H").EntireColumn.Hidden = Not Columns("H").EntireColumn.Hidden
        TB.Columns("J").EntireColumn.Hidden = Not Columns("J").EntireColumn.Hidden
        TB.Columns("c").EntireColumn.Hidden = Not Columns("c").EntireColumn.Hidden
        TB.Columns("i").EntireColumn.Hidden = Not Columns("i").EntireColumn.Hidden
        TB.Columns("g").EntireColumn.Hidden = Not Columns("g").EntireColumn.Hidden
        TB.Columns("b").EntireColumn.Hidden = Not Columns("b").EntireColumn.Hidden
        TB.PrintOut Copies:=1, Collate:=True
        TB.Rows("6:10").EntireRow.Hidden = Not Rows("6:10").EntireRow.Hidden
        TB.Columns("H").EntireColumn.Hidden = Not Columns("H").EntireColumn.Hidden
        TB.Columns("J").EntireColumn.Hidden = Not Columns("J").EntireColumn.Hidden
        TB.Columns("c").EntireColumn.Hidden = Not Columns("c").EntireColumn.Hidden
        TB.Columns("i").EntireColumn.Hidden = Not Columns("i").EntireColumn.Hidden
        TB.Columns("g").EntireColumn.Hidden = Not Columns("g").EntireColumn.Hidden
        TB.Columns("b").EntireColumn.Hidden = Not Columns("b").EntireColumn.Hidden
        TB.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="pw"
        TB.Unprotect Password:="pw"
        TB.Rows("6:10").EntireRow.Hidden = Not TB.Rows("6:10").EntireRow.Hidden
        TB.Columns("H").EntireColumn.Hidden = Not TB.Columns("H").EntireColumn.Hidden
        TB.Columns("c").EntireColumn.Hidden = Not TB.Columns("c").EntireColumn.Hidden
        TB.Columns("i").EntireColumn.Hidden = Not TB.Columns("i").EntireColumn.Hidden
        TB.Columns("b").EntireColumn.Hidden = Not TB.Columns("b").EntireColumn.Hidden
        TB.Range("A2:S2").FormulaR1C1 = "Text 1"
        TB.PrintOut Copies:=1, Collate:=True
        TB.Range("A2:S2").FormulaR1C1 = "Text"
        TB.Rows("6:10").EntireRow.Hidden = Not Rows("6:10").EntireRow.Hidden
        TB.Columns("H").EntireColumn.Hidden = Not TB.Columns("H").EntireColumn.Hidden
        TB.Columns("c").EntireColumn.Hidden = Not TB.Columns("c").EntireColumn.Hidden
        TB.Columns("i").EntireColumn.Hidden = Not TB.Columns("i").EntireColumn.Hidden
        TB.Columns("b").EntireColumn.Hidden = Not TB.Columns("b").EntireColumn.Hidden
        TB.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="pw"
    End If
  Next

    Sheets("Voreinstellungen").Visible = True
    Sheets("WB").Visible = True
    Sheets("Voreinstellungen").Select
End Sub


  

Betrifft: AW: Blätter autom. ein-/ausblenden + drucken von: noffi
Geschrieben am: 22.07.2008 16:11:14

Hallo ein zweites mal André,

Ich habe Deinen Code korrigiert und ein wenig verkürzt. Das Problem bei Deinem Code war, das Du das entsprechende Blatt nicht aktiviert hast. So sind alle Befehle auf das selbe Blatt angewendet worden. Der Fehler ließ sich mit Deinem Orginalcode auch bei mir wiederholen. Füge dafür diesen

Sub Druck_neu()
 Dim TB As Worksheet
 
    ActiveWorkbook.Sheets("WB").Visible = False
    ActiveWorkbook.Sheets("Voreinstellungen").Visible = False
  
  For Each TB In Worksheets
  If TB.Visible Then
        TB.Activate
        TB.Unprotect Password:="pw"
        TB.Rows("6:10").EntireRow.Hidden = Not Rows("6:10").EntireRow.Hidden
        TB.Columns("b").EntireColumn.Hidden = Not Columns("b").EntireColumn.Hidden
        TB.Columns("c").EntireColumn.Hidden = Not Columns("c").EntireColumn.Hidden
        TB.Columns("g").EntireColumn.Hidden = Not Columns("g").EntireColumn.Hidden
        TB.Columns("H").EntireColumn.Hidden = Not Columns("H").EntireColumn.Hidden
        TB.Columns("i").EntireColumn.Hidden = Not Columns("i").EntireColumn.Hidden
        TB.Columns("J").EntireColumn.Hidden = Not Columns("J").EntireColumn.Hidden
        TB.PrintOut Copies:=1, Collate:=True
        TB.Columns("g").EntireColumn.Hidden = Not Columns("g").EntireColumn.Hidden
        TB.Columns("i").EntireColumn.Hidden = Not Columns("i").EntireColumn.Hidden
        TB.Range("A2:S2").FormulaR1C1 = "Text 1"
        TB.PrintOut Copies:=1, Collate:=True
        TB.Range("A2:S2").FormulaR1C1 = "Text"
        TB.Rows("6:10").EntireRow.Hidden = Not Rows("6:10").EntireRow.Hidden
        TB.Columns("b").EntireColumn.Hidden = Not Columns("b").EntireColumn.Hidden
        TB.Columns("c").EntireColumn.Hidden = Not Columns("c").EntireColumn.Hidden
        TB.Columns("H").EntireColumn.Hidden = Not Columns("H").EntireColumn.Hidden
        TB.Columns("J").EntireColumn.Hidden = Not Columns("J").EntireColumn.Hidden
        TB.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="pw"
    End If
  Next

    Sheets("Voreinstellungen").Visible = True
    Sheets("WB").Visible = True
    Sheets("Voreinstellungen").Activate
End Sub



Code bei Dir ein.

Gruß noffi


  

Betrifft: AW: Blätter autom. ein-/ausblenden + drucken von: André
Geschrieben am: 22.07.2008 18:12:29

Hallo noffi,

nochmal vielen Dank für deine Hilfe! Hast mir damit sehr weitergeholfen!

Kann man den Befehl jetzt auch noch so erweiteren, dass wenn der Tabellenblattname "zzz" und dahinter noch irgendwelche Zufallszahlen enthält, vom Druck ausschließen kann?

Gruß
André


  

Betrifft: AW: Blätter autom. ein-/ausblenden + drucken von: noffi
Geschrieben am: 23.07.2008 08:26:59

Hallo André,

ich glaube, es wäre wohl besser und schneller, wenn ich Deine Tabelle bei mir programmiere, so sind die Fragen schneller beantwortet. Hier ist Dein Codefragment zum Ausblenden eines einzelnen Tabellenblattes mit dem Namen "zzzxxxx" wobei x ja für Zufallszahlen steht.

Sub test()
Dim ws As Worksheet
Dim name As String
For Each ws In ThisWorkbook.Sheets
If Left(ws.name, 3) = "zzz" Then
ActiveWorkbook.ActiveSheet.Visible = False
Exit Sub
End If
Next

End Sub





Vergesse bitte hinterher nicht das Blatt wieder einzublenden.

Gruß noffi


  

Betrifft: AW: Blätter autom. ein-/ausblenden + drucken von: André
Geschrieben am: 23.07.2008 10:29:19

Hallo noffi,

habe eben mal dein Code getestet.

Habe mir eine neue Mappe hergenommen, und diesen Code in ein Modul kopiert.
In die erste Tabelle habe ich dann zwei Schaltflächen erstellt. Eine zum ausblenden und die andere zum einblenden. Nur wurde immer das jeweils aktive Register angesprochen. In diesem Fall die Tabelle 1.

Wenn ich nun in Tabelle 1 die Schaltflächen habe, und die Register 2 und 3 mit dem Namen "xxx, 123" & "xxx, 456" belege, müsste der Code bestimmt geändert werden. Denn mein Ziel ist es den Code in Tabelle 1 auszuführen, aber auswirken soll dieser sich auf die ganze restliche Mappe.

Wenn du Lust hast, kannst es ja in einer Testmappe uppen.

Vielen Dank im Voraus!

Schön Gruß aus SH
André


  

Betrifft: AW: Blätter autom. ein-/ausblenden + drucken von: noffi
Geschrieben am: 23.07.2008 12:27:37

Hallo André,

Du kannst mir gerne Deine Datei zuschicken. Klicke dazu auf Forums-Seiten, Profile,Profilliste. Dann suchst Du dort nach noffi. Da findest Du meine EMail-Adresse.
Wenn Du die Datei zuschickst, dann vergiss bitte nicht eine genaue Funktionsbeschreibung dazu zulegen.

Gruß
noffi


 

Beiträge aus den Excel-Beispielen zum Thema "Blätter autom. ein-/ausblenden + drucken"