Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Nur Rahmen kopieren

Nur Rahmen kopieren
27.10.2022 11:08:20
Alex
Hallo zusammen,
ich habe eine Liste in welcher mit Füllfarbe Bereiche gefüllt und beschriftet werden. Nun ist es so, dass derjenige, der darin arbeitet, manche dieser farbigen Balken mit der Beschriftung darin umher schiebt. Dadurch verschieben sich auch immer die Rahmen, weil er diese mit markiert und nicht die "Einfügeoption nur Formatierung" verwendet, sondern es per Drag and Drop macht.
Nun zu meiner Frage:
Ist es möglich, ein Makro zu verfassen, welches automatisch beim Öffnen der Excel Datei im Hintergrund läuft, die Rahmen im Bereich D5 bis ABS37 löscht und die Rahmen aus der Ursprungsformatierung wieder einfügt. Die bereits befüllten Zellen sollen erhalten bleiben?
Meine Idee war es bisher, die besagten Zellen mit den Rahmen zu kopieren und in einer neuen, ausgeblendeten Tabelle zu hinterlegen. Bei Ausführung des Makros wurde im Bereich die Rahmenlinien komplett gelöscht, dann auf die ausgeblendete Tabelle mit der Ursprungsformatierung gewechselt, diese dann kopiert und auf der eigentlichen Tabelle nur als Formatierung eingefügt. Allerdings verschwinden dann natürlich auch die farbig markierten Zellen und deren Inhalt.
Danke schon mal für die Hilfe.
Excel Datei:
https://www.herber.de/bbs/user/155885.xlsm
Userbild
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nur Rahmen kopieren
27.10.2022 14:24:52
Alex
Also, ich habe es jetzt mit herumprobieren tatsächlich geschafft ein Makro zu kreieren, was das tut, was ich möchte. Den Code habe ich in der Arbeitsmappe gespeichert, da er mit dem Öffnen der Datei automatisch ausgeführt werden soll. Hierfür habe ich zwei weitere ausgeblendete Tabellen erstellt (Fahrzeuge_Rahmen, Fahrzeuge_Füllung). Mit diesen wir der Inhalt von der Tabelle Fahrzeuge hin und her kopiert. Das alles funktioniert für mich bestens.
Jetzt besteht aber das Problem, sobald ich die Arbeitsmappe freigebe, bekomme ich eine Fehlermeldung und mein kreiertes Makro stoppt mit der Fehlermeldung:
Laufzeitfehler '1004':
Die MergeCells-Eigenschaft des Range-Objekts kann nicht festgelegt werden.
Ich habe nach dem Fehler mal gegoogelt, aber werde nicht so ganz Schlau draus, warum das bei mir nun nicht funktioniert.

Private Sub Workbook_Open()
' Fahrzeug Rahmen Reset
'   Tabellen einblenden
Sheets("Fahrzeuge_Rahmen").Visible = True
Sheets("Fahrzeuge_Füllung").Visible = True
'   Formatierung bei Tabelle "Fahrzeug" zurücksetzten
Sheets("Fahrzeuge").Select
Range("D6:ABS37").Select
Selection.Copy
Sheets("Fahrzeuge_Füllung").Select
Range("A1:ABP32").Select
ActiveSheet.Paste
Sheets("Fahrzeuge_Rahmen").Select
Application.CutCopyMode = False
Range("A1:ABP32").Select
Selection.Copy
Sheets("Fahrzeuge").Select
Range("D6:ABS37").Select
ActiveSheet.Paste
Sheets("Fahrzeuge_Füllung").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Fahrzeuge").Select
Range("D6:ABS37").Select
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
'   Schriftart, usw. einstellen
Sheets("Fahrzeuge").Select
Range("D6:ABS37").Select
Selection.Font.Bold = False
Selection.Font.Bold = True
With Selection.Font
.Name = "Arial"
.Size = 14
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
With Selection.Font
.Name = "Arial"
.Size = 14
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
With Selection.Font
.ColorIndex = xlAutomatic
.TintAndShade = 0
End With
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.NumberFormat = "@"
'   Tabellen ausblenden
Sheets("Fahrzeuge_Rahmen").Visible = False
Sheets("Fahrzeuge_Füllung").Visible = False
End Sub

Anzeige
AW: Nur Rahmen kopieren
27.10.2022 14:50:58
Rudi
Hallo,
in freigegebenen Arbeitsmappen kannst so einiges nicht. Darunter auch Zellen verbinden.
Gruß
Rudi
AW: Nur Rahmen kopieren
27.10.2022 15:25:07
Alex
Ja, das hatte ich auch so im Internet heraus gelesen. Heißt Zellen verbinden, von einer Tabelle auf die andere zu beziehen?
AW: Nur Rahmen kopieren
27.10.2022 15:36:08
Rudi
bei Excel gut sollte man eigentlich wissen, was verbundene Zellen sind.
Das sind mehrere, zu einer Zelle verbundene, Zellen.
Anzeige
AW: Nur Rahmen kopieren
27.10.2022 16:01:36
Alex
Ja ok, aber durch mein Makro werden ja keine neuen Zellen verbunden. Oder gehört das auch dazu, dass bereits verbundene Zellen kopiert werden? Daher hatte ich auch zuerst nicht auf das offensichtliche mit den verbundenen Zellen getippt. Man möge mir meinen Fauxpas verzeihen.
Wenn das mit verbundenen Zellen nicht funktioniert, wenn die Arbeitsmappe freigegeben wird, lässt sich das mit den Rahmen anders bewerkstelligen?
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Nur Rahmen kopieren in Excel


Schritt-für-Schritt-Anleitung

Um nur die Rahmen in Excel zu kopieren und die Formatierung beizubehalten, kannst Du ein Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Erstelle eine neue Excel-Arbeitsmappe oder öffne eine bestehende, in der Du die Rahmen kopieren möchtest.
  2. Öffne den Visual Basic-Editor: Drücke ALT + F11.
  3. Füge ein neues Modul hinzu:
    • Klicke mit der rechten Maustaste auf "VBAProject (DeinDateiname)".
    • Wähle "Einfügen" -> "Modul".
  4. Kopiere den folgenden Code in das Modul:

    Private Sub Workbook_Open()
       ' Rahmen zurücksetzen
       Sheets("Fahrzeuge").Select
       Range("D6:ABS37").Select
       Selection.Borders.LineStyle = xlNone
    
       ' Rahmen zum Kopieren
       Sheets("Fahrzeuge_Rahmen").Select
       Range("A1:ABP32").Select
       Selection.Copy
    
       ' Rahmen wieder einfügen
       Sheets("Fahrzeuge").Select
       Range("D6:ABS37").Select
       Selection.PasteSpecial Paste:=xlPasteBorders
    End Sub
  5. Schließe den Visual Basic-Editor und speichere die Arbeitsmappe als Makro-fähige Datei (.xlsm).
  6. Teste das Makro, indem Du die Datei schließt und erneut öffnest.

Häufige Fehler und Lösungen

  • Fehler: Laufzeitfehler '1004'
    Dieser Fehler tritt oft auf, wenn Du versuchst, Zellen zu verbinden, während die Arbeitsmappe freigegeben ist. Um dies zu vermeiden, stelle sicher, dass Du keine verbundenen Zellen in Deinem Zielbereich hast. Überprüfe die Zellen und entferne die Verbindung, bevor Du das Makro ausführst.

  • Problem beim Kopieren der Rahmen
    Wenn die Rahmen nicht korrekt kopiert werden, stelle sicher, dass Du die richtigen Bereiche auswählst. Überprüfe auch, ob die Zellen nicht formatiert sind, sodass sie zusammengefügt werden.


Alternative Methoden

Falls Du kein Makro verwenden möchtest, gibt es alternative Methoden, um nur die Rahmen zu kopieren:

  1. Manuelles Kopieren:

    • Wähle den Bereich aus, dessen Rahmen Du kopieren möchtest.
    • Gehe zu "Start" -> "Format übertragen" und klicke auf den Zielbereich.
  2. Verwendung von "Spezial Einfügen":

    • Kopiere den Bereich mit den Rahmen.
    • Klicke mit der rechten Maustaste auf den Zielbereich und wähle „Inhalte einfügen“ -> „Formate“. Dies kopiert nur die Rahmen, ohne die Inhalte zu beeinflussen.

Praktische Beispiele

  1. Beispiel für die Verwendung eines Makros: Wenn Du regelmäßig die Rahmen in einem bestimmten Bereich zurücksetzen möchtest, kannst Du das oben genannte Makro anpassen, um verschiedene Bereiche oder Blätter zu berücksichtigen.

  2. Manuelle Methode: Wenn Du gelegentlich nur Rahmen kopieren möchtest, wähle den Bereich aus, gehe zu "Start" -> "Format übertragen" und klicke auf den gewünschten Zielbereich. Dies ist besonders nützlich, wenn Du keine VBA-Kenntnisse hast.


Tipps für Profis

  • Nutze die PasteSpecial-Optionen: Wenn Du mehr Kontrolle über das Einfügen von Formaten benötigst, verwende PasteSpecial in VBA, um nur bestimmte Eigenschaften zu kopieren.

  • Kombiniere das Kopieren von Rahmen mit anderen Formatanpassungen: Du kannst das Makro erweitern, um auch Schriftarten, Farben und andere Formate automatisch anzuwenden, sodass Du alles in einem Schritt erledigen kannst.


FAQ: Häufige Fragen

1. Kann ich das Makro in einer älteren Excel-Version verwenden?
Ja, das Makro sollte in Excel 2010 und späteren Versionen funktionieren. Achte darauf, dass Du die Datei als .xlsm speicherst.

2. Was passiert mit den Inhalten der Zellen beim Kopieren nur der Rahmen?
Die Inhalte der Zellen bleiben erhalten, wenn Du die Rahmen kopierst und nur die Formatierung änderst. Achte darauf, die richtigen Einfügeoptionen zu wählen.

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