Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1608to1612
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
Inhaltsverzeichnis

Hintergrundfarbe per Makro kopieren

Hintergrundfarbe per Makro kopieren
20.02.2018 10:54:34
Nicolai
Hallo zusammen,
ich habe in einer Zelle eine bedingte Formatierung die bei verschiedenen Kriterien verschiedene Hintergrundfarben festlegt.
Nun möchte ich per Makro den Zellinhalt inkl. Hintergrundfarbe(ohne bedingte Formatierung) in eine andere Zelle kopieren. Im Internet habe ich leider kein passendes Makro gefunden.
Wäre super wenn ihr mit helfen könnt.
Vielen dank vorab.
Nicolai

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

Betreff
Datum
Anwender
Anzeige
AW: Hintergrundfarbe per Makro kopieren
20.02.2018 11:27:09
Burak
Hallo Nicolai,
Vllt hilft dir das hier weiter
Sub test()
Dim r, r1 As Range
Set r = Sheets("Tabelle1").Range("A1")
Set r1 = Sheets("Tabelle3").Range("A1")
r.Copy
r1.PasteSpecial xlPasteValues   ' Kopiert den Wert
r1.PasteSpecial xlPasteFormats  ' Kopiert das Format (also auch die Farbe)
Application.CutCopyMode = xlCut
End Sub
Freundliche Grüße
Burak
da kopiesrt Du aber auch das bedingte Format
20.02.2018 11:47:51
Matthias
Hallo Burak
Wenn Du
r1.PasteSpecial xlPasteFormats benutzt wird aber auch die bedingte Formtierung ins Ziel übertragen
Das wollte aber Nicolai eben nicht
Nun möchte ich per Makro den Zellinhalt inkl. Hintergrundfarbe(ohne bedingte Formatierung) in eine andere Zelle kopieren.
Gruß Matthias
Anzeige
AW: da kopiesrt Du aber auch das bedingte Format
20.02.2018 12:44:22
Burak
achso, also nur die Farbe, ohne die restliche Formatierung?
Dim a
a = Range("E1").Interior.ColorIndex
Cells(1, 1).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ColorIndex = a
.TintAndShade = 0
.PatternTintAndShade = 0
End With 
Kopiert die Farbe aus E1 zu A1 selbes Tabellenblatt
einfachere Variante wäre...
20.02.2018 12:53:16
Burak

ActiveCell.Interior.Color = Range("A1").Interior.Color
Kopiert in die zuvor ausgewählte Zelle die Farbe von Zelle A1
AW: einfachere Variante wäre...
21.02.2018 09:46:15
Nicolai
Hallo Burak,
die einfache Variante geht leider nicht so einfach weil ich es von Tabelle A in Tabelle B kopiere.
Ich glaub ich hätte mich bester ausdrücken müssen, sorry.
Den Zellinhalt kopiere ich bereits so, nun möchte ich aber das auch die Hintergrundfarbe mit kopiert wird (ohne bedingte Formatierung).
Vielen Dank & Grüße,
Nicolai

Windows("TabelleA.xlsm").Activate
Range("B1:B2").Select
Selection.Copy
Windows("TabelleB.xlsm").Activate
Range("B2:B3").Select
Selection.PasteSpecial Paste:=xlPasteValues

Anzeige
AW: einfachere Variante wäre...
21.02.2018 15:42:48
Nicolai
Hallo zusammen,
leider steh ich irgendwie auf dem Schlauch und ich bekomme es nicht eingebaut/umgebaut.
Vielleicht kann mir nochmal jemand helfen.
Vielen Dank & Grüße,
Nicolai
AW: einfachere Variante wäre...
22.02.2018 07:01:41
Burak
so langsam kommen wir deinen Wünschen näher.
Also gehe ich davon aus dass bei beiden Dateien, die Zellen sich im Tabellenblatt "Tabelle1" befindet.
Sub kopieren()
Dim i As Long
For i = 1 To 2
Workbooks("TabelleA.xlsm").Worksheets("Tabelle1").Range("B" & i).Copy
With Workbooks("TabelleB.xlsm").Worksheets("Tabelle1").Range("B" & i + 1)
.PasteSpecial Paste:=xlValues           ' Werte
'.PasteSpecial Paste:=xlFormats          ' Formate
.Interior.Color = Workbooks("TabelleA.xlsm").Worksheets("Tabelle1").Range("B" & i).Interior. _
Color 'Farbe
End With
Next i
Application.CutCopyMode = False
End Sub
Mit
.PasteSpecial Paste:=xlValues
werden Werte kopiert.
Mit
.PasteSpecial Paste:=xlFormats
Formate (was du ja nicht möchtest).
und mit
.Interior.Color = Workbooks("TabelleA.xlsm").Worksheets("Tabelle1").Range("B1:B2").Interior.Color
die Farbe ohne restliche Formate (Fettdruck, etc).
Hoffe das entspricht deinen Vorstellungen.
Anzeige
etwas performanter
22.02.2018 07:21:59
Burak
Ein kleines bisschen performanter:
Sub kopieren()
Dim i As Long
Workbooks("TabelleA.xlsm").Worksheets("Tabelle1").Range("B1:B2").Copy
With Workbooks("TabelleB.xlsm").Worksheets("Tabelle1").Range("B2:B3")
.PasteSpecial Paste:=xlValues           ' Werte
End With
Application.CutCopyMode = False
For i = 1 To 2
With Workbooks("TabelleB.xlsm").Worksheets("Tabelle1").Range("B" & i + 1)
.Interior.Color = Workbooks("TabelleA.xlsm").Worksheets("Tabelle1").Range("B" & i).Interior.  _
_
Color 'Farbe
End With
Next i
End Sub
Die Schleife fürs Kopieren der Farbe ist nötig, da merkwürdigerweise statt der korrekten Farbe nur schwarze Hintergrundfarbe gesetzt wird, wenn die Farbkopie sich auf einen Bereich, statt eine Zelle bezieht. Daher wird hier der Wert aus dem ganzen Bereich kopiert aber die Farbe Zelle für Zelle.
Freundliche Grüße
Anzeige
AW: etwas performanter
22.02.2018 11:29:25
Nicolai
Hallo Burak,
vielen dank für die ausführliche Antwort.
Leider funktioniert es irgendwie nicht, aus diesem Grund habe mach eine Beispieldatei gebastelt.
https://www.herber.de/bbs/user/119988.xlsm
Ich möchte eigentlich den Bereich B1:G10 kopieren und in der anderen Tabelle in B2:G11 einfügen.
In der Datei habe ich es erstmal nur mit einem kleinen Bereich probiert, was leider auch nicht geklappt hat.
Wäre super wenn du mir helfen könntest.
Viele Grüße und Danke,
Nicolai

106 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige