Hallo liebes Clever Team,
ich möchte gerne die Zellen aus meiner aktuellen Tabelle, mit den Zellen aus einer anderen Mappe abgleichen. Hier ein Code, den ich bereits versucht hatte, bei dem leider overflow angezeigt wird :( woran kann das liegen? Ich möchte mit "farbe" die Zellfarbe herausfinden.
Vielen Dank für jede Mithilfe!
Code:
Option Explicit
Dim farbe As Integer
Dim Wksdaten As worksheet
dim wkbdaten as workbook
Dim rng As Range
Sub anderemappe()
On Error GoTo FEHLER
'
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
'
Workbooks.Open "L:\Pfad\Name.xlsm"
Set wkbDaten = Workbooks("Name.xlsm")
Set Wksdaten = wkbDaten.Sheets("Tabelle2")
FEHLER:
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
farbe = Wksdaten.Cells(i, 2).Interior.Color
Hallo,
nimm mal Long anstatt Integer
Gruiß Werner
Danke, leider nicht. Nun erscheint der Laufzeitfehler 91 Objektvariabel oder With Block Variabel nicht gesetzt. Der Fehler liegt nach F8 in der Zeile, in der "farbe" bestimmt wird. Darf ich denn wksdaten einfach so mit cells(x,y).interiorcolor zusammensetzen? Wenn nein, wie kann man den Farbcode anders ausfindig machen?
Moin,
2 Dinge sind mir aufgefallen:
- Die Variable i ist nicht deklariert
- Es gibt keine Zelle B0 (B null).
Ich weiß, ein wenig Denksport, aber das baut ungemein auf. :05:
Hi,
früher hieß das bei
Range("I1").Interior.ColorIndex
geht das heute ohne?
Sorry hab schon lange nix mehr mit Farben gemacht, damals gabs rund 60 Farben, heute soll es ja 16.000 geben.
Zum Testen würde ich farbe ohne Dimension dimenesionieren, (wie das klingt)
Einfach
Dim farbe
mit einer schleife alle testen, kurz vor ende anhalten - geht auch per code - und guggen im Lokalfenster, ob die Variable immer noch integer is oder schon long oder was ganz anderes.
Moin GMG-CC
Danke für den Link.
da steht was von RGB(,,)
also kann das von (0,0,0) bis (256,256,256) sein, gibt also 16.974.593 (257*257*257) verschiedene Farbnuancen, das übersteigt wohl die Variable Integer.
Oda?
Ich habe eine Zelle gelb markiert und dann im Direktbereich abgefragt mit:
Code:
? selection.Interior.Color
und als Antwort bekommen:
65535
Moin Wastl,
na ja, dicht daneben ist auch vorbei. :100: Der Form halber und der Mitleser wegen: 256 ist zwar eine der "magic numbers" in der EDV weil 2^8. ABER: die Null zählt mit, darum ist 255 die höchstmögliche Zahl eines Farbbereichs. Sprich: 255*255*255 = 16.581.375 was gewiss auch eine ausreichende Anzahl von Möglichkeiten darstellt.
Vielen Dank für Eure Anmerkungen! Der Fehler scheint nicht an den Farben zu liegen.
Die Farben habe ich mir auch nochmal genauer angesehen, alle Zahlen als double deklariert, aber dieses mal wksdaten und wkbdaten ausgeschrieben. Den i-Fetzen habe ich nun der einfachheithalber rausgenommen und mit einer 1 ersetzt (gehörte zu einer anderen Schleife).
Code:
farbe = Workbooks("name.xlsm").Sheets("tabelle2").Cells(1, 2).Interior.Color
obige zeile ausgeschrieben funktioniert, untere (alte) funktioniert nicht.
Code:
Set wkbDaten = Workbooks("name.xlsm")
Set wksdaten = wkbDaten.Sheets("tabelle2")
farbe = wksdaten.cells(1,2).interior.color
wkbdaten wurde als workbook, wksdaten als worksheet deklariert. Das Problem liegt am "Verschachteln", wenn ich mich nicht irre? Für meine Zwecke sollte es reichen...
Für Mitleser der vollständige code.
Code:
Option Explicit
Dim farbe As Double
Sub FarbcodeEinerZelleAusAndererMappe()
On Error GoTo FEHLER
'Andere Mappe öffnen
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
'
Workbooks.Open "L:\Pfad\Name.xlsm"
FEHLER:
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
'Farbcode der Zelle aus anderer Mappe ermitteln
farbe = Workbooks("name.xlsm").Sheets("tabelle2").Cells(1, 2).Interior.Color
'Zelle in dieser Mappe damit färben
cells(3,4).interior.color = farbe
End Sub
Hi,
teste mal das Makro (Pfad natürlich anpassen!):
Option Explicit
Sub FarbcodeEinerZelleAusAndererMappe()
Dim farbe As Long
On Error GoTo FEHLER
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
'Andere Mappe öffnen
Workbooks.Open "C:\temp\Name.xlsb"
'Farbcode der Zelle aus anderer Mappe ermitteln
farbe = ActiveWorkbook.Sheets("tabelle2").Cells(1, 2).Interior.Color
ActiveWorkbook.Close False
'Zelle in dieser Mappe damit färben
' ThisWorkbook.Activate
Cells(3, 4).Interior.Color = farbe
FEHLER:
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub