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

Makro abspecken

Makro abspecken
04.03.2008 16:53:21
Alex
Hallo VBA'ler !
Meine Frage:
Ist das folgende Makro noch kürzer zugestalten ?
Hat jemand eine Idee ob das geht und wenn ja - Wie ?
Einstweilen herzlichen Dank an alle, die sich für mich bemühen.
MfG
Alex

Sub Makro1()
Application.ScreenUpdating = False
Rem Füllfarbe löschen
Range("C2:D2,E2,C7,D7,E7,C31:D31,E31").Select
Selection.Interior.ColorIndex = xlNone
Rem Schriftfarbe löschen
Range("E2,E7,E31").Select
Selection.Font.ColorIndex = 0
Rem Rahmen löschen
Range("C7,D7,E7,C31:D31,E31").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
With ActiveSheet.PageSetup
.PrintArea = "$A$1:$E$35"
.LeftMargin = Application.CentimetersToPoints(2)
.RightMargin = Application.CentimetersToPoints(0)
.TopMargin = Application.CentimetersToPoints(1.5)
.BottomMargin = Application.CentimetersToPoints(0)
.HeaderMargin = Application.CentimetersToPoints(0)
.FooterMargin = Application.CentimetersToPoints(0)
.PaperSize = xlPaperA5
.Orientation = xlPortrait
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Rem Füllfarbe setzen
Range("C2:D2,E2,D7,C7,E7,C31:D31,E31").Select
With Selection.Interior
.ColorIndex = 36
.Pattern = xlSolid
End With
Rem Schriftfarbe setzen
Range("E2,E7,E31").Select
Selection.Font.ColorIndex = 3
Rem Rahmen setzen
Range("C7,D7,E7,C31:D31,E31").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Range("A1").Activate
Application.ScreenUpdating = True
End Sub


11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro abspecken
04.03.2008 17:15:00
Fred
Hi,
dir gehts doch nur darum, vorm drucken die Farben und Rahmen zu entfernen
und danach wieder zu setzen?
Schließ die datei ohne zu speichern.
mfg Fred

AW: Makro abspecken
04.03.2008 19:11:14
Daniel
Hi
wenn du nur zum Drucken die Rahmen und Füllfarben ausschalten willst, dann würde ich ein leeres Blatt einfügen (im folgenden Code "Zwischenspeicher" genannt) und dort die Formate zwischenspeichern.
nach dem Drucken spielst du die Formate wieder zurück.
damit vereinfachst du dir auf jeden fall den 2. Teil des Makros
ansonsten würde ich anstelle von SELECT mit der WITH-Klammer arbeiten:

Sub Makro1()
Application.ScreenUpdating = False
Rem Formate sichern
Cells.Copy
Sheets("Zwischenspeicher").Cells(1,1).PasteSpecial xlPasteFormats   
Rem Füllfarbe löschen
Range("C2:D2,E2,C7,D7,E7,C31:D31,E31").Interior.ColorIndex = xlNone
Rem Schriftfarbe löschen
Range("E2,E7,E31").Font.ColorIndex = 0
Rem Rahmen löschen
with Range("C7,D7,E7,C31:D31,E31")
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
.Borders(xlEdgeLeft).LineStyle = xlNone
.Borders(xlEdgeTop).LineStyle = xlNone
.Borders(xlEdgeBottom).LineStyle = xlNone
.Borders(xlEdgeRight).LineStyle = xlNone
end with
With ActiveSheet.PageSetup
.PrintArea = "$A$1:$E$35"
.LeftMargin = Application.CentimetersToPoints(2)
.RightMargin = Application.CentimetersToPoints(0)
.TopMargin = Application.CentimetersToPoints(1.5)
.BottomMargin = Application.CentimetersToPoints(0)
.HeaderMargin = Application.CentimetersToPoints(0)
.FooterMargin = Application.CentimetersToPoints(0)
.PaperSize = xlPaperA5
.Orientation = xlPortrait
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Rem Formate zurückschreiben
Sheets("Zwischenspeicher").Cells.Copy
Cells(1,1).PasteSpecial xlPasteFormats
Sheets("Zwischenspeicher").Cells.Clear   
Range("A1").Activate
Application.ScreenUpdating = True
End Sub


Gruß, Daniel

Anzeige
AW: und noch ne verkürzung
05.03.2008 00:31:34
Daniel
Hi
da ist mir noch was eingefallen

Rem Rahmen löschen
Range("C7,D7,E7,C31:D31,E31").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone


den Abschnitt hier kannst du so kürzen


Rem Rahmen löschen
Dim i as long
for i = 5 to 10
Range("C7,D7,E7,C31:D31,E31").Borders(i).LineStyle = xlNone
next


Gruß, Daniel

Anzeige
AW: Makro abspecken
05.03.2008 11:33:00
Odje.K
Hallo Daniel,
Danke für deine Mühe und Hilfe.
Gruß
Alex

AW: Makro abspecken
06.03.2008 10:52:36
Alex
Hallo Daniel,
bin heute erst dazu gekommen deine Hilfe umzusetzen.
Leider werden die gesicherten Formate, nach dem Ausdruck, nicht zurückgesetzt.
Hast du noch eine Idee wie man das noch ändern könnte?
Gruß
Alex

AW: Makro abspecken
07.03.2008 00:45:31
Daniel
Hi
wie soll ich wissen, was du falsch machst, wenn ich deinen Code nicht kenne?
für ne Fehleranalyse ist immer auch ne Beispieldatei hilftreich.
Gruß, Daniel

AW: Makro abspecken
07.03.2008 09:02:00
Alex
Hallo Daniel,
dies ist das Makro wo ich deine Änderungsvorschläge eingesetzt habe.
Gruß
Alex
  • 
    Sub Makro1()
    Application.ScreenUpdating = False
    Rem Formate sichen
    Cells.Copy
    Sheets("Ablage").Cells(1, 1).PasteSpecial xlPasteFormats
    Rem Füllfarbe löschen
    Range("C2:D2,E2,C7,D7,E7,C31:D31,E31").Interior.ColorIndex = xlNone
    Rem Rahmen löschen
    Dim i As Long
    For i = 5 To 10
    Range("C7,D7,E7,C31:D31,E31").Borders(i).LineStyle = xlNone
    Next
    Rem Druckbefehl
    'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    Rem Formate zurückschreiben
    Sheets("Ablage").Cells.Copy
    Cells(1, 1).PasteSpecial xlPasteFormats
    Sheets("Ablage").Cells.Clear
    Range("A1").Activate
    Application.ScreenUpdating = True
    End Sub
    


  • Anzeige
    AW: Makro abspecken
    07.03.2008 17:50:00
    Daniel
    HI
    funktioniert einwandfrei.
    die im Sheet "Ablage" zwischengespeicherten Formate werden 1:1 zurückgeschrieben.
    Gruß, Daniel

    AW: Makro abspecken
    07.03.2008 18:14:00
    Alex
    Hallo Daniel,
    
    funktioniert einwandfrei.
    die im Sheet "Ablage" zwischengespeicherten Formate werden 1:1 zurückgeschrieben
    


    Pech für mich, bei mir funktioniert es leider nicht. Schade!
    Wünsche dir noch einen Abend.
    Gruß
    Alex

    AW: Makro abspecken
    07.03.2008 18:34:00
    Daniel
    Hi
    nur mal so als kleiner Tip:
    wenn du mal deine Datei hochladen würdest, wo es nicht funktioniert, könnte man viel besser nach dem Fehler suchen.
    Schließlich muss es ja nicht immer am Code liegen.
    Gruß, Daniel

    Anzeige
    AW: Makro abspecken
    08.03.2008 11:06:00
    Alex
    Hallo Daniel,
    hier mal eine Testdatei.
    Wenn ich die Datei ausdrucke, bleibt die Formatierung aus der "Ablage" in der Zwischenablage hängen.
    https://www.herber.de/bbs/user/50565.xls
    Gruß
    Alex

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige