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

Makro

Makro
08.03.2007 10:25:46
ganz
Hallo,
habe folgendes Makro in der Tabelle, soweit so gut.
In der dann gespeicherten Tabelle liegen nun einige Daten der Spalte H ausserhalb des Duckbereichs.
Wie bekomme ich die Daten ( es ist ein Brief) automatisch in den Druckbereich gespeichert?
Ausserdem möchte ich das die Tabelle automatisch unter dem Namen in A31 und dem Ort in A16 gespeichert werden.
Es sollen aber keine 2 Dokumente gespeichert werden sondern ZB. in A31 steht: Müller und in A16 Berlin
Dann soll der speichername Müllerberlin heißen.
Geht das und kann mir jemand helfen?
Ich bedanke mich im voraus und viele Grüße aus Bonn
ralf
Sub Speichern()
Range("A1:H50").Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Range("A1").Select
Application.DisplayAlerts = False
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:="C:\Mandantenbriefe\" & Range("A31") & ".xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
ActiveWorkbook.SaveAs Filename:="C:\Mandantenbriefe\" & Range("A31") & ".xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
Application.DisplayAlerts = True
ActiveWorkbook.Close
End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro
08.03.2007 11:22:00
marcl
Halo Ralf,
vielleicht hilft das weiter, ist aber bestimmt nicht die gelanteste Lösung.
Sub speichern()
Range("A1:H50").Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Range("A1").Select
' Seitenränder anpassen
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0)
.BottomMargin = Application.InchesToPoints(0)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
End With
ActiveWindow.View = xlPageBreakPreview
ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1
ActiveSheet.VPageBreaks(1).DragOff Direction:=xlDown, RegionIndex:=1
ActiveWindow.View = xlNormalView
Application.DisplayAlerts = False
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:="C:\Mandantenbriefe\" & Range("A31") & Range("A16") & ".xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
Application.DisplayAlerts = True
ActiveWorkbook.Close
End Sub

Gruß
marcl
Anzeige
AW: Makro
08.03.2007 12:24:00
ganz
Hallo,
sieht ganz gut aus, allerdings kommt laufzeitfehler 9 Index liegt ausserhalb des gültigen Bereichs
AW: Makro
08.03.2007 12:39:00
marcl
Wo das denn? Gleich am Anfang?
Bei mir hat das gut funktioniert. Stelle doch sonst mal Deine Datei aufn Server.
Gruß
marcl
AW: Makro
08.03.2007 12:49:00
ganz
Hallo nochmal,
hier ist der Fehler
Sub speichern()
Range("A1:H50").Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Range("A1").Select
' Seitenränder anpassen
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0)
.BottomMargin = Application.InchesToPoints(0)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
End With
ActiveWindow.View = xlPageBreakPreview
<i>  <b>ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, _
RegionIndex:=1</b></i>
ActiveSheet.VPageBreaks(1).DragOff Direction:=xlDown, RegionIndex:=1
ActiveWindow.View = xlNormalView
Application.DisplayAlerts = False
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:="C:\Mandantenbriefe\" & Range("A31") & Range("A16") & ".xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
Application.DisplayAlerts = True
ActiveWorkbook.Close
End Sub

Anzeige
AW: Makro
08.03.2007 12:50:00
ganz
ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1
AW: Makro
08.03.2007 13:18:57
marcl
Kann es sein, dass manchmal alles innerhalb des Druckbereiches liegt. Das funktioniert nur, wenn eindeutig der Bereich nicht im Druckbereich liegt (also eine 2. Seite sein würde).
Gruß
marcl
AW: Makro
09.03.2007 15:45:16
ganz
Hallo Marc,
ja das ist so. Leider kommt immer wieder dieser laufzeitfehler.
Wie bekomme ich das hin?
gruß
ralf
AW: Makro
09.03.2007 16:21:00
ganz
Hallo,
mein Problem besteht darin das bei diesem Makro der Laufzeitfehler 9 eintritt,
kann mir jemand helfen?
danke
ralf
Sub speichern()
Range("A1:H50").Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Range("A1").Select
' Seitenränder anpassen
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0)
.BottomMargin = Application.InchesToPoints(0)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
End With
ActiveWindow.View = xlPageBreakPreview
ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1
ActiveSheet.VPageBreaks(1).DragOff Direction:=xlDown, RegionIndex:=1
ActiveWindow.View = xlNormalView
Application.DisplayAlerts = False
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:="C:\Mandantenbriefe\" & Range("A31") & Range("A16") & ".xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
Application.DisplayAlerts = True
ActiveWorkbook.Close
End Sub

Anzeige
AW: Makro
12.03.2007 07:04:36
marcl
So verusch mal, ob das jetzt geht.
habe 2 On Error eingefügt. Sollte mal alles im Druckbereich liegen, läuft Makro trotzdem weoter.
Sub speichern()
Range("A1:H50").Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Range("A1").Select
' Seitenränder anpassen
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0)
.BottomMargin = Application.InchesToPoints(0)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
End With
ActiveWindow.View = xlPageBreakPreview
On Error Resume Next
ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1
ActiveSheet.VPageBreaks(1).DragOff Direction:=xlDown, RegionIndex:=1
ActiveWindow.View = xlNormalView
Application.DisplayAlerts = False
Application.CutCopyMode = False
On Error GoTo 0
ActiveWorkbook.SaveAs Filename:="C:\Mandantenbriefe\" & Range("A31") & Range("A16") & _
".xls", _ _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
Application.DisplayAlerts = True
ActiveWorkbook.Close
End Sub

Gruß
marcl
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige