Range(Cells(Range( (VBA)

Hannes, Freitag, 08.11.2019, 09:47 (vor 5 Tagen)

Moin ich möchte folgende Syntax

 
Range(Cells(43,1),Cells(57,3)).Interior.ColorIndex = xlNone
 

variable machen. Der Hintergrund ist, dass sich die Zeilen dieses Codes regelmäßig verschieben.

Dafür habe ich die Zeilen in meinem Tabellenplatt benannt: '"_ProjectTracking_" & InProjNo' wobei InProjNo eine Variable ist.

Jetzt habe ich versucht die Zeilen auf Grundlage des benannten Bereichs anzusprechen:

 
Range(Cells(Range("_ProjectTracking_" & InProjNo).Rows(1), Range("_ProjectTracking_" & InProjNo).Columns(1)), Cells(Range("_ProjectTracking_" & InProjNo).End(xlUp).Row, Range("_ProjectTracking_" & InProjNo).Columns(3))).Interior.ColorIndex = xlNone
 

Allerdings bekomme ich den Laufzeitfehler 13 (Typen unverträglich) und habe keine Ahnung warum. Hat jemand eine Idee?

Gruß,
Hannes

Range(Cells(Range(

Martin Asal @, Freitag, 08.11.2019, 11:57 (vor 5 Tagen) @ Hannes

Hallo Hannes,

nein, du willst nicht auf xlNone setzen, sondern auf xlColorIndexNone ;-)

Wenn ich dich richtig verstanden habe, ist z.B. "_ProjectTracking_1" der Name einer ganzen Zeile. Daher genügt es, für die Zelle oben links die Spalte anzugeben. Ich habe allerdings nicht verstanden, wie viele Spalten/Zeilen der Bereich insgesamt umfassen soll, aber vielleicht hilft dir das hier schon weiter:

Range(Range("_ProjectTracking_" & InProjNo).Columns(1), _
      Cells(8, 8)).Interior.ColorIndex = xlColorIndexNone


Hier ist Cells(8,8) natürlich nur ein Beispielwert, den du noch anpassen musst.

Martin

Range(Cells(Range(

Hannes, Montag, 11.11.2019, 15:12 (vor 1 Tag, 18 Stunden, 58 Min.) @ Martin Asal

Hallo Martin,

vielen Dnak für die schnelle Antwort.

Der benannte Bereich umfasst mehrere Zeilen, sagen wir es sind 10. Von diesem Bereich möchte ich aber nur in den ersten 3 Spalten (und zwar die kompletten Spalten) die Farbe ändern.

Wenn ich das mit festen Koordinaten machen klappt das auch.

Das Problem ist aber, dass es manchmal auch 12, 14, oder 8 Zeilen sein können. Und der benannte Bereich verschiebt sich wie gesagt.

Daher war die Idee, den Bereich zu benennen, und dann mit "Cells" erste Zeile/erste Spalte sowie letzte Zeile/dritte Spalte zu nehmen.

Verstehst du was ich meine? Ich hoffe ich drücke mich verständlich aus :-)

Gruß,
Hannes

Range(Cells(Range(

Martin Asal @, Montag, 11.11.2019, 17:33 (vor 1 Tag, 16 Stunden, 36 Min.) @ Hannes

Hallo Hannes,

dann war meine Antwort ja schon die halbe Lösung: Die Zelle oben links wird schon entsprechend ausgewählt. Anhand dessen müsste es dir möglich sein, den Rest selbst umzusetzen :-)

Martin

RSS-Feed dieser Diskussion
powered by my little forum