Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Wenn Zelle rot dann in anderes Tabellenblatt kopieren
#1
Hallo Leute

Ich habe ein Problem mit Excel und VBA

Ich habe 2 Tabellenblätter, Tabelle1 und Bestellen.
Die Spalte B ist mit einer bedingten Formartierung belegt. Wenn ein bestimmer Wert erreicht ist, wird die Zelle rot.
 
Nun möchte ich die gesamte Zeile in das Tabellenblatt Bestellen kopieren.
Wenn ich die Zelle manuell mit rot ausfülle, dann funktioniert mein Makro.
Mit der bedingten Formatierung nicht.

Ich benutze eine Schaltfläche um das Makro auszuführen.

Hier mein Code.

Sub rot_kopieren()
Dim zel As Range, lz As Long


lz = Sheets("Bestellen").Range("A65000").End(xlUp).Row

For Each zel In Sheets("Tabelle1").Range("B2:B35")

If zel.Interior.ColorIndex = 3 Then

Sheets("Bestellen").Range("A" & lz + 1).Resize(1, 8) = _
Sheets("Tabelle1").Range("A" & zel.Row & ":H" & zel.Row).Value
lz = lz + 1

End If

Next zel

End Sub

Wo liegt der Fehler.


Lieben Gruß

Ralf
Antworten Top
#2
die aktuelle bedingte Formatierung wird in neueren xl-Versionen mit

Range("A1").displayFormats

ausgelesen
Antworten Top
#3
Servus Ralf,

Du verwendest Excel mit einer Version vor 2010, dann ist das Schlüsselwort "bedingte Formatierung".
Veränderungen der Zell-Darstellung durch die bed. Formatierung verändern nicht die Eigenschaften der Zelle. Damit läuft Dein VBA-Code natürlich ins Leere.
Eine Lösung wäre, die Bedingungen aus der bed. Formatierung im VBA nachzubauen, um so auf Deine "roten" Zellen zu kommen. Dies kann jedoch u.U. extrem komplex werden.
Eine weitere Lösung wäre, Du baust Dir eine Hilfsspalte und erstellst eine Formel, mit der Du die Bedingung nachbaust. Per VBA kannst Du dann das Ergebnis abfragen und eine Kopieraktion starten.

LG Gerd
Antworten Top
#4
genauer:


Code:
Debug.print Range("A1").DisplayFormat.Interior.ColorIndex
Antworten Top
#5
Guten Morgen


Danke für die Antworten.

Ich werde esmal testen.

Lg

Ralf
Antworten Top
#6
So, ich steh jetzt total auf dem Schauch.

Tu mich sehr schwer damit.

@Phi.VBA

Wo wird dieser Code einegesetzt? Huh


@Bamberg

Diese Hilfsspalte müsste dann auch per VBA gebaut werden???

Lg

Ralf

Oh man, mit den neuen  Office Versionen kenne ich mich gar nicht mehr aus.
Antworten Top
#7
Morgen Ralf,

kannst Du uns zunächst mitteilen, mit welcher Excel-Version Du arbeitest?

LG Gerd
Antworten Top
#8
Hallo Ralf,

ich habe versucht, die Abfrage nach der aktuellen Farbe der bedingten Formatierung in deinen Code einzuarbeiten:


Code:
Sub rot_kopieren()
Dim zel As Range, lz As Long

lz = Sheets("Bestellen").Range("A65000").End(xlUp).Row

For Each zel In Sheets("Tabelle1").Range("B2:B35")
                '### neu ###
    If zel.DisplayFormat.Interior.ColorIndex = 3 Then
        '### /neu ###
        Sheets("Bestellen").Range("A" & lz + 1).Resize(1, 8) = _
        Sheets("Tabelle1").Range("A" & zel.Row & ":H" & zel.Row).Value
        lz = lz + 1
    End If
Next zel
End Sub


(ungetestet)

VG
Antworten Top
#9
(22.11.2017, 10:56)Ralf.H. schrieb: Die Spalte B ist mit einer bedingten Formartierung belegt. Wenn ein bestimmer Wert erreicht ist, wird die Zelle rot.
 
Nun möchte ich die gesamte Zeile in das Tabellenblatt Bestellen kopieren.
Moin Namensvetter!
1. Warum fragst Du dann nicht einfach den "bestimmten" Wert ab?
2. Warum filterst Du Spalte B nicht einfach nach der Farbe und kopierst die gesamte Tabelle?
(In gefilterten Listen werden nur die Sichtbaren Zellen kopiert)
Beispieldatei?
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#10
Noch etwas:
Da es sich offensichtlich um eine Bestellung einer längeren Liste handelt:
Du brauchst doch Tabelle1 lediglich zu filtern, auszudrucken und den Filter wieder löschen?
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste