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.

Übertragen von Zellfarbe verschiener Excel-Datein
#1
Hallo liebes Clever Excel Forum,

ich habe zwei identische Dateien, die sich lediglich in der Füllfareb bestimmter Zellen unterscheiden. Da hierbei parallel gearbeitet wurde, möchte ich gerne eine Datei daraus machen, die von beiden Datein die Farbfüllungen enthält.
Jetzt ist es leider so, das aktuell einfach die eine Datei die andere ersetzt, sprich die Prüfung ob die Zelle bereitsgefüllt ist in der Ursprungsdatei schläft fehl. Somit werden bereits markierte Zellen mit weiß versehen, obwohl die Farbe, sofern diese besteht, bleiben soll. Mein Code sieht aktuell so aus:

Code:
Sub Farben_kopieren()

 Dim rng As Range
 Dim Zeile As Integer
 Dim WsCount As Integer
 Dim n As Integer
 Dim Pfad As String
   
 Application.ScreenUpdating = False
 
   Set mybook = ActiveWorkbook
   Pfad = (mybook.Worksheets("Pfad").Cells(1, 1))
   Set book = Workbooks.Open(Filename:=Pfad, ReadOnly:=True)
 
 WsCount = book.Worksheets.Count
 
 For n = 1 To WsCount
   
 For Each rng In book.Sheets(n).Range("A2:L5000")
   If Not mybook.Sheets(n).Cells(rng.Row, rng.Column).Interior.Color = None Then
       mybook.Sheets(n).Cells(rng.Row, rng.Column).Interior.Color = book.Sheets(n).Cells(rng.Row, rng.Column).Interior.Color
   End If
 Next
 
 Next n
 
MsgBox "Dateien wurden zusammengeführt"

book.Close
 
End Sub

Über Tipps und Hilfe freue ich mich! [Bild: smile.gif]
Antwortento top
#2
Hallo,

die Prüfung der Farbe auf none ist mE nicht korrekt.

Entweder prüfst Du, ob die Farbe nicht weiß ist, z. B. so:
Code:
If Not mybook.Sheets(n).Cells(rng.Row, rng.Column).Interior.Color = RGB(255, 255, 255) Then

mE wäre es aber besser zu prüfen, ob ein Hintergrund gesetzt ist:
Code:
If mybook.Sheets(n).Cells(rng.Row, rng.Column).Interior.Pattern = xlSolid Then
Gruß
Michael
Antwortento top
#3
Ergänzung: none ist eigentlich nicht definiert, wenn Du none also nicht als Variable oder Konstante definiert hast, dann müsste diese Zeile einen Fehler veruarsachen (wenn Du Option Explicit verwendest) oder er vergleicht mit 0 (da none ohne oprion explicit automatisch als Variant verwendet wird und dann den Initialwert 0 bekommt).

Es gibt allenfalls xlNone als Excel-Konstante, diese hat aber den Wert -4142 und würde hier nicht funktionieren.
Gruß
Michael
Antwortento top
#4
Hallo Michael,

ich habe deinen Code verwendet und dieser erfüllt soweit meinen Zweck. Vielen Dank.
Code:
If Not mybook.Sheets(n).Cells(rng.Row, rng.Column).Interior.Color = RGB(255, 255, 255) Then
 
Ja ich bin mit dem None auch nicht weitergekommen, habe auch kein Option Explicit verwendet... ich schaue mir das ebenfalls noch mal an. Danke [Bild: smile.gif]
Antwortento top
#5
Im Gegensatz zu unserem lieben Kollegen snb (den ich btw sehr schätze), verwende ich grundsätzlich Option Explicit.
Der Vorteil ist, dass man solche (und andere) Fehler bei der Deklaration von Variablen schnell erkennt.

Hier etwas Lesestoff: https://www.online-excel.de/excel/singsel_vba.php?f=4
Gruß
Michael
Antwortento top


Gehe zu:


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