Wie schreibt man ein Makro in Excel, das Zellen mit bestimmter Farbe in neues Blatt kopiert werden?

Beispiel - (Technik, Microsoft Excel, Makro)

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

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

licolaa 
Beitragsersteller
 09.01.2015, 14:24

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.

0
merkurus  09.01.2015, 17:18
@licolaa

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
1
licolaa 
Beitragsersteller
 12.01.2015, 10:29
@merkurus

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

0
merkurus  12.01.2015, 12:17
@licolaa

Bitte beachte das neue geänderte Makro "ZeileKopierenWennZellenFarbeAbZeileX" vom 09.01.2015 - 17:18
mit den ergänzten bzw. geänderten Zeilen mit Z2 . Nach diesem Makro verfahren. Das funktioniert dann auch.

0
licolaa 
Beitragsersteller
 12.01.2015, 13:16
@merkurus

Super du hast mich gerettet! Vielen Dank dir! :)

0

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


licolaa 
Beitragsersteller
 09.01.2015, 10:25

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.

1