Das Archiv des Excel-Forums

Range / End(xlUp)

Bild

Betrifft: Range / End(xlUp)
von: Rafael

Geschrieben am: 06.10.2003 13:58:56

Liebe Boardgemeinde,

ich möchte den Code meines Macros verkürzen. U.a. sollen die Inhalte zusammenhängender, aber in der Adresse wechselnder Zellen fett markiert werden.

Leider funktioniert der folgende Ausdruck nicht:

Tabelle1.Range((Cells(Rows.Count, 2).End(xlUp)), _
(Cells(Rows.Count, 7).End(xlUp))).Font.Bold = True

Statt dessen muss ich mit dem folgenden, jedoch längeren Ausdruck arbeiten:

Tabelle1.Cells(Rows.Count, 2).End(xlUp).Font.Bold = True
Tabelle1.Cells(Rows.Count, 3).End(xlUp).Font.Bold = True
Tabelle1.Cells(Rows.Count, 4).End(xlUp).Font.Bold = True
Tabelle1.Cells(Rows.Count, 5).End(xlUp).Font.Bold = True
Tabelle1.Cells(Rows.Count, 6).End(xlUp).Font.Bold = True
Tabelle1.Cells(Rows.Count, 7).End(xlUp).Font.Bold = True

Vielleicht hat jemand von Euch einen Vorschlag zur Verkürzung? Die SpecialCells-Methode "End(xlUp)" sollte jedoch Anwendung finden.

Vielen Dank im voraus!

Rafael


Bild


Betrifft: AW: Range / End(xlUp)
von: PeterW
Geschrieben am: 06.10.2003 14:16:21

Hallo Rafael,

für einen zusammenhängenden Bereich brauchst du eine Anfangszelle (oben links) und eine Endzelle (unten rechts). Mit deinem Code formatierst du nur die jeweils letzte Zelle der Spalten. Ist das so gewollt?

Gruß
Peter


Bild


Betrifft: AW: Range / End(xlUp)
von: Rafael
Geschrieben am: 06.10.2003 14:31:35

Hallo Peter,

ja, das soll so sein. Zunächst sollen wechselnde Parameter (aus Tabelle3) jeweils der obersten (leeren) Zelle einer Spalte zugeordnet und dann fett formatiert werden. B.p.:

If Tabelle3.Cells(2, 14) < Tabelle3.Cells(2, 5) Then
Tabelle1.Cells(Rows.Count, 2).End(xlUp).Offset(1#) = Tabelle3.Cells(2, 11)
Tabelle1.Cells(Rows.Count, 3).End(xlUp).Offset(1#) = Tabelle3.Cells(2, 5)
Tabelle1.Cells(Rows.Count, 4).End(xlUp).Offset(1#) = Tabelle3.Cells(2, 1)
Tabelle1.Cells(Rows.Count, 5).End(xlUp).Offset(1#) = Tabelle3.Cells(2, 16)
Tabelle1.Cells(Rows.Count, 6).End(xlUp).Offset(1#) = Tabelle3.Cells(2, 14)

Tja, vielleicht liesse sich "FontBold" = "True" auch direkt in den jeweiligen Ausdruck einarbeiten. Bei meinen Versuchen klappte das leider nicht, so dass ich die "Zuorndung der Parameter" und "Fette Schrift" in zwei separate Schritte trennen musste.

Gruss Rafael


Bild


Betrifft: AW: Range / End(xlUp)
von: PeterW
Geschrieben am: 06.10.2003 14:40:01

Hallo Rafael,

das geht bequem mit einem With-Rahmen

With Tabelle1.Cells(Rows.Count, 2).End(xlUp).Offset(1#)
.Value = Tabelle3.Cells(2, 11)
.Font.Bold = True
End With

Gruß
Peter


Bild


Betrifft: AW: Range / End(xlUp)
von: Rafael
Geschrieben am: 06.10.2003 15:03:41

Danke Dir, Peter!!!

Rafael


 Bild