Wie kann man ein Makro in mehreren Zeilen wiederholen?

Excelliste - (Computer, IT, Microsoft Excel) Makro - (Computer, IT, Microsoft Excel)

2 Antworten

Du klammerst deinen Code am besten mit einer Schleife.

Sub Flo
  Dim i as Integer
For i=2 to Range("B2").End(xlDown).Row If Range("B"&i).Value = "A" Then Range("B"&i&":J"&i).Select '... Next End Sub

(ungetestet)

maximilianus7  06.01.2016, 19:53

... wobei ich die schreibweise cells(i, "B") statt range("B"&i) etwas eleganter halte.

nicht ganz so elegant ist die alternative für den spaltenbereich:

Range(Cells(i, "B"), Cells(3, "J")).Select 
aber auch hier wird die string-verkettung vermieden.

1
Suboptimierer  06.01.2016, 19:55
@maximilianus7

Ich wusste gar nicht, dass das so geht.

Ich habe Range immer für die A1-Schreibweise (Range("B1")) verwendet und Cells für die ZS-Schreibweise (Cells(1,2)).

Ich nutze am liebsten, wenn es mir die Finger nicht bricht, die A1-Schreibweise, weil man sich damit sofort im Sheet wiederfindet und nicht erst die Spalten abzählen muss.

Bei vorgegebener Tabellenbreite ist das auch kein Problem.

Früher habe ich viel mit i, j iteriert, heute finde ich For Each bequemer, auch wenn langsamer.

1

Dafür brauch man kein Makro, das macht die Bedingte Formatierung besser.

Einfach mal googeln, das WIE ist versionsabhängig. Wenn Du nicht klar kommst, schreibe mir mal die Version von xl. Ich schau in 2, 3 Std.  vorbei, dann kann ich es bei Bedarf erklären.

 

LukasWWW 
Fragesteller
 06.01.2016, 16:57

Mit bedingter Formatierung schaff ich immer nur eine Zelle zu markieren und nicht die ganze Zeile...

Also z.B. Zelle B2:J2

Wäre super wenn du mir helfen könntest.

0
DeeDee07  06.01.2016, 17:09
@LukasWWW

Du musst zunächst den gesamten Bereich, also B2 bis J.... markieren, und erstellst dann eine neue Regel für die Bedingte Formatierung, mit der Formel

=$B2="a"

und das gewünschte Format wählen. Dann wird die gesamte Zeile (von B bis J) markiert. Die Zeilennummer passt sich für jede Zeile an.

Im übrigen solltest du nur anonymisierte Screenshots posten.

5