702 Aufrufe
Gefragt in Tabellenkalkulation von m-o-m Mitglied (499 Punkte)
Hallo,

in einer Excel (Office 2010) möchte ich über Makro die folgende Funktion abbilden:
Ich habe ja schon gesucht, aber irgendwie nicht so Recht die Lösung gefunden. Und VBA ist mir komplett fremd.

Wenn in der Spalte E der Wert WEG eingetragen ist, soll in derselben Zeile in den Spalten P – U eine 0 (Null) eingetragen werden, aber nur, wenn die Zellen (P-U) leer sind.

Und das Ganze im Bereich Zeile 2 bis 1000.

Schon mal VIELEN DANK für das lesen, nachdenken und NOCHMEHR DANKE für das LÖSEN.

Gruß Maik

2 Antworten

0 Punkte
Beantwortet von
Hallo Maik,

starte den VBA-Editor (Alt+F11) und füge in das Modul das deinem Tabellenblatt entspricht folgenden Code ein.
Sub LeerZellenFuellen()
lastrow = Range("E:E").SpecialCells(xlCellTypeLastCell).Row

For i = 1 To lastrow
If Range("E" & i).Value = "WEG" Then
For Each c In Range("P" & i & ":" & "U" & i)
If c.Value = "" Then c.Value = 0
Next c
End If
Next i

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

On Error GoTo Ende
If Target.Column = 5 And Target.Value = "WEG" Then
Application.EnableEvents = False
For Each c In Range("P" & Target.Row & ":" & "U" & Target.Row)
If c.Value = "" Then c.Value = 0
Next c
Application.EnableEvents = True
End If

Ende:
End Sub
Falls du schon bestehende Daten hast, führst du einmalig den Ersten Code aus. Setze dazu z.B. den Mauscursor in den Code und drücke F5. Danach kannst du die Erste Sub löschen. Mit der zweiten Sub wird verhindert, dass neue Lücken entstehen. Sobald in Spalte E WEG eingeben wird, werden die Nullen automatisch gesetzt.

Gruß Mr. K.
0 Punkte
Beantwortet von m-o-m Mitglied (499 Punkte)
Hallo Mr. K

GRACIAS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

;-)

Funzt wie Bolle
...