Wenn Zelle geleert wird soll Zeile geleert werden

Guten Morgen alle miteinander.

Ich habe wieder ein Problem und es werden noch mehr folgen, aber dafür gibt es ja so ein Forum :smile:

Ich habe zwei Hauptspalten
Reiseziel----------Koordinator

Nach dem Koordinator gibt es X viele weitere Spalten.

Die Reiseziele bleiben unverändert.
Die koordinatoren können sich immer ändern.

Ich möchte nun, wenn der Inhalt bei einem Koordinator gelöscht wird also keiner mehr eingetragen ist, dass alle weiteren Zellen die nach rechts folgen auch geleert werden. Die Formatierung soll aber wenn möglich erhalten bleiben.

Ich habe beim Durchstöbern von anderen Foren ein gutes Beispiel gefunden, doch leider löscht er die komplette Zeile + Formatierungen und das brauche ich leider nicht.

Hier mal der Code:
'------------------------------------------------
Sub DeleteCells2()

Dim rng As Range
Dim i As Integer, counter As Integer

'Set the range to evaluate to rng.
Set rng = Range(„A1:A10“)

'initialize i to 1
i = 1

'Loop for a count of 1 to the number of rows
'in the range that you want to evaluate.
For counter = 1 To rng.Rows.Count

'If cell i in the range contains an „x“,
'delete the row.
'Else increment i
If rng.Cells(i) = „“ Then
rng.Cells(i).EntireRow.Delete
Else
i = i + 1
End If

Next

End Sub
'------------------------------------------------

Ich hoffe ich habe alles veständlich und einleuchtend erklärt.
Wenn dennoch Fragen sein sollten stellt sie ruhig.

Fall es schon einen Thread zu genau diesem Problem geben sollte währe ich euch sehr dankbar wenn ihr mir einen Link dafür gebt.

Ansonsten war es das fürs erste von mir.

Mfg Mysterie

Ich habe zwei Hauptspalten
Reiseziel----------Koordinator

Ich möchte nun, wenn der Inhalt bei einem Koordinator gelöscht
wird also keiner mehr eingetragen ist, dass alle weiteren
Zellen die nach rechts folgen auch geleert werden. Die
Formatierung soll aber wenn möglich erhalten bleiben.

Hi Mysterie,

in das Modul: „Tabelle1“ bzw. deinen Blattnamen

Die 2 steht für die 2te Spalte, also B, ggfs. anpassen

Private Sub Worksheet\_Change(ByVal Target As Range)
If Target.Columns 2 Then Exit Sub
If Target.Value = "" Then
 Range(Cells(Target.Row, 2), Cells(Target.Row, Columns.Count)).ClearContents
End If
End Sub

Gruß
Reinhard

Keinen Ahnung was ich falsch mache, oder was am Code falsch ist(was ich bezweifle ^^), aber bei mir tut sich rein garnichts.

Habe es erst im Makro-Modul eingetragen, nichts passiert.
Dann im Tabelle1 Blatt und auch dort passiert nichts bei einer Veränderung.

Die Sicherheit für Makros ist auch auf niedrig also daran kann es schon mal nicht liegen :smile:

Auf jeden fall danke schon mal für die erste Antwort :smile:

Mfg

Keinen Ahnung was ich falsch mache, oder was am Code falsch
ist(was ich bezweifle ^^), aber bei mir tut sich rein
garnichts.

Hi Mysterie,

mein Fehler :frowning:

Probier mal diesen Code, der spielt auch mit wenn du Zellblöcke in Spalte B löschst:

Private Sub Worksheet\_Change(ByVal Target As Range)
Dim T As Range
Set Target = Intersect(Target, Columns(2))
If Target Is Nothing Then Exit Sub
For Each T In Target
 If T.Value = "" Then
 Application.EnableEvents = False
 Range(Cells(T.Row, 2), Cells(T.Row, Columns.Count)).ClearContents
 Application.EnableEvents = True
 End If
Next T
End Sub

Gruß
Reinhard

1 Like

Super :smile:
Nun funktioniert es einwandfrei :smile:
Ich würde dich ja gerne jetzt schon bewerten da du mir sogar schon bei einer anderen Sache geholfen hast, aber als Migliedsneuling darf man es ja leider nicht *G*

Also, nochmals vielen Dank :smile:

Mfg Mysterie

Hi,

Ich würde dich ja gerne jetzt schon bewerten da du mir sogar
schon bei einer anderen Sache geholfen hast, aber als
Migliedsneuling darf man es ja leider nicht *G*

aber ich darf … Erledigt. :smile:

Gruß Rainer

Sehr großzügig :smile:
Danke

Mfg

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]