Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bereich Drucken

Forumthread: Bereich Drucken

Bereich Drucken
11.05.2007 10:23:00
Heinz
Hallo Leute
Ist es möglich den Druckbereich von zB. CheckBox1,Checkbox2 und Checkbox3 auf ein A4 Blatt im Querformat zu drucken.
Siehe unteren Code
Es sollte wenn mehr als 3 Checkboxen aktiviert werden,eine Msg Box erscheinen "Maximal 3 Monate möglich"
Oder wenn nicht 3 Checkboxen hintereinander zB. 1+2+4 eine Msg Box erscheinen "Nur angrenzende Monate möglich"
Könnte mir Bitte jemand weiterhelfen ?
Danke, Heinz
Option Explicit

Private Sub CheckBox30_Click()
Application.ScreenUpdating = False
Dim tmp As String
If CheckBox1 Then Range("B4:J37").PrintOut 'Jänner
If CheckBox2 Then Range("K4:S37").PrintOut 'Februar
If CheckBox3 Then Range("T4:AB37").PrintOut 'März
If CheckBox4 Then Range("AC4:AK37").PrintOut 'April
If CheckBox5 Then Range("AL4:AT37").PrintOut 'Mai
If CheckBox6 Then Range("AU4:BC37").PrintOut 'Juni
If CheckBox7 Then Range("BD4:BL37").PrintOut 'Juli
If CheckBox8 Then Range("BM4:BU37").PrintOut 'August
If CheckBox9 Then Range("BV4:CD37").PrintOut 'September
If CheckBox10 Then Range("CE4:CM37").PrintOut 'Oktober
If CheckBox11 Then Range("CNK4:CV37").PrintOut 'November
If CheckBox12 Then Range("CW4:DE37").PrintOut 'Dezember
End Sub



Private Sub CheckBox50_Click()
Unload Me
End Sub


Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Bereich Drucken
12.05.2007 04:12:00
fcs
Hallo Heinz,
ungetestet (mangels Testdatei) sollte folgendes funktionieren. Wenn du unbedingt 2 Meldungen anzeigen möchtest, dann muss du die entsprechenden If-Bedingungen noch ein wenig umformulieren.
Gruß
Franz

Private Sub CheckBox30_Click()
Application.ScreenUpdating = False
Dim tmp As String, i%, Start%, Anzahl%
Dim DruckCheck(1 To 12) As Integer, DruckBereich(1 To 12) As String, Start As Integer
Dim rngBereich As Range
DruckBereich(1) = "B4:J37" 'Jänner
DruckBereich(2) = "K4:S37" 'Februar
DruckBereich(3) = "T4:AB37" 'März
DruckBereich(4) = "AC4:AK37" 'April
DruckBereich(5) = "AL4:AT37" 'Mai
DruckBereich(6) = "AU4:BC37" 'Juni
DruckBereich(7) = "BD4:BL37" 'Juli
DruckBereich(8) = "BM4:BU37" 'August
DruckBereich(9) = "BV4:CD37" 'September
DruckBereich(10) = "CE4:CM37" 'Oktober
DruckBereich(11) = "CN4:CV37" 'November
DruckBereich(12) = "CW4:DE37" 'Dezember
If CheckBox1 Then DruchCheck(1) = 1 'Jänner
If CheckBox2 Then DruchCheck(2) = 1 'Februar
If CheckBox3 Then DruchCheck(3) = 1 'März
If CheckBox4 Then DruchCheck(4) = 1 'April
If CheckBox5 Then DruchCheck(5) = 1 'Mai
If CheckBox6 Then DruchCheck(6) = 1 'Juni
If CheckBox7 Then DruchCheck(7) = 1 'Juli
If CheckBox8 Then DruchCheck(8) = 1 'August
If CheckBox9 Then DruchCheck(9) = 1 'September
If CheckBox10 Then DruchCheck(10) = 1 'Oktober
If CheckBox11 Then DruchCheck(11) = 1 'November
If CheckBox12 Then DruchCheck(12) = 1 'Dezember
For i = 1 To 12
If Start = 0 Then
If DruckCheck(i) = 1 Then
Start = i
Anzahl = 1
Set rngBereich = Range(Duckbereich(i))
End If
Else
If DruckCheck(i) = 1 Then
Anzahl = Anzahl + 1
If i - Start >= 3 Or Anzahl > 3 Then
MsgBox "Es dürfen max. 3 auf einander folgende Monate gedruckt werden "
GoTo Ende
End If
Set rngBereich = Application.Union(rngBereich, Range(Duckbereich(i)))
End If
End If
Next
rngBereich.PrintOut 'markierte Monate drucken
Ende:
End Sub


Anzeige
AW: Bereich Drucken
12.05.2007 08:35:16
Heinz
Hallo Franz
Erstmals Danke für Deine Hilfe
Nur bei ", Start As Integer" kommt die Fehlermeldung "Mehrfachdeklaration im Aktuellen Gültigkeitsbereich"
Könntest Du mir Bitte da nochmals weiterhelfen ?
Danke & Gruß Heinz

AW: Bereich Drucken
12.05.2007 09:34:00
fcs
Hallo heinz,
upps, da ist mir zum Schluss eine zweifache Deklaration der Variablen reingerutscht :(.
Ändere die folgende Zeile:

Dim DruckCheck(1 To 12) As Integer, DruckBereich(1 To 12) As String


Gruß
Franz

Anzeige
AW: Bereich Drucken
12.05.2007 10:26:36
Heinz
Hallo Franz
Jetzt kommt leider die Fehlermeldung "Druckbereich"
Habe die Datei mal hochgeldaen.
Könntest Du mir Bitte nochmals helfen ?
Danke für Deine Geduld
Gruß,Heinz
https://www.herber.de/bbs/user/42440.zip

Anzeige
AW: Bereich Drucken
12.05.2007 11:00:13
fcs
Hallo Heinz,
da hat der Tippfehlerteufel auch noch zugeschlagen - Duckbereich(i) statt Druckbereich(i)
Zusätzlich hab ich die Prüfung der Auswahl noch angepasst, damit sichergestellt ist, dass die max. 3 ausgewählten Monate tatsächlich hintereinander liegen. Und vor dem Drucken wird geprüft, ob die Anzahl der gewählten Monate >=1 ist, sonst kommt ggf zu einem Ablauffehler.
Gruß
Franz

Private Sub CheckBox30_Click()
Application.ScreenUpdating = False
Dim tmp As String, i%, Start%, Anzahl%
Dim DruckCheck(1 To 12) As Integer, DruckBereich(1 To 12) As String
Dim rngBereich As Range
DruckBereich(1) = "B4:J37" 'Jänner
DruckBereich(2) = "K4:S37" 'Februar
DruckBereich(3) = "T4:AB37" 'März
DruckBereich(4) = "AC4:AK37" 'April
DruckBereich(5) = "AL4:AT37" 'Mai
DruckBereich(6) = "AU4:BC37" 'Juni
DruckBereich(7) = "BD4:BL37" 'Juli
DruckBereich(8) = "BM4:BU37" 'August
DruckBereich(9) = "BV4:CD37" 'September
DruckBereich(10) = "CE4:CM37" 'Oktober
DruckBereich(11) = "CN4:CV37" 'November
DruckBereich(12) = "CW4:DE37" 'Dezember
If CheckBox1 Then DruckCheck(1) = 1 'Jänner
If CheckBox2 Then DruckCheck(2) = 1 'Februar
If CheckBox3 Then DruckCheck(3) = 1 'März
If CheckBox4 Then DruckCheck(4) = 1 'April
If CheckBox5 Then DruckCheck(5) = 1 'Mai
If CheckBox6 Then DruckCheck(6) = 1 'Juni
If CheckBox7 Then DruckCheck(7) = 1 'Juli
If CheckBox8 Then DruckCheck(8) = 1 'August
If CheckBox9 Then DruckCheck(9) = 1 'September
If CheckBox10 Then DruckCheck(10) = 1 'Oktober
If CheckBox11 Then DruckCheck(11) = 1 'November
If CheckBox12 Then DruckCheck(12) = 1 'Dezember
For i = 1 To 12
If Start = 0 Then
If DruckCheck(i) = 1 Then
Start = i
Anzahl = 1
Set rngBereich = Range(DruckBereich(i))
End If
Else
If DruckCheck(i) = 1 Then
Anzahl = Anzahl + 1
If i - Start >= 3 Or Anzahl > 3 Or Anzahl - 1 = 1 Then
rngBereich.PrintOut 'markierte Monate drucken
End If
Ende:
End Sub


Anzeige
AW: Bereich Drucken
12.05.2007 11:17:00
Heinz
Hallo Franz
P E R F E C T !!!!
Echt Geil !!
Recht herzlichen Dank
Grüsse aus Oberösterreich, Heinz
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige