Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
868to872
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
868to872
868to872
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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


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

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige