Herbers Excel-Forum - das Archiv
Makro drucken vereinfachen
Betrifft: Makro drucken vereinfachen
von: Gisela
Geschrieben am: 18.12.2006 21:48:32
Hallo zusammen,
ich muß Ausdrucke entsprechend den Einträgen einer Spalte vornehmen.
Mit meinen bescheidenen Kenntnissen sieht das so aus und funktioniert auch.
Wer kann mir sagen, wie ich das vereinfachen kann. Es geht um ca. 50 Ausdrucke. Die Namen stehen in Spalte IV und müssen auf der ausgedruckten Seite in E1 stehen.
Hier ein Auszug aus meinem jetzigen Makro:
Sub drucken()
[IV26].Copy
[E1].PasteSpecial (xlPasteValues)
If ActiveCell <> "" Then
ActiveWindow.SelectedSheets.PrintOut Copies:=1
[IV27].Copy
[E1].PasteSpecial (xlPasteValues)
If ActiveCell <> "" Then
ActiveWindow.SelectedSheets.PrintOut Copies:=1
[IV28].Copy
[E1].PasteSpecial (xlPasteValues)
If ActiveCell <> "" Then
ActiveWindow.SelectedSheets.PrintOut Copies:=1
[IV29].Copy
[E1].PasteSpecial (xlPasteValues)
If ActiveCell <> "" Then
ActiveWindow.SelectedSheets.PrintOut Copies:=1
[IV30].Copy
[E1].PasteSpecial (xlPasteValues)
If ActiveCell <> "" Then
ActiveWindow.SelectedSheets.PrintOut Copies:=1
Else
End If
End If
End If
End If
End If
End Sub
Wie oben schon beschrieben, hab ich das jetzt 50x im Makro stehen.
Geht das auch kürzer? Wenn ja, wie?
Vielen Dank für jede Hilfe
Liebe Grüße
Gisela
Betrifft: AW: Makro drucken vereinfachen
von: chris b
Geschrieben am: 18.12.2006 21:54:18
Hallo Gisela,
hilft dir das weiter ?
Sub drucken()
For x = 26 To 100
Cells(x, 256).Copy
[E1].PasteSpecial (xlPasteValues)
If ActiveCell <> "" Then
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End If
Next
End Sub
Makro einfügen in ein ganz normales Codemodul.
gruß Chris
Betrifft: Vielen Dank und liebe Grüße, o.T.
von: Gisela
Geschrieben am: 18.12.2006 22:06:11
o
Betrifft: AW: Makro drucken vereinfachen
von: Georg
Geschrieben am: 18.12.2006 21:59:59
Hallo Gisela, versuch es mal damit
Sub drucken()
Dim x, max As Integer
max = 50 'Maximale Anzahl der Druckseiten
For x = 1 To max '1 ist die erste Zeile (falls 26 die erste ist dann hier mit 26 beginnen und max + 26!)
Range("D" & x).Copy
Range("E1").PasteSpecial (xlPasteValues)
If Range("D" & x).Value <> "" Then ActiveWindow.SelectedSheets.PrintOut Copies:=1
Next
End Sub
lg, Georg
Betrifft: Vielen Dank und liebe Grüße, o.T.
von: Gisela
Geschrieben am: 18.12.2006 22:06:44
o