If Zellen G u. K der aktiven Zeile leer, dann....

Bild

Betrifft: If Zellen G u. K der aktiven Zeile leer, dann....
von: Peter
Geschrieben am: 04.12.2015 11:34:37

Hallo zusammen
Wie könnte ein Code aussehen, der folgende Funktionen ausführt?
Werte, Gitternetzlinien und Hintergrundfarbe der aktiven Zeile (A:S) löschen, wenn die Zellen der aktiven Zeile der Spalte G und K leer sind.
Bin dankbar für jede Hilfe.
Viele Grüsse,
Peter

Bild

Betrifft: z.B. so:
von: Michael
Geschrieben am: 04.12.2015 12:34:26
Hi Peter,
versuch mal:

Option Explicit
Sub leeren()
Dim zeile As Long
zeile = Selection(1).Row
If WorksheetFunction.CountA(Range("G" & zeile & ":H" & zeile)) = 0 Then _
Range("A" & zeile & ":S" & zeile).Clear
End Sub
Schöne Grüße,
Michael

Bild

Betrifft: AW: z.B. so:
von: Peter
Geschrieben am: 04.12.2015 13:40:56
Hallo Michael
Ja, es funktioniert, danke für Deine wertvolle Hilfe!
Jedoch fehlt mir noch ein Detail.
Es wird gelöscht, wenn G leer ist, jedoch nicht wenn beide Zellen G und K der aktiven Zeile leer sind. Ich hab rumgebastelt, es jedoch nicht hin bekommen. Wie müsste ich den Code an passen, so dass erst dann gelöscht wird, wenn beide Zellen leer sind.
( & (and) anstelle "or" steht ja schon?)
Danke jetzt schon für Deinen nützlichen Support.
Viele Grüsse,
Peter
Viele Grüsse,
Peter

Bild

Betrifft: Sorry, verschaut
von: Michael
Geschrieben am: 04.12.2015 19:22:13
Hi Peter,
sorry, ich hatte mich verschaut und G+H betrachtet statt G und K.
Hier der geänderte Code:

Sub leeren()
Dim zeile As Long
zeile = Selection(1).Row
If Range("G" & zeile) = "" And Range("K" & zeile) = "" Then _
Range("A" & zeile & ":S" & zeile).Clear
End Sub
Schöne Grüße,
Michael

Bild

Betrifft: AW: Sorry, verschaut
von: Peter
Geschrieben am: 08.12.2015 10:28:51
Hallo Michael
oh wie peinlich, das hätte ich auch selber merken müssen :-(
Danke Dir für den wertvollen Hinweis, jetzt läuft's :-)
Viele Grüsse,
Peter

Bild

Betrifft: na fein, schöne Grüße zurück owT
von: Michael
Geschrieben am: 08.12.2015 20:16:06


Bild

Betrifft: wie ab Zeile 4
von: Peter
Geschrieben am: 10.12.2015 10:39:40
Hallo Michael
wie muss ich den Code anpassen, damit es erst ab der 4. Zeile greift?
Hab bei zeile = Seleciton(1).Row auf (4) geändert, funktioniert jedoch nicht.
Danke schon jetzt für Deine beschätzte Hilfe.
Viele Grüsse,
Peter

Bild

Betrifft: AW: wie ab Zeile 4
von: Michael
Geschrieben am: 10.12.2015 15:13:39
Hi Peter,
dann wird es aber kompliziert von der Bedienung...
Ich weiß ja nicht, was Du genau machst, aber im Moment bezieht sich alles auf den *seletierten* Bereich.
Möchtest Du nun, daß *nichts* passiert, falls die linke, obere Zelle in den ersten drei Zeilen liegt...

Sub leeren()
Dim zeile As Long
zeile = Selection(1).Row
if zeile < 4 Then exit Sub
If Range("G" & zeile) = "" And Range("K" & zeile) = "" Then _
Range("A" & zeile & ":S" & zeile).Clear
End Sub
... oder daß grundsätzlich die vierte Zeile des *selektierten Bereichs* genommen wird?
Selection(1) ist immer die linke, obere Zelle eines *selektierten* Bereichs, wobei die Nummerierung jeweils nach rechts, dann nach unten geht.
Hast Du meinetwegen A2:B5 markiert, entspricht (0) A2, (1) B2, (2) A3 usw. bis (7) B5.
Lade bitte mal ne anonymisierte Beispieldatei hoch und hebe farblich hervor, was Du typischerweise markierst.
Schöne Grüße,
Michael

Bild

Betrifft: AW: wie ab Zeile 4
von: Peter
Geschrieben am: 10.12.2015 15:36:33
Hallo Michael
Funktioniert sehr gut, vielen Dank für Deine Unterstützung.
Viele Grüsse,
Peter

Bild

Betrifft: freut mich,
von: Michael
Geschrieben am: 10.12.2015 15:46:34
Peter,
außerdem hab ich's oben falsch verbeispielt...
Wenn schon, dann isses so: A2:B5 markiert, entspricht (1) A2, (2) B2, (3) A3 usw. bis (8) B5.
Einer der seltenen Fälle, bei denen der Informatiker nicht bei 0 das Zählen beginnt. Es gibt halt keine nullte Zelle, Zeile oder Spalte.
Happy Exceling,
Michael

 Bild

Beiträge aus den Excel-Beispielen zum Thema "If Zellen G u. K der aktiven Zeile leer, dann...."