Wie schreibt man ein Makro in Excel, das Zellen mit bestimmter Farbe in neues Blatt kopiert werden?
Hallo :)
Ich muss gestehen, ich habe leider gar keine Ahnung von Makros in Excel und würde gern wissen, wie man ein Makro schreibt, das nur Zellen mit roter Füllfarbe in ein neues Blatt kopiert werden?
Im Anhang ein Screenshot, zur darstellung meines Problems:
Die rot markierten Zeilen hätte ich gern in ein neues Tabellblatt kopiert um sie dort dann weiter verarbeiten und auswerten zu können.
Ich weiß auch nicht, ob es möglich ist, dass dies dann immer automatisch gescheht sobald ich eine Zeile rot markiere.
Vielen Dank euch im Vorraus :)

3 Antworten
Nachfolgend mal ein Makro-Beispiel. Das Makro durchlauft 28 Zeilen ( For Z = 1 To 28 ), die kopiert werden. Ansonsten einfach ändern. Es wird also in Spalte A die Farbe überprüft. Wenn also z.B. in A5 rot gefärbt ist, wird die ganze Zeile kopiert. Farbe = 3 sagt aus, das es die Farbe rot ist. Evtl. halt die Tabellenblatt-Namen ändern. Hier ist es Tabelle1 bzw. Tabelle2 .
Sub ZeileKopierenWennZellenFarbe()
'
Dim Farbe As Long
'
For Z = 1 To 28
'
Farbe = Worksheets("Tabelle1").Cells(Z, 1).Interior.ColorIndex
If Farbe = 3 Then
Sheets("Tabelle1").Select
Rows(Z).Select
Application.CutCopyMode = False
Selection.copy
'
Sheets("Tabelle2").Select
Rows(Z).Select
ActiveSheet.Paste
'
End If
'
Next Z
'
End Sub
Servus,
wie lässt sich das so umbauen, dass nur ausgewählte Spalten kopiert werden?
Danke....:-)
Ja OK. Mach es mal mit fogenden Makro.
Sub ZeileKopierenWennZellenFarbeAbZeileX()
'
Dim Farbe As Long
'
Z2 = 9
For Z = 1 To 28
'
Farbe = Worksheets("Tabelle1").Cells(Z, 1).Interior.ColorIndex
If Farbe = 3 Then
Sheets("Tabelle1").Select
Rows(Z).Select
Application.CutCopyMode = False
Selection.copy
'
Z2 = Z2 + 1
Sheets("Tabelle2").Select
Rows(Z2).Select
ActiveSheet.Paste
'
End If
'
Next Z
'
End Sub
Leider funktionierts bei mir nicht, ich habe alles was mir eingefallen ist versucht aber leider komme ich nicht weiter.
Das ist der umgeschriebene coder, der es auf mein zweites Tabellenblatt kopiert - jedoch nicht zusammenhängend
Sub ZeileKopierenWennZellenFarbe()
'
Dim Farbe As Long
'
For Z = 1 To 999
'
Farbe = Worksheets("REKLA LISTE FINAL").Cells(Z, 2).Interior.ColorIndex
If Farbe = 3 Then
Sheets("REKLA LISTE FINAL").Select
Rows(Z).Select
Application.CutCopyMode = False
Selection.Copy
'
Sheets("AUSWERTUNG").Select
Rows(Z).Select
ActiveSheet.Paste
'
End If
'
Next Z
'
End Sub
Ich weiß auch nicht, ob es möglich ist, dass dies dann immer automatisch gescheht sobald ich eine Zeile rot markiere.
Es ist wie du bereits beantwortet bekommen hast, prinzipiell möglich, aber sinnvoll ?
Excel ist kein "Malprogramm". Definiere deine Kriterien zum manuellen Einfärben einer Zeile als Formel.
Das hat mehrere Vorteile. Zwei der Wichtigsten sind:
- Nutzung der Formel zum Einfärben (bedingte Formatierung) -> kein Suchen / manuelles Prüfen der Zeilen mehr notwendig
- Nutzung der Formel, um selbige Werte auf anderen Tabellenblättern zu finden und zu verarbeiten
google hilft
ansonsten einfach mal ein Makro aufzeichnen lassen, sich ansehen und ändern
Hallo icolor2,
darauf musst du mich nicht erst hinweisen :) - Google war meine erste Anlaufstelle.
Wie oben erwähnt habe ich leider überhaupt keine Ahnung, wie man Makros schreibt, die Befehle die ich dort fand, haben nicht den Effekt den ich, wie hier beschrieben haben möchte.
Aber vielen Dank dir für deine schnelle Antwort.
SUUPER ! :) 1000 Dank dir :P
nur eins noch:
wie bekomme ich das hin, dass die kopierten Zeilen in dem neuen Tabellenblatt ab zeile 10 untereinander aufgelistet werden?
Denn momentan sind sie auf dem neuen Tabellenblatt genau in der zeile, in der sie auch auf der Originaltabelle waren.