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: Variabler Druckbereich
#1
Guten Tag,

ich habe folgendes Problem: Ich habe eine Userform in der man mittels Checkboxen auswählen kann welche Bereiche gedruckt werden sollen.
Ich habe ein Code erstellt, aber irgendwie klappt es nicht das die variable als Range angesehen wird.


Code:
Dim a As Range
Dim b As Range
Dim c As Range
Dim d As Range
Dim e As Range
Dim f As Range

If chk1 = True Then
Worksheets("Tabelle1").Range("L1").Value = 1
a = Range("A1:I50")
ElseIf chk2 = True Then
Worksheets("Tabelle1").Range("L1").Value = 2
b = Range("A51:I100")
ElseIf chk3 = True Then
Worksheets("Tabelle1").Range("L1").Value = 3
c = Range("A101:I150")
ElseIf chk4 = True Then
Worksheets("Tabelle1").Range("L1").Value = 4
d = Range("A151:I200")
ElseIf chk5 = True Then
Worksheets("Tabelle1").Range("L1").Value = 5
e = Range("A201:I250")
ElseIf chk6 = True Then
Worksheets("Tabelle1").Range("L1").Value = 6
f = Range("A251:I300")
End If

If chk1 = False And chk2 = False And chk3 = False And chk4 = False And chk5 = False And chk6 = False Then
MsgBox ("Keine Box wurde ausgewählt!")
Else
Worksheets("Tabelle1").PageSetup.PrintArea = "a,b,c,d,e,f"
End If


Vielen Dank schon im Voraus!

Gruß Joe
Antworten Top
#2
also ich weiß wie man jetzt eine Variable deklariert, nämlich mit


Set a = Range("A1:I50")



Nur funktioniert der Teil nicht:

Worksheets("Tabelle1").PageSetup.PrintArea = "a,b,c,d,e,f"


Zudem muss ich auch die Variable wieder leeren können falls der Bereich doch nicht mehr gedruckt werden soll ,aber da hab ich nur komplizierte Lösungen gefunden.
Welche einfache Möglichkeit gibt es da?

Gruß Joe
Antworten Top
#3
Hallo Joe,

das geht so auch nicht, Du hast hier Range-Variablen benötigst aber einen String. Außerdem paßt  deine Abfrage nicht, weil die beim ersten wahren Wert erfüllt ist und nicht mehr weiter macht. Sind die Checkboxen in einer Userform oder einer Tabelle?

Falls sie in einer Userform sind, kannst Du es mal mit diesem Code versuchen.

Code:
Sub prcX()

   Dim strDruck As String
   Dim lngC As Long
  
   For lngC = 1 To 6
      If Me.Controls("chk" & lngC) Then
         Worksheets("Tabelle1").Range("L1").Value = lngC
         strDruck = strDruck & Worksheets("Tabelle1").Cells(lngC * 50 - 49, 1).Resize(50, 9).Address & ","
      End If
   Next lngC
   If Len(strDruck) > 1 Then strDruck = Left(strDruck, Len(strDruck) - 1) Else MsgBox ("Keine Box wurde ausgewählt!"): Exit Sub
   Worksheets("Tabelle1").PageSetup.PrintArea = strDruck

End Sub
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#4
Hey Stefan,

DANKE DANKE DANKE!

Funktioniert super!

Gruß Joe
Antworten Top


Gehe zu:


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