Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA - Druckoptionen
#1
Hallo zusammen,

ich bin mit meinen rudimentären VBA-Kenntnissen leider an meine Grenze gestoßen und benötige Eure Hilfe:
(Da das zusammenbasteln verschiedener im Internet gefundenen Code-Schnipsel nicht funktionierte, lass ich sie jetzt einfach weg)


In beigefügte Tabelle (nur Skizzenhaft erstellt und auch noch nicht als xlsm abgespeichert) möchte ich folgendes tun:

Ich möchte für jedes Jahr einen Ausdruck per VBA generieren. Dieser Ausdruck (Din A4 hochkant) soll folgende Bedingungen erfüllen:

1) Der Ausdruck soll im Hochformat erfolgen
2) Der Druckbereich soll Dynamisch sein, d.h. für das Jahr 2016 die Spalten A:L und die Zeilen 1 - letzte Zeile mit Inhalt
                                                                      für das Jahr 2017 die Spalten M:X und die Zeilen 1 - letzte Zeile mit Inhalt
3) Alle Spalten sollen auf eine Seite gedruckt werden

Für Eure Hilfe bedanke ich mich sehr herzlich !!!

Viele Grüße
Winni


Angehängte Dateien
.xlsx   Druck_VBA.xlsx (Größe: 41,44 KB / Downloads: 1)
Antworten Top
#2
Hallo,

Zitat:In beigefügte Tabelle (nur Skizzenhaft erstellt und auch noch nicht als xlsm abgespeichert) möchte ich folgendes tun:

... und wie soll dann Dein Code auf Brauchbarkeit und / oder Veränderbarkeit untersucht werden?
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#3
(11.01.2017, 15:08)Käpt schrieb: Hallo,


... und wie soll dann Dein Code auf Brauchbarkeit und / oder Veränderbarkeit untersucht werden?

OK verstehe,

hier die Tabelle mit dem Makro, das mit dem dynamischen Druckbereich läuft, aber was man per VBA schreiben muß (bzw. was noch fehlt im vorhandenen Code), damit er alle Spalten auf ein Blatt druckt weiss ich leider nicht - da bräuchte ich Eure Hilfe !

Danke !


Angehängte Dateien
.xlsm   Druck_VBA.xlsm (Größe: 29,55 KB / Downloads: 3)
[-] Folgende(r) 1 Nutzer sagt Danke an Wiiinnniii für diesen Beitrag:
  • Käpt'n Blaubär
Antworten Top
#4
Hallo Wiinni,

ich muß mich bei Dir nun sehr entschuldigen.
Nachdem ich meinen Rechner geschrottet hatte, stand mir nur noch xl2003 zur Verfügung.
Darum war es mir nicht möglich, Deine Datei zu lesen. Inzwischen habe ich (seit heute) einen
neuen Rechner und bin dabei, ihn einzurichten. Danach könnte ichr wieder aktiv mitmachen.

Ich bin im Übrigen sehr überrascht, daß in der zurückliegenden Zeit hier niemand weitergemacht
hat. Normalerweise sind die Helfer nämlich nicht so schüchtern  :05:

Also, nochmal, ich entschuldige mich nachdrücklich und bin demnächst wieder StandBy.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
[-] Folgende(r) 1 Nutzer sagt Danke an Käpt'n Blaubär für diesen Beitrag:
  • Wiiinnniii
Antworten Top
#5
Hallöchen,

ich habe mal die Einstellung zum Drucken aufgezeichnet und zusammengefasst. Da bekommt man im Prinzip das:

Code:
With ActiveSheet.PageSetup
        .Orientation = xlPortrait
        .FitToPagesWide = 1
        .FitToPagesTall = 0
    End With

Wo der Code hingehört, weißt Du? Ansonsten frag noch mal nach.

Mit 2016 und 2017 flexibel wäre noch die Frage, wie Du das steuern willst. Brauchst Du denn 2016 noch, da ändert sich doch nix mehr, oder?
Soll da vor dem Drucken eine Frage kommen oder wie stellst Du Dir das vor? Ansonsten kannst Du z.B. die "unerwünschten" Spalten einfach ausblenden.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Wiiinnniii
Antworten Top
#6
Auch Hallo,

mein Versuch (bei Printout habe ich den Parameter preview (für die Seitenansicht) auf True geschaltet, wenn es so paßt mußt Du ihn entfernen)

Code:
Sub prcDrucken()
   Dim rngBereich As Range
   Dim rngZelle As Range
   Dim rngDrucken As Range
   Dim strBereich As String
  
   Set rngBereich = Tabelle1.Rows(1).RowDifferences(Rows(1))
   For Each rngZelle In rngBereich
      If rngZelle.MergeArea.Address <> strBereich Then
         Set rngDrucken = rngZelle.Resize(rngZelle.End(xlDown).Row, rngZelle.MergeArea.Columns.Count)
         With Worksheets("Tabelle1").PageSetup
            .Orientation = xlPortrait
            .FitToPagesWide = 1
            .FitToPagesTall = 1
         End With
         rngDrucken.PrintOut preview:=True
         strBereich = rngZelle.MergeArea.Address
      End If
   Next rngZelle

End Sub
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • Wiiinnniii
Antworten Top
#7
Hallo Käpt`n Blaubeer, Steffl & schauan,

Euch Dreien herzlichen Dank ! Dank des Hinweises von schauan habe ich das alles auch nochmal aufgezeichnet mit dem Makrorecorder und bin so nachdem ich manches gelöscht habe von dem ich glaubte, dass ich das nicht benötige, auf folgende funktionierende Lösung gekommen:

Sub Makro1()

    Dim zeilen As Integer
    zeilen = Range("A101").Value
    Range("A1:L" & zeilen).Select
    
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .PrintTitleRows = ""
        .PrintTitleColumns = ""
    End With
    Application.PrintCommunication = True
    ActiveSheet.PageSetup.PrintArea = ""
    Application.PrintCommunication = False
    
    With ActiveSheet.PageSetup
        .Orientation = xlPortrait
        .FitToPagesWide = 1
        .FitToPagesTall = 0
    End With
    
    Application.PrintCommunication = True
    Selection.PrintOut Copies:=1, Collate:=True
    Range("M3").Select

End Sub

Ob ich den kursiven, fettgedruckten Code benötige, hab ich jetzt nicht probiert, aber egal, es läuft:

Er markiert automatisch die nötigen Zeilen und druckt alle Spalten der Markierung auf ein Blatt !

Herzlichen Dank Euch Dreien !

Ich bin noch relativ neu hier und bin positiv überrascht von dem Umgang hier mit Fragenden, Käptn Blaubeer, Du entsdchuldigst Dich bei mir - das brauchst Du nicht, aber dennoch vielen Dank!

Und dass Du dich gewundert hast, dass noch niemand anders mir geholfen hat, und dass dann als sein  es selbstverständlich gleich Steffl und schauan sich meines Problems angenommen haben !!!

Das ist wirklich toll !!!

Aber es stellt sich auch die Frage, wie geht man denn hier generell mit denen um, die viel mehr Fragen haben als Antworten geben (können), weil sie einfach nicht fit genug sind ?

Viele Grüße
vom Winni
Antworten Top
#8
Hallo Winni,

es freut mich, daß Du meine Panne so locker wegsteckst. Danke dafür.

Was das angeht
Zitat:Aber es stellt sich auch die Frage, wie geht man denn hier generell mit denen um,
die viel mehr Fragen haben als Antworten geben (können), weil sie einfach nicht fit genug sind ?

bleib hier und mache mit. In keinem Buch und auf keinem Lehrgang kann man so viel und
entspannt und in kürzester Zeit über soviel unterschiedliche Themen erfahren und lernen.
Sowas ist nur in einem Forum möglich.
Von Fragen und Antworten lebt ein Forum. Also stelle Fragen.

Solltest Du selber eine Antwort wissen ... oder auch nur glauben, eine Antwort zu haben, ... dann
nur keine Scheu und antworten. Niemand hier wird Dich auslachen oder beschimpfen.
Es gibt viele Wege, die nach Rom führen, also ran an den Speck.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
[-] Folgende(r) 2 Nutzer sagen Danke an Käpt'n Blaubär für diesen Beitrag:
  • Wiiinnniii, Lilla
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste