Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1488to1492
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
Inhaltsverzeichnis

Druckbereich mit startcol

Druckbereich mit startcol
02.05.2016 14:30:10
Gunnar
Hallo Zusammen,
ich verwende folgendes Makro, um vordefinierte Druckbereiche per Schaltfläche auszudrucken.
 _
Sub Drucken
With ActiveSheet.PageSetup
PrintArea = "A14:E40"
End With
Application.Dialogs(xlDialogPrint).Show
End Sub

Weil ich mehrere identische Bereiche habe (u.a. G14:K40, M14:Q40 usw.), wollte ich nur ein Makro Drucken verwenden und der Schaltfläche dann immer den Makronamen und die Startspalte (startcol) mitgeben. Irgendwie bekomme ich den Bereich nicht definiert - also wie müsste meine Range unter Verwendung der Variable startcol aussehen?
Probiert habe ich es nach anpassen des Makros in
Sub Drucken (startcol as Long)
damit:
PrintArea = Range(Cells(14, startcol + 0), Cells(40, startcol + 5))
Was leider nicht funktioniert.
Kann jemand helfen?
Vielen Dank im Voraus und viele Grüße
Gunnar

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Druckbereich mit startcol
02.05.2016 14:33:42
ChrisL
Hi Gunnar
Da fehlt ein Punkt...
Sub Drucken
With ActiveSheet.PageSetup
.PrintArea = "A14:E40"
End With
Application.Dialogs(xlDialogPrint).Show
End Sub
cu
Chris

AW: Druckbereich mit startcol
02.05.2016 15:19:24
Gunnar
Hallo Chris,
das Makro, so wie ich es oben abgedruckt habe, funktioniert grundsätzlich - auch ohne den Punkt. Ich suche nach einer Lösung, mit der ich mit dem einen Makro mehrere verschiedene Zellbereiche drucken kann.
Trotzdem danke!
Gruß, Gunnar

AW: Druckbereich mit startcol
02.05.2016 15:52:53
ChrisL
Hi Gunnar
Schön, dass Excel bei dir auch ohne Punkt auskommt :)
Ich weiss jetzt nicht, ob die Frage noch aktuell ist, aber folgend zwei Beispiele für mehrere Zellenbereiche:
Sub Drucken()
With ActiveSheet.PageSetup
.PrintArea = "A14:E40,M14:Q40"
End With
End Sub

Sub Drucken()
Dim startcol As Integer
Dim rng As Range
For startcol = 7 To 14 Step 7
If Not rng Is Nothing Then
Set rng = Union(rng, Range(Cells(14, startcol), Cells(40, startcol + 5)))
Else
Set rng = Range(Cells(14, startcol), Cells(40, startcol + 5))
End If
Next startcol
With ActiveSheet.PageSetup
.PrintArea = rng.Address
End With
End Sub

cu
Chris

Anzeige
AW: Druckbereich mit startcol
02.05.2016 17:12:27
Gunnar
Hallo Chris,
ich hatte mich schon gefreut, dass alles funktioniert, aber leider druckt er mir immer den gleichen Zellbereich aus. Was mach ich falsch. Hier nochmal das Makro, was den Druckbereich festlegt:
Sub Drucken(startcol As Long)
Dim ws As Worksheet
Set ws = Worksheets("AIF")
ws.Range(Cells(14, startcol), Cells(40, startcol + 4)).Select
With ActiveSheet.PageSetup
.PrintArea = Range(Cells(14, startcol), Cells(40, startcol + 4))
End With
Application.Dialogs(xlDialogPrint).Show
End Sub
Und hier das der Code mit dem ich per Schaltfläche die einzelnen Bereiche ansteuere:
Private Sub CommandButton21_Click()
Drucken 1
End Sub
Die Zahl hinter dem Makro ist der Wert für die startcol. Das hab ich in einem anderen Fall schon verwendet, aber hier bleibt er - egal welche Zahl ich hinter das Makro schreibe - immer auf dem ersten Druckbereich (also A14:E40) hängen.
Hast du noch 'ne Idee?
Danke & Gruß, Gunnar

Anzeige
AW: Druckbereich mit startcol
02.05.2016 17:59:55
ChrisL
Hi Gunnar
Wahrscheinlich ist das Problem ein Select, ohne dass das Tabellenblatt vorher aktiviert wurde.
Was mir auffällt ist, dass die Referenzierung generell ungenau ist. Du definierst zwar Tabelle "AIF" korrekt und referenzierst im Select (aber nur helbwegs). Die Select-Zeile ist aber generell überflüssig. In der Zeile .PrintArea = fehlt die Referenzierung d.h. die Zelle bezieht sich auf das aktive Tabellenblatt.
Probier mal...
Sub Drucken(startcol As Long)
Dim ws As Worksheet
Set ws = Worksheets("AIF")
With ws
.PageSetup.PrintArea = .Range(.Cells(14, startcol), .Cells(40, startcol + 4))
End With
Application.Dialogs(xlDialogPrint).Show
End Sub 
Und schau doch nochmal ob startcol den korrekten Wert hat; müsste eigentlich.
MsgBox startcol
cu
Chris

Anzeige
AW: Druckbereich mit startcol
03.05.2016 12:32:42
Gunnar
Hallo Chris,
sorry für die späte Antwort. Hab den Code gerade so eingebaut. Funktioniert leider auch nicht.
Ich glaube ich bleibe bei der alten Variante. Muss ich eben bei Veränderungen am Druckbereich ein paar mehr Makros anpassen...;-)
Trotzdem Danke für deine Mühe.
Viele Grüße
Gunnar

AW: Druckbereich mit startcol
03.05.2016 13:28:20
UweD
Es wird eine String erwartet.
Deshalb so..
.PageSetup.PrintArea = .Range(.Cells(14, startcol), .Cells(40, startcol + 4)).Address
Gruß UweD

AW: Druckbereich mit startcol
03.05.2016 14:08:35
Gunnar
Hallo Uwe,
danke für die Antwort. ".Address" hatte ich auch schon verwendet, da war aber offensichtlich noch ein anderer Fehler im Makro.
So funktioniert es jetzt super.
Sub Drucken(startcol As Long)
With ActiveSheet.PageSetup
.PrintArea = Range(Cells(14, startcol), Cells(40, startcol + 4)).Address
End With
ActiveSheet.Application.Dialogs(xlDialogPrint).Show
End Sub
Aufruf über Schaltfläche + startcol-Variable.
Herzlichen Dank an alle.
Gruß, Gunnar

Anzeige
AW: Druckbereich mit startcol
02.05.2016 14:37:15
Rudi
Hallo,
PrintArea ist ein String.
.PrintArea = Range(Cells(14, startcol + 0), Cells(40, startcol + 5)).Address
Gruß
Rudi

AW: Druckbereich mit startcol
02.05.2016 15:35:42
Gunnar
Hallo Rudi,
danke für die Antwort. Ich hab das jetzt folgendermaßen verwendet:
Sub Drucken(startcol as Long)
With ActiveSheet.PageSetup
.PrintArea = Range(Cells(14, startcol + 0), Cells(40, startcol + 5)).Address
End With
Application.Dialogs(xlDialogPrint).Show
End Sub
Aber es funktioniert leider nicht. Ich bekomme die PrintArea-Zeile im VBA-Editor immer gelb markiert.
Hast du eine Idee, was da noch falsch ist?
Danke & Gruß, Gunnar

Anzeige
AW: Druckbereich mit startcol
02.05.2016 15:38:15
UweD
Hi
startcol solltest du schon einen Wert zuweisen
Spalte 0 (Null) gibt es nämlich nicht
Gruß UweD

AW: Druckbereich mit startcol
02.05.2016 15:43:47
Gunnar
Hallo Uwe,
1000 Dank. Kleine Anpassung riesen Wirkung.
Sub Drucken(startcol As Long)
With ActiveSheet.PageSetup
PrintArea = Range(Cells(14, startcol), Cells(40, startcol + 5)).Address
End With
Application.Dialogs(xlDialogPrint).Show
End Sub
So tut es jetzt genau, was es soll.
Gruß, Gunnar

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige