Hallo,
ich habe in den vergangenen Tagen die Ausgabe von Diagramme in einer Excel-Mappe reorganisiert. Statt vieler Sheets mit jeweils bis zu 10 statischen Diagramme gibt jetzt nur noch ein Sheet mit 8 Dynamischen, die der User via Dropdown und Checkboxen nach belieben zusammenstellen kann.
Nun stellt sich zum Schulß noch das Problem der Druckbereiche.
Selbstverständlich kann man über Druckbereich hinzu fügen alle 8 setzen und ich bekomme beim PDF-Print (eigenes Makro) je Diagramm eine Seite.
Auch das versuche ich gerade via Checkboxen (je eine neben dem Diagramm) etwas zu flexibilisieren um dem User die Möglichkeit zu geben genau die zu wählen die erbraucht.
Wenn's auch nicht schön aussieht und wahrscheinlich viel einfacher geht bekommen ich die Abfrage der Checkboxen schon mal hin. Was mir jetzt noch feht ist das korrekte zusammenbauen. Hab's mal mit ner Schleife versuchtund mit Stringverkettung, aber das hat alles bisher nit zum gewünschten Ergebnis geführt.
LG
opiwahn
ich habe in den vergangenen Tagen die Ausgabe von Diagramme in einer Excel-Mappe reorganisiert. Statt vieler Sheets mit jeweils bis zu 10 statischen Diagramme gibt jetzt nur noch ein Sheet mit 8 Dynamischen, die der User via Dropdown und Checkboxen nach belieben zusammenstellen kann.
Nun stellt sich zum Schulß noch das Problem der Druckbereiche.
Selbstverständlich kann man über Druckbereich hinzu fügen alle 8 setzen und ich bekomme beim PDF-Print (eigenes Makro) je Diagramm eine Seite.
Auch das versuche ich gerade via Checkboxen (je eine neben dem Diagramm) etwas zu flexibilisieren um dem User die Möglichkeit zu geben genau die zu wählen die erbraucht.
Wenn's auch nicht schön aussieht und wahrscheinlich viel einfacher geht bekommen ich die Abfrage der Checkboxen schon mal hin. Was mir jetzt noch feht ist das korrekte zusammenbauen. Hab's mal mit ner Schleife versuchtund mit Stringverkettung, aber das hat alles bisher nit zum gewünschten Ergebnis geführt.
Visual Basic:
Sub PrintAreaOn()
Dim PrintA1 As String
Dim PrintA2 As String
Dim PrintA3 As String
Dim PrintA4 As String
Dim PrintA5 As String
Dim PrintA6 As String
Dim PrintA7 As String
Dim PrintA8 As String
If ActiveSheet.Shapes("Print1").ControlFormat.Value = xlOn Then
PrintA1 = "b5:k28"
ElseIf ActiveSheet.Shapes("Print1").ControlFormat.Value = xlOff Then
PrintA1 = ""
End If
If ActiveSheet.Shapes("Print2").ControlFormat.Value = xlOn Then
PrintA2 = "n5:w28"
ElseIf ActiveSheet.Shapes("Print2").ControlFormat.Value = xlOff Then
PrintA2 = ""
End If
If ActiveSheet.Shapes("Print3").ControlFormat.Value = xlOn Then
PrintA3 = "b31:k54"
ElseIf ActiveSheet.Shapes("Print3").ControlFormat.Value = xlOff Then
PrintA3 = ""
End If
If ActiveSheet.Shapes("Print4").ControlFormat.Value = xlOn Then
PrintA4 = "n31:w54"
ElseIf ActiveSheet.Shapes("Print4").ControlFormat.Value = xlOff Then
PrintA4 = ""
End If
If ActiveSheet.Shapes("Print5").ControlFormat.Value = xlOn Then
PrintA5 = "b57:k80"
ElseIf ActiveSheet.Shapes("Print5").ControlFormat.Value = xlOff Then
PrintA5 = ""
End If
If ActiveSheet.Shapes("Print6").ControlFormat.Value = xlOn Then
PrintA6 = "n57:w80"
ElseIf ActiveSheet.Shapes("Print6").ControlFormat.Value = xlOff Then
PrintA6 = ""
End If
If ActiveSheet.Shapes("Print7").ControlFormat.Value = xlOn Then
PrintA7 = "b83:k106"
ElseIf ActiveSheet.Shapes("Print7").ControlFormat.Value = xlOff Then
PrintA7 = ""
End If
If ActiveSheet.Shapes("Print8").ControlFormat.Value = xlOn Then
PrintA8 = "n83:w106"
ElseIf ActiveSheet.Shapes("Print8").ControlFormat.Value = xlOff Then
PrintA8 = ""
End If
'For i = 1 To 8
'If PrintA & i <> "" Then
'MsgBox "PrintA" & i & ": " & PrintA & i
'End If
'Next
'ActiveSheet.PageSetup.PrintArea = PrintA1
End Sub
opiwahn