Office: bestimmte Tabellenblätter mit Schaltfläche drucken (wenn Kontrollkästchen aktiviert)

Helfe beim Thema bestimmte Tabellenblätter mit Schaltfläche drucken (wenn Kontrollkästchen aktiviert) in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Zusammen, Ich möchte mit einer Schaltfläche auf Tabelle1 den Befehl geben, dass die Tabelle2 und Tabelle10 aufjedenfall gedruckt werden soll und... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von mkilian, 20. Januar 2015.

  1. mkilian Erfahrener User

    bestimmte Tabellenblätter mit Schaltfläche drucken (wenn Kontrollkästchen aktiviert)


    Hallo Zusammen,

    Ich möchte mit einer Schaltfläche auf Tabelle1 den Befehl geben, dass die Tabelle2 und Tabelle10 aufjedenfall gedruckt werden soll und die anderen Tabellen nur, wenn auf Tabelle1 z.B. das Kontrollkästchen "Tabelle4" angekreuzt ist.

    Ist das denn überhaupt möglich? Ich arbeite zum ersten Mal mit Makros und bin daher über jede Hilfe und jeden Vorschlag dankbar.

    P.s.: Ich arbeite mit einem MacBook (falls es da etwaige Unterschiede geben sollte).

    Vielen Dank.

    Liebe Grüße
    Meike
     
    mkilian, 20. Januar 2015
    #1
  2. miriki Erfahrener User
    Moinsens!

    Das Beispiel im Anhang enthält 10 CheckBox-Elemente auf "Tabelle1", die mit der Eigenschaft "LinkedCell" ihren Wert auch im Blatt spiegeln. Darunter befindet sich ein Button, der die gewünschten Tabellen als "Druck in Datei" im Verzeichnis "C:\temp\" ablegt.

    Die Schleife geht alle 10 Blätter durch, setzt dabei die Variable "p" für 1 immer auf "nein", für 2 und 10 immer auf "ja" und für alle anderen abhängig vom Wert der entsprechenden "LinkedCell" der Checkbox. Auskommentiert ist die Alternative, wenn man nicht mit "LinkedCell" arbeiten kann / will, die CheckBox direkt über ihren Namen anzusprechen.

    Ich hoffe, das ist so direkt auf den Mac übertragbar...

    Gruß, Michael
     
  3. mkilian Erfahrener User
    Hey Michael,

    erstmal danke für deine schnelle Antwort!

    ich glaube leider, dass Mac keine ActiveX-Steuerelemente unterstützt. Deine Checkboxen sind für mich daher wie Bilder, die ich nicht aktivieren kann. Ich habe mich deshalb immer auf die jeweilige verknüpfte Zelle (worin wahr bzw. falsch steht) bezogen.
    Könnte man das ganze auch hierüber steuern? Vllt mit einer If-Bedingung? (Ist sicher nicht so schön wie deine Variante)

    Ich stelle mir das so vor:
    Drucke Tabelle 2 und Tabelle 10 immer (!) (Deckblatt und Schluss) und
    Wenn C3 = "True" dann Tabelle 3
    C4 = "True" dann Tabelle 4
    .....

    Es wäre schön, wenn die Reihenfolge (Tabelle 4 vor Tabelle 10) beim Druck eingehalten werden könnte.

    Vielleicht hast du hierfür auch einen Vorschlag. Vielen Dank für die Unterstützung.

    Grüßle Meike
     
    mkilian, 20. Januar 2015
    #3
  4. miriki Erfahrener User

    bestimmte Tabellenblätter mit Schaltfläche drucken (wenn Kontrollkästchen aktiviert)

    Moinsens!

    Genau _das_ macht der Code ja jetzt eigentlich. Die "LinkedCell" sagt dem Steuerelement, wo es den Wert spiegeln soll, der den Zustand der CheckBox darstellt. Wenn also die CheckBox "true" st, steht in der entsprechenden Zelle ein "wahr". Das geht aber auch umgekehrt: Wenn man in die Zelle ein "falsch" einträgt, wird die CheckBox auf "false" gesetzt.

    Und der hinter dem Button liegende Code fragt in der jetzigen Version die Zellen ab, nicht die Steuerelemente. Von daher ist an der Stelle keine Änderung notwendig.

    Die Frage ist nur, wie kriegst Du den Code gestartet? Denn der Button ist auch ActiveX und dürfte dementsprechend auch keine Funktion haben, oder?

    Ich hab in die Mappe mal eine 2. Variante eingebaut: Die Zellen E2:E11 reagieren auf Doppelklick und werden mit "[ X ]", also so einer Pseudo-CheckBox, gefüllt, parallel dazu wird die Spalte daneben mit "wahr" bzw. "falsch" gesetzt. Der Button darunter ist ein Formularsteuerelement. Das Makro dahinter ist das gleiche wie vorher, nur daß ich es in ein allgemeines Modul verlagert habe, um es mit diesem Button verknüpfen zu können. (Den anderen Button links habe ich deaktiviert, aber das macht für Dich dann ja wahrscheinlich eh keinen Unterschied.)

    Versuch mal, ob das eine Alternative für Dich wäre.

    (Na toll, jetzt ist die Mappe 107 kb und somit zu groß für den direkten Upload. Deswegen als zip...)

    Gruß, Michael
     
  5. mkilian Erfahrener User
    Hallo Michael,
    danke für deine Mühe.
    Da ich noch bei zwei weiteren Themen angeeckt bin, bin ich jetzt auf Windows umgestiegen.
    Mit deiner ersten Variante kann ich gut weiter arbeiten. Jetzt noch ein kleines Anliegen.
    Ist es möglich das Ganze als pdf auf dem Desktop zu speichern? :)
    Viele Grüße
     
    mkilian, 22. Januar 2015
    #5
  6. miriki Erfahrener User
    Moinsens!

    Zumindest in den neueren Versionen kann Excel direkt als PDF exportieren. Da ändert sich nur die "printout" Zeile:
    Code:
    s.ExportAsFixedFormat _    Type:=xlTypePDF, _
        Filename:="C:\temp\" & t & ".pdf", _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
    
    Und hier müßtest Du noch den Ziel-Pfad, jetzt "C:\temp\", anpassen. Wenn's direkt auf den Desktop soll, dann ist das i.a. sowas wie "C:\Users\Benutzer\Desktop\...". Man kann per VBA aber auch den Pfad aus den Windows-System-Variablen auslesen. Am einfachsten per
    Code:
    Environ("USERPROFILE") & "\Desktop"
    Was dann für oben bedeuten würde:
    Code:
    Filename:=Environ("USERPROFILE") & "\Desktop\" & t & ".pdf", _
    Gruß, Michael
     
  7. mkilian Erfahrener User
    Hi Michael,

    also das funktioniert jetzt super, Danke. Momentan wird aber (leider) jede Tabelle einzeln als pdf erstellt. Ist es denn auch möglich, dass nur ein pdf mit den "Wahr" angekreuzten Tabellen erzeugt wird? Das wäre perfekt!

    Eine kleine Verschönerung ist mir noch gekommen. Könnte man den Zielpfad und den Namen, unter dem die Datei gespeichert werden soll, auch aus bestimmten Zellen in der Tabelle 1 entnehmen? Dann könnte jeder Nutzer meiner Exceldatei selbst entscheiden wo und unter welchem Namen er die Datei gerne speichern möchte. - Das aber nur als Sahnehäubchen. Viel wichtiger wäre es mir, dass die Datei als ein PDF erstellt wird.

    Ich hoffe ich sprenge mit meinen Wünschen nicht den Rahmen :)

    Lieben Gruß
    Meike
     
    mkilian, 26. Januar 2015
    #7
  8. miriki Erfahrener User

    bestimmte Tabellenblätter mit Schaltfläche drucken (wenn Kontrollkästchen aktiviert)

    Moinsens!

    Da bin ich mir nicht sicher. Mittels .PrintOut kann man, wenn mehrere Blätter markiert sind, den Ausdruck dieser Blätter in einen Ausdruck bündeln. Wenn der Ausdruck dann über einen PDF-Printer (wie z.B. FreePDF) läuft, würde das in jedem Fall gehen. Das könnte dann ev. so in der Art aussehen:
    Code:
                Worksheets(Array("Tabelle3", "Tabelle5", "Tabelle7")).Select
                ActiveWindow.SelectedSheets.PrintOut [ ... ]
    Der VBA-Code müßte dann nur umgestellt werden, weil z.Z. die Blätter einzeln nacheinander durchlaufen werden und der Ausdruck / Export in jedem Durchlauf einzeln angeschubst wird. Dann müßten erst die Blätter einzeln selektiert und dann nach der Schleife gebündelt ausgedruckt werden.

    Hier hab ich aber jetzt .ExportAsFixedFormat als Alternative für den PDF-Export benutzt. Da weiß ich gar nicht, ob man da auch mehrere Blätter gebündelt rausschicken kann. Ein erster Versuch ging auf alle Fälle schief. ExportAsFixedFormat ist zwar eine Methode von WorkSheet, aber wohl leider nicht von SelectedSheets.

    Code:
    Könnte man den Zielpfad und den Namen [...] auch aus bestimmten Zellen in der Tabelle 1 entnehmen?
    Aber klar. Jetzt wird ja für jeden Datei-Export der Tabellen-Name benutzt. Das ist im VBA-Code die Variable "t", die in der SELECT CASE Struktur gesetzt wird. Wenn der Ausdruck / Export erst nach der Schleife (hinter dem "Next n") erfolgen soll, um mehrere Blätter zu bündeln, dann muß "t" auch nicht mehr in der Schleife laufend neu gesetzt werden, sondern kann auch direkt vor dem Ausdruck / Export bestimmt werden.

    Aus
    Code:
            Filename:=Environ("USERPROFILE") & "\Desktop\Tabelle.pdf", _
    würde dann
    Code:
            Filename:=t, _
    werden. Und direkt nach dem Schleifen-Ende dann sowas wie
    Code:
        t = worksheets(w).range("C3").value
    wenn der Dateiname (mit kompletten Pfad!) in Zelle C3 stehen würde.

    Gruß, Michael
     
  9. mkilian Erfahrener User
    mhm... ok. Meinst du das ganze würde "leichter" funktionieren, wenn man das über den xps Viewer "druckt" und nicht über PDF?

    Da ich kein Geheimnis vorhabe hole ich dich gedanklich kurz ab.
    So sieht meine Eingabemaske aus: bestimmte Tabellenblätter mit Schaltfläche drucken (wenn Kontrollkästchen aktiviert) modellM.jpg

    Die Infos aus dem roten Reiter mit "DB+AK...." sollen immer gedruckt werden. Und dahinter soll, je nachdem ob das zu versicherte Risiko angekreuzt wurde, der jeweilige grüne Sheet G, I, EM,... etc im Ausdruck hinter "DB+AK" hängen. Man könnte auch sagen, wenn in G ("A1") etwas steht dann mitdrucken.

    Könnte man den Dateiname und Pfad splitten? d.h. in C3 bspw. den Name und in C4 den gewünschten Pfad (C:\Excel\) eingeben?

    Nochmals vielen Dank für deine Hilfe!
     
    mkilian, 26. Januar 2015
    #9
Thema:

bestimmte Tabellenblätter mit Schaltfläche drucken (wenn Kontrollkästchen aktiviert)

Die Seite wird geladen...
  1. bestimmte Tabellenblätter mit Schaltfläche drucken (wenn Kontrollkästchen aktiviert) - Similar Threads - bestimmte Tabellenblätter Schaltfläche

  2. Bestimmte Daten in neues Tabellenblatt übernehmen, ohne Leerzeichen

    in Microsoft Excel Hilfe
    Bestimmte Daten in neues Tabellenblatt übernehmen, ohne Leerzeichen: Hallo zusammen, ich habe eine Tabelle mit diversen Daten. Angefügt habe ich eine Beispieldatei. Ich möchte jetzt im zweiten Tabellenblatt alle Zellen mit den Daten von zB dem Mitarbeiter Müller...
  3. Zeilen aufgrund von bestimmten Informationen in anderes Tabellenblatt kopieren

    in Microsoft Excel Hilfe
    Zeilen aufgrund von bestimmten Informationen in anderes Tabellenblatt kopieren: Hallo zusammen, ich bin erst vor ein paar Tagen auf die Excel VBA gestoßen und kenne mich deswegen leider so gut wie gar nicht aus. Ich würde gerne aus den Tabellen 3 - 11, bestimmte Zeilen in die...
  4. Bestimmte Inhalte mehrerer Tabellenblätter auf separatem Blatt darstellen

    in Microsoft Excel Hilfe
    Bestimmte Inhalte mehrerer Tabellenblätter auf separatem Blatt darstellen: Hallo zusammen, in einer Mappe möchte ich die Inhalte in Spalte A der Blätter 1.0 und 1.1 auf dem Blatt 2.0 sammeln. Die Einträge sollen dort untereinander ohne Leerzeilen stehen, wenn der...
  5. Zeilen mit bestimmten Inhalt in anderes Tabellenblatt kopieren

    in Microsoft Excel Hilfe
    Zeilen mit bestimmten Inhalt in anderes Tabellenblatt kopieren: Guten Morgen, ich bräuchte eure Hilfe. Ich habe eine Tabelle in der Anfragen und Buchungen von Terminen eingetragen werden. Wenn ein Termin nur angefragt wurde, wird nur die Zelle "Anfragedatum"...
  6. VBA bestimmte Tabellenblätter separat speichern

    in Microsoft Excel Hilfe
    VBA bestimmte Tabellenblätter separat speichern: Hallo zusammen, ich habe ein Dashboard erstellt, das per Datenschnitt erlaubt verschiedene Merkmale zu Filtern. Bspw. bestimmte Produkte, Varianten sowie Vertriebsmitarbeiter. Im Hintergrund...
  7. bestimmte Daten sortiert in zweites Tabellenblatt einfügen

    in Microsoft Excel Hilfe
    bestimmte Daten sortiert in zweites Tabellenblatt einfügen: Hallo und guten Abend, ich habe eine Tabelle mit 3 Spalten. "Datum", "Wert" und "Beschreibung". Ich möchte nun, dass im zweiten Tabellenblatt alle Daten aus den 3 Spalten erscheinen, die den Wert...
  8. Excel bestimmte Tabellenblätter mittels Schaltfläche (VBA) drucken/ pdf drucken

    in Microsoft Excel Hilfe
    Excel bestimmte Tabellenblätter mittels Schaltfläche (VBA) drucken/ pdf drucken: Hallo zusammen, ich habe folgendes Problem und hoffe ihr könnt mir hierbei helfen. Ich möchte folgende Schaltflächen evtl. mit Steuerelement Toolbox und VBA generieren: 1. Tabellenblatt...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden