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

Forumthread: Nur Rahmen kopieren/einfügen Bereich

Nur Rahmen kopieren/einfügen Bereich
23.10.2014 09:08:10
Lutz
Hallo Excel-Profis,
ich hatte schon mal diese Frage gestellt und auch eine Antwort bekommen - vielen Dank dafür.
Nur ist die Lösung noch nicht wirklich befriedigend.
Ich muß in diversen Dateien oft die Rahmen und die Füllfarbe (diverse Farben, kaum zu unterscheiden) kopieren - aber eben nichts anderes.
Hier die Lösung aus dem Forum:
Function Set_Borders(rngSource As Range, rngdest As Range)
Dim i As Integer
For i = 7 To 10
With rngdest.Borders(i)
.LineStyle = xlNone     'hier löscht Du den Rahmen der Zielzelle erst ab
If rngSource.Borders(i).LineStyle  xlNone Then
.LineStyle = rngSource.Borders(i).LineStyle
.Weight = rngSource.Borders(i).Weight
.Color = rngSource.Borders(i).Color
End If
End With
Next
End Function


Sub AtestB()
Dim rng1 As Range
Dim rng2 As Range
Set rng1 = ActiveCell
Set rng2 = Application.InputBox("Select a range", "Get Range", Type:=8)
Call Set_Borders(rng1, rng2)
End Sub

Für die Füllfarbe gab es etwas ähnliches:
Function Set_Color(rngSource As Range, rngdest As Range)
rngdest.Interior.Color = rngSource.Interior.Color
End Function

Mein Problem: hier wird nur die Füllfarbe/Rahmen einer Zelle kopiert und nicht des gesamten markierten Bereichs.
Es sollte so funktionieren:
Z.B. markiere ich den Bereich A1:A100 bevor ich das Makro starte
Jetzt starte ich das Makro und werde nach dem Zielbereich gefragt:
Ich wähle z.B. B1:D100
Nun sollte B1:D100 die gleichen Rahmen und Fürllfarbe haben wie der Bereich A1:A100
Da ich manchmal nur Rahmen und manchmal auch nur Füllfarben kopieren muß wäre es schön das jeweils auch als getrenntes Makro zu haben - so wie jetzt:
RAHMEN UND FÜLLFARBE:
Function Set_BordersAndColor(rngSource As Range, rngdest As Range)
Dim i As Integer
For i = 7 To 10
With rngdest.Borders(i)
.LineStyle = xlNone     'hier löscht Du den Rahmen der Zielzelle erst ab
If rngSource.Borders(i).LineStyle  xlNone Then
.LineStyle = rngSource.Borders(i).LineStyle
.Weight = rngSource.Borders(i).Weight
.Color = rngSource.Borders(i).Color
End If
End With
rngdest.Interior.Color = rngSource.Interior.Color
Next
End Function


Sub AtestBaC()
Dim rng1 As Range
Dim rng2 As Range
Set rng1 = ActiveCell 'oder Bereich?
Set rng2 = Application.InputBox("Select a range", "Get Range", Type:=8)
Call Set_BordersAndColor(rng1, rng2)
End Sub
NUR RAHMEN:
Function Set_Borders(rngSource As Range, rngdest As Range)
Dim i As Integer
For i = 7 To 10
With rngdest.Borders(i)
.LineStyle = xlNone     'hier löscht Du den Rahmen der Zielzelle erst ab
If rngSource.Borders(i).LineStyle  xlNone Then
.LineStyle = rngSource.Borders(i).LineStyle
.Weight = rngSource.Borders(i).Weight
.Color = rngSource.Borders(i).Color
End If
End With
Next
End Function


Sub AtestB()
Dim rng1 As Range
Dim rng2 As Range
Set rng1 = ActiveCell
Set rng2 = Application.InputBox("Select a range", "Get Range", Type:=8)
Call Set_Borders(rng1, rng2)
End Sub
NUR FÜLLFARBE:
Function Set_Color(rngSource As Range, rngdest As Range)
rngdest.Interior.Color = rngSource.Interior.Color
End Function


Sub AtestB()
Dim rng1 As Range
Dim rng2 As Range
Set rng1 = ActiveCell
Set rng2 = Application.InputBox("Select a range", "Get Range", Type:=8)
Call Set_Borders(rng1, rng2)
End Sub

Wenn jemand da eine Lösung hätte wäre das wirklich Klasse - und es würde mir jede Menge arbeit sparen. Ich habe die Frage auch schon oft im Internet gefunden aber nie eine Lösung dafür...
Vielen Dank und viele Grüße Lutz

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Nur Rahmen kopieren/einfügen Bereich
23.10.2014 12:50:55
fcs
Hallo Lutz,
mit folgenden Ergänzungen werden die Zellen eines Zellbereiches nacheinander abgearbeitet.
Gruß
Franz
Sub AtestB()
Dim Spalte As Long, Zeile As Long
Dim rng1 As Range
Dim rng2 As Range
Set rng1 = Selection 'Source-Bereich vor Makroausführung selektieren
'Destination-Breich wählen
Set rng2 = Application.InputBox("Select a range", "Get Range", Type:=8)
For Zeile = 1 To rng2.Rows.Count
For Spalte = 1 To rng2.Columns.Count
Call Set_Borders(rng1.Cells(Zeile, Spalte), rng2.Cells(Zeile, Spalte))
Next
Next
End Sub

Anzeige
AW: Nur Rahmen kopieren/einfügen Bereich
23.10.2014 13:27:30
Lutz
Hallo Franz,
perfect - vielen Dank.
Ich wünsche Dir noch einen schönen Tag und nochmals vielen lieben Dank,
viele Grüße Lutz
;
Anzeige
Anzeige

Infobox / Tutorial

Nur Rahmen kopieren und einfügen in Excel


Schritt-für-Schritt-Anleitung

Um in Excel nur die Rahmen oder die Füllfarbe von Zellen zu kopieren, kannst du die folgenden Schritte befolgen. Diese Anleitung ist für Excel-Versionen mit VBA-Unterstützung geeignet.

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

  2. Neues Modul erstellen: Klicke auf Einfügen > Modul, um ein neues Modul hinzuzufügen.

  3. VBA-Code einfügen: Kopiere und füge den folgenden Code in das Modul ein:

    Function Set_Borders(rngSource As Range, rngdest As Range)
       Dim i As Integer
       For i = 7 To 10
           With rngdest.Borders(i)
               .LineStyle = xlNone
               If rngSource.Borders(i).LineStyle <> xlNone Then
                   .LineStyle = rngSource.Borders(i).LineStyle
                   .Weight = rngSource.Borders(i).Weight
                   .Color = rngSource.Borders(i).Color
               End If
           End With
       Next
    End Function
    
    Sub AtestB()
       Dim rng1 As Range
       Dim rng2 As Range
       Set rng1 = Selection ' Wähle den Quellbereich aus
       Set rng2 = Application.InputBox("Select a range", "Get Range", Type:=8)
       For Each cell In rng2
           Call Set_Borders(rng1.Cells(1, 1), cell)
       Next cell
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und kehre zu Excel zurück. Wähle den Bereich mit den Rahmen, die du kopieren möchtest, und führe das Makro AtestB aus.

  5. Zielbereich auswählen: Du wirst aufgefordert, einen Zielbereich auszuwählen, in den die Rahmen eingefügt werden sollen.


Häufige Fehler und Lösungen

  • Fehler: „Auswahl ungültig“
    Lösung: Stelle sicher, dass du einen gültigen Zellbereich auswählst, bevor du das Makro ausführst.

  • Fehler: Rahmen wird nicht kopiert
    Lösung: Überprüfe, ob der Quellbereich tatsächlich Rahmen hat. Wenn der Rahmenstil xlNone ist, wird er nicht kopiert.


Alternative Methoden

Wenn du kein VBA verwenden möchtest, kannst du auch die Formatierungsoptionen in Excel nutzen:

  1. Wähle den Quellbereich aus.
  2. Gehe zu Start > Formatieren > Zellen formatieren.
  3. Wähle die Registerkarte Rahmen und speichere die Einstellungen.
  4. Wende die gleichen Einstellungen manuell auf den Zielbereich an.

Diese Methode ist jedoch weniger flexibel und erfordert mehr manuelle Arbeit.


Praktische Beispiele

  1. Nur Rahmen kopieren:

    • Wähle einen Bereich von Zellen aus (z.B. A1:A5) und führe das Makro aus. Wähle dann einen Zielbereich (z.B. B1:B5) aus, um nur die Rahmen zu kopieren.
  2. Füllfarbe kopieren:

    • Verwende den folgenden Code, um nur die Füllfarbe zu kopieren:
    Function Set_Color(rngSource As Range, rngdest As Range)
       rngdest.Interior.Color = rngSource.Interior.Color
    End Function
  3. Rahmen und Füllfarbe gleichzeitig kopieren:

    • Nutze die Set_BordersAndColor Funktion, um sowohl Rahmen als auch Füllfarbe gleichzeitig zu kopieren.

Tipps für Profis

  • Verwendung von Shortcut-Tasten: Du kannst die Makros mit Shortcut-Tasten verknüpfen, um sie schneller auszuführen.
  • Einstellungen speichern: Wenn du oft die gleichen Rahmen verwendest, speichere deine Einstellungen als Formatvorlage.
  • Fehlerprotokoll: Füge ein einfaches Fehlerprotokoll in dein VBA-Skript ein, um mögliche Probleme zu identifizieren.

FAQ: Häufige Fragen

1. Frage
Wie kann ich nur die Rahmenlinien in Excel kopieren, ohne die Füllfarbe?
Antwort: Verwende die Funktion Set_Borders, die nur die Rahmen kopiert. Stelle sicher, dass du den Quellbereich korrekt auswählst.

2. Frage
Kann ich die Rahmenlinien nach dem Kopieren weiter bearbeiten?
Antwort: Ja, nach dem Kopieren kannst du die Rahmenlinien wie gewohnt über die Zellenformatierung anpassen.

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