Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1928to1932
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
Tabellenblatt durcken wenn Zellen "wahr"
08.05.2023 14:17:03
Tim

Hallo zusammen,

ich stehe erneut vor einer Herausforderung und bin nicht im Archiv fündig geworden und hoffe hier auf eine erneute Lösung. Uns zwar habe ich in Zelle A1-A7 ein Ergebnis (Wahr oder Falsch). Je nach Ergebnis soll entweder ein Tabellenblatt gedruckt werden oder nicht. z.B.

A1= Wahr | Hier soll Tabellenblatt 1 gedruckt werden
A2 = Falsch | Hier soll nichts gedruckt werden
A3 = Wahr | Hier soll Tabellenblatt 1 gedruckt werden, zusätzlich zu Tabellenblatt 3 und 4

Bei den übrigen Zellen sind ähnliche Kriterien möglich. Am Ende soll alles gemeinsam gedruckt werden.

Kann hier jemand aushelfen?

Lg Tim

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt durcken wenn Zellen "wahr"
08.05.2023 14:58:31
Tim
Hi,

leider nicht. Hier geht es nicht um Seiten sondern ganze Tabellenblätter und dies je nach Variation.

LG


AW: Tabellenblatt durcken wenn Zellen "wahr"
08.05.2023 14:39:43
Rudi Maintaire
Hallo,
kann immer nur einer WAHR sein?
dann für dein Bsp.:
select case true
  case range("a1"): sheets("tab1").printout
  case range("a2"): 'nix passiert
  case range("a3"): sheets(array("tab1", "tab3", "tab4")).printout
end select
Wenn nicht: Es gibt 128 mögliche Konstellationen.

Gruß
Rudi


Anzeige
AW: Tabellenblatt durcken wenn Zellen "wahr"
08.05.2023 14:57:52
Tim
Hallo Rudi,

versuche ich gleich mal aus, 128 Variationen klingen aufwendig. Ein anderer Helfer hat glaube ich eine gute einfache Variante geliefert die ich zuerst versuche.

Lg


AW: Tabellenblatt durcken wenn Zellen "wahr"
08.05.2023 15:19:58
Pappawinni
Naja, wenn es möglich ist, dass Tabelle1, aber auch Tabelle1 und Tabelle3 zum Druck ausgewählt werden,
dann willst du aber wahrscheinlich nicht, dass Tabelle1 zweimal gedruckt wird, oder?


AW: Tabellenblatt durcken wenn Zellen "wahr"
08.05.2023 15:25:47
Rudi Maintaire
128 Variationen klingen aufwendig.
Geht so.
Stell dir deine 7 Elemente als Byte vor (da sind es 8). Jede Zelle mit 2^(Zeile()-1) multiplizieren und addieren. Dann bekommst du eine Zahl von 0 (alle FALSCH) - 128 (alle WAHR). Die kannst du auswerten.

Gruß
Rudi


Anzeige
AW: Tabellenblatt durcken wenn Zellen "wahr"
08.05.2023 14:59:47
Pappawinni
Wenn "nichts drucken" alles andere schlägt, bleiben nur noch 64..


AW: Tabellenblatt durcken wenn Zellen "wahr"
08.05.2023 15:07:26
Rudi Maintaire
nö.
2^7=128. Ohne die Null 127.

Gruß
Rudi


AW: Tabellenblatt durcken wenn Zellen "wahr"
08.05.2023 15:23:24
Pappawinni
Nur wenn Bit 7 gesetzt ist zählt, was in den ersten 6 steht..64


AW: Tabellenblatt durcken wenn Zellen "wahr"
08.05.2023 15:31:58
Rudi Maintaire
Nur wenn Bit 7 gesetzt ist zählt, was in den ersten 6 steht.

das lese ich so nicht aus der Aufgabe.

A1= Wahr | Hier soll Tabellenblatt 1 gedruckt werden
A2 = Falsch | Hier soll nichts gedruckt werden
A3 = Wahr | Hier soll Tabellenblatt 1 gedruckt werden, zusätzlich zu Tabellenblatt 3 und 4


7 Bit ergeben nun mal 128 Möglichkeiten. Daran ist nicht zu rütteln.

Ist aber auch egal.

Gruß
Rudi


Anzeige
AW: Tabellenblatt durcken wenn Zellen "wahr"
08.05.2023 15:56:52
Pappawinni
Hallo Rudi,
war ja nur beispielhaft, wenn ein Bit von 7 daüber entscheidet, ob überhaupt etwas gedruckt wird, so lese ich
A2 = Falsch | Hier soll nichts gedruckt werden
dann bleiben nur noch 64 Möglichkeiten.
Kann ja sein, dass da z.B irgend ein Fehler detektiert wurde und ein Ausdruck wenig Sinn macht. Was weiß ich.


AW: Tabellenblatt durcken wenn Zellen "wahr"
08.05.2023 14:48:27
Daniel
Hi
man müsste natürlich wissen, wie die Blätter zum jeweiligen WAHR/FALSCH heißen.
wenn man die Blattnamen mit Komma getrennt in die Spalte B der jeweiligen Zeile schreibt, dann so per VBA

dim Zelle as Range
dim tb
dim Check as boolean

Check = True
for each Zelle in range("a1:a7")
    if Zelle.value then 
        for each tb in Split(Zelle.Offset(0, 1).value, ",")
            tb.select check
            check = false
        next
    end if
next
damit hat man dann die Blätter, die gedruckt werden sollen, als Gruppe selektiert so dass sie dann gemeinsam gedruckt werden können.
in VBA wäre der Befehl ActiveWindow.SelectedSheet.PrintOut

Gruß Daniel


Anzeige
AW: Tabellenblatt durcken wenn Zellen "wahr"
08.05.2023 15:00:09
Tim
Hallo Daniel,

dein Ansatz klingt richtig gut. Wenn ich den Printout hinter deinen Code setzt, kommt ein Fehler heraus. Muss ich hier etwas zusätzliches beachten?


AW: Tabellenblatt durcken wenn Zellen "wahr"
08.05.2023 15:08:21
RPP63
Es heisst:
ActiveWindow.SelectedSheets.PrintOut


AW: Tabellenblatt durcken wenn Zellen "wahr"
08.05.2023 15:11:29
Daniel
hast du es richtig geschrieben?
(Tippfehler)
Nutze zum Schreiben von Code die Intellisense (STRG+Leer), diese vervollständigt angefangene Befehle und Schlüsselberiffe, so dass du dir nicht die genaue Schreibweise merken musst.


AW: Tabellenblatt durcken wenn Zellen "wahr"
08.05.2023 16:25:30
Pappawinni
Das druckt halt immer in in der Reihenfolge der Sheets.
Wenn du z.B. erst Blatt 4 und dann Blatt 3 willst, hast du mit der Methode verloren, denk ich.


Anzeige
AW: Tabellenblatt durcken wenn Zellen "wahr"
08.05.2023 16:34:04
Daniel
das mit den SelectedSheets druckt immer in der Reihenfolge der Tabellenblattreiter.
eine variable Reihenfolge kann man so nicht erzeugen.
Anderrerseits ist nur so möglich, alle Blätter gemeinsam zu drucken, beispielsweise in ein einziges PDF-Dokument oder in einen einzigen Druckauftrag. Auf anderen Wegen bekommst du dann immer einzelne Druckaufträge. Solange man direkt auf Papier druckt, macht das keinen großen Unterschied (außer in den Seitenzahlen, wenn die durchgäng sein sollen, muss man auch über die SelectedSheets gehen), aber sowas ist heute ja seltener als früher.
Gruß Daniel


Anzeige
AW: Tabellenblatt durcken wenn Zellen "wahr"
08.05.2023 16:55:19
Pappawinni
ja, wenn man in ein PDF druckt, dann bliebe vermutlich nur die Möglichkeit die Reihenfolge der Sheets zu ändern.... oder Duplikate in der gewünschten Reihenfolge anzuhängen.. autsch.


AW: Tabellenblatt durcken wenn Zellen "wahr"
08.05.2023 19:57:34
Tim
Hallo Daniel,

das erste Tabellenblatt heißt SAV, die weiteren Analge1, Anlage 2, Anlage 3, Anlage 4, Anlage 5, Anlage 6.

Ich habe mittels einer Checkbox in einem separaten Tabellenblatt eine Auswahl geschaffen, indem selektiert werden kann, welche Anlage zu dem Blatt SAV generiert werden soll. Die Checkbox gibt in einer verlinkten Zelle Wahr oder Falsch aus.

Bezüglich der anderen Beiträge, die Reihenfolge ist bereits in Dokument anhand der einzelnen Reiter sortiert. Ziel ist es, dass nur die Tabellenblätter gedruckt wurden, die auch von dem Benutzer ausgewählt wurden.

Lg Tim


Anzeige
AW: Tabellenblatt durcken wenn Zellen "wahr"
08.05.2023 14:59:00
UweD
Hallo

noch was von mir

    Dim RNG
    Dim TB1 As String, TB3 As String, TB4 As String
    TB1 = "Tabelle1"
    TB3 = "Tabelle3"
    TB4 = "Tabelle4"
    
    With Sheets(TB1)
        Select Case True
        Case .Range("A2") = False
            MsgBox "Kein Ausdruck erforderlich"
            Exit Sub
        Case .Range("A1") = True And .Range("A3") = False
            Sheets(TB1).PrintOut

        Case .Range("A1") = True And .Range("A3") = True
            Sheets(Array(TB1, TB3, TB4)).PrintOut

        End Select
    End With
LG UweD


Anzeige
AW: Tabellenblatt durcken wenn Zellen "wahr"
09.05.2023 09:18:06
Tim
Hallo zusammen,

ich bin nach etlichen Stunden sogar hier im Forum fündig geworden. :)

Dim n As Integer
Dim t As String
Dim p As Boolean
Dim s As Worksheet

For n = 1 To 13

Select Case n
Case 1:
t = "Tabelle1"
p = Range("H7").Value
'p = CheckBox1.Value
Case 2:
t = "Tabelle2"
p = Range("H8").Value
'p = CheckBox2.Value
Case 3:
t = "Tabelle3"
p = Range("H9").Value
'p = CheckBox3.Value
Case 4:
t = "Tabelle4"
p = Range("H10").Value
'p = CheckBox4.Value
Case 5:
t = "Tabelle5"
p = Range("H11").Value
'p = CheckBox5.Value
Case 6:
t = "Tabelle6"
p = Range("H12").Value
'p = CheckBox6.Value
Case 7:
t = "Tabelle7"
p = Range("H12").Value
'p = CheckBox6.Value
Case 8:
t = "Tabelle8"
p = Range("H12").Value
'p = CheckBox6.Value
Case 9:
t = "Tabelle9"
p = Range("H16").Value
'p = CheckBox10.Value
Case 10:
t = "Tabelle10"
p = Range("H17").Value
'p = CheckBox11.Value
Case 11:
t = "Tabelle11"
p = Range("H18").Value
'p = CheckBox12.Value
Case 12:
t = "Tabelle12"
p = Range("H19").Value
'p = CheckBox13.Value
Case 13:
t = "Tabelle13"
p = Range("H19").Value
'p = CheckBox13.Value

End Select
Set s = Worksheets(t)

If (p) Then
s.PrintOut preview:=True
s.PrintOut printtofile:=True, prtofilename:="c:\temp\" & t & ".xls"

End If

Next n

End Sub

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige