Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Formatierung übernehmen

VBA Formatierung übernehmen
14.09.2015 16:23:51
Dietz
Hallo zusammen,
ich versuche mittels:
ZielSheet.Rows(zInsert).EntireRow.Insert
eine neue Zeile einzufügen aber ich bekomme es nicht hin die richtige Formatierung mitzunehmen.
sowohl:
Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
als auch
Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
bringen nicht den erhofften Erfolg.
Was mache ich falsch?
Gruß
Dietz

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Formatierung übernehmen
14.09.2015 16:26:11
Dietz
Mit:

ZielSheet.Rows(zInsert).EntireRow.Insert
With Range(Cells(zInsert, 1), Cells(zInsert, 12))
With .Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Color = -15393739
.TintAndShade = 0
.Weight = xlThick
End With
With .Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Color = -15393739
.TintAndShade = 0
.Weight = xlHairline
End With
With .Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Color = -15393739
.TintAndShade = 0
.Weight = xlHairline
End With
With .Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Color = -15393739
.TintAndShade = 0
.Weight = xlThick
End With
With .Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Color = -15393739
.TintAndShade = 0
.Weight = xlHairline
End With
With .Borders(xlInsideHorizontal).LineStyle = xlNone
End With
End With
erfolgt aber auch keine Formatierung der Zellen :(
Gruß nochmal
Dietz

Anzeige
AW: VBA Formatierung übernehmen
14.09.2015 16:54:35
Rudi
Hallo,
dann kopiere die Formate doch.
With ZielSheet.Rows(zInsert)
.Insert
.Offset(1).Copy
.Cells(1).PasteSpecial xlPasteFormats
Application.CutCopyMode = False
End With

Gruß
Rudi
;
Anzeige
Anzeige

Infobox / Tutorial

VBA Formatierung übernehmen in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und gehe zu dem Arbeitsblatt, in dem Du die VBA-Formatierung übernehmen möchtest.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Füge ein neues Modul hinzu, indem Du mit der rechten Maustaste auf "VBAProject" klickst und "Einfügen" > "Modul" wählst.

  4. Nutze den folgenden Code, um eine neue Zeile einzufügen und die Formatierung zu übernehmen:

    Sub FormatierungUebernehmen()
       Dim ZielSheet As Worksheet
       Dim zInsert As Long
    
       Set ZielSheet = ThisWorkbook.Sheets("DeinBlattname") ' Ersetze DeinBlattname mit dem tatsächlichen Namen
       zInsert = 5 ' Setze die Zeile, in der Du die neue Zeile einfügen möchtest
    
       ZielSheet.Rows(zInsert).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
       ZielSheet.Rows(zInsert - 1).Copy
       ZielSheet.Rows(zInsert).PasteSpecial xlPasteFormats
       Application.CutCopyMode = False
    End Sub
  5. Ändere "DeinBlattname" und zInsert nach Bedarf und führe das Skript aus.


Häufige Fehler und Lösungen

  • Fehler: Die Formatierung wird nicht übernommen.

    • Stelle sicher, dass Du CopyOrigin:=xlFormatFromLeftOrAbove oder CopyOrigin:=xlFormatFromRightOrBelow korrekt verwendest. Diese Parameter sind entscheidend für die Übertragung der Formatierung.
  • Fehler: Der Code gibt eine Fehlermeldung zurück.

    • Überprüfe, ob die angegebene Zeile existiert und nicht außerhalb des Bereichs liegt.

Alternative Methoden

Eine weitere Möglichkeit, die Formatierung zu übertragen, ist die Verwendung der PasteSpecial-Methode. Hierbei kannst Du auch den xlPasteFormats Parameter verwenden, um gezielt nur die Formatierungen zu kopieren.

With ZielSheet.Rows(zInsert)
    .Insert
    .Offset(1).Copy
    .Cells(1).PasteSpecial xlPasteFormats
    Application.CutCopyMode = False
End With

Praktische Beispiele

Angenommen, Du möchtest die Formatierung einer Zeile in ein neues Arbeitsblatt übertragen. Hier ist ein Beispiel:

Sub FormatVonAndererZelleUebernehmen()
    Dim QuellSheet As Worksheet
    Dim ZielSheet As Worksheet
    Set QuellSheet = ThisWorkbook.Sheets("QuellBlatt") ' Blatt mit der gewünschten Formatierung
    Set ZielSheet = ThisWorkbook.Sheets("ZielBlatt") ' Zielblatt für die Übertragung

    QuellSheet.Rows(1).Copy
    ZielSheet.Rows(1).PasteSpecial xlPasteFormats
    Application.CutCopyMode = False
End Sub

Tipps für Profis

  • Nutze die Application.ScreenUpdating = False und Application.ScreenUpdating = True Befehle, um die Performance beim Ausführen von VBA-Skripten zu verbessern.
  • Dokumentiere Deinen Code gut, damit Du und andere ihn in Zukunft einfacher verstehen und anpassen können.
  • Wenn Du regelmäßig ähnliche Aufgaben ausführst, erstelle eine Funktion, die alle Schritte automatisiert.

FAQ: Häufige Fragen

1. Was sind die Unterschiede zwischen xlFormatFromLeftOrAbove und xlFormatFromRightOrBelow?
xlFormatFromLeftOrAbove verwendet die Formatierung der Zelle links oder darüber, während xlFormatFromRightOrBelow die Formatierung von der Zelle rechts oder darunter übernimmt.

2. Wie kann ich eine Formatierung automatisch übernehmen?
Du kannst die Funktion CopyOrigin in Deinem VBA-Code verwenden, um Formatierungen von anderen Zellen automatisch zu übernehmen, wie im obigen Beispiel gezeigt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige