Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1632to1636
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel VBA Wenn leer

Excel VBA Wenn leer
04.07.2018 18:32:45
Marc
Hallo erstmal,
mir qualmt der Kopf * grmbl * * grmbl * *ha ha* *ha ha*
Ich habe fogendes Problem:
Ich brauche einen VBA-Code, welcher in Zelle F7:AJ66 (wenn die Zelle keinen Wert oder Buchstaben enthält) eine 0 einträgt.
soweit so gut:

Sub Nullwennleer()
Dim Zelle As Range
For Each Zelle In Selection
If Zelle.Value = "" Then
Zelle.Value = 0
End If
Next Zelle
End 

Sub
Userbild
Der Code soll aber vorher die dazu gehörige Spalte D überprüfen, ob da etwas steht, erst dann F: _ AJ mit 0en füllen. Ich hoffe, ihr könnt mir helfen. Grz

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel VBA Wenn leer
04.07.2018 18:53:56
{Boris}
Hi,
aus der Hand:
Sub Nullwennleer()
Dim Zelle As Range
For Each Zelle In Selection
If Zelle.Value = "" And Cells(Zelle.Row, 4)  "" Then
Zelle.Value = 0
End If
Next Zelle
End 
VG, Boris
AW: Excel VBA Wenn leer
04.07.2018 19:10:09
Marc
Hallo,
Perfekt !!!
Gibt es noch die möglichkeit, wenn in D der Name entfernt wird, und ich den Code nochmal laufen lasse, das er dann praktisch die Nullen wieder entfernt ?
Grz
AW: Excel VBA Wenn leer
04.07.2018 19:29:26
Marc
OK, hat sich erledigt,
;)
Danke..
AW: Excel VBA Wenn leer
04.07.2018 19:42:34
Marc
Gibt es die Möglichkeit die Range fest anzugeben ?
AW: Excel VBA Wenn leer
04.07.2018 19:43:45
Marc
Gibt es die Möglichkeit, die Range fest anzugeben ?
AW: Excel VBA Wenn leer
04.07.2018 19:58:12
Barbaraa
Probier mal das:

Sub Marcs_Code()
Dim lZeile      As Long
Dim lSpalte     As Long
With Range("F7:AJ66")
For lZeile = .Row To .Row + .Rows.Count - 1
If Cells(lZeile, 4)  "" Then
For lSpalte = .Column To .Column + .Columns.Count - 1
Cells(lZeile, lSpalte).Select
If Cells(lZeile, lSpalte) = "" Then Cells(lZeile, lSpalte) = 0
Next lSpalte
End If
Next lZeile
End With
End Sub
Wenn in D was steht, dann werden alle leeren Zellen im gewünschten bereich mit Nullen befüllt.
Hilft das?
LGB
Anzeige
AW: Excel VBA Wenn leer
04.07.2018 20:07:27
Barbaraa
Wenn Du es schnell willst, dann nimm Boris' Code.
Der ist nicht so umständlich wie meiner.
Ev kannst Du da Selection durch Range("F7:AJ66") ersetzen.
LGB
AW: Excel VBA Wenn leer
04.07.2018 20:09:14
Marc
Habe ein bisschen gegrübelt:
Vielleicht nicht so elegant wie eurer, aber von solchen Leuten wie ihr es seit kann man ne menge lernen.
Vielen Dank.
Sub Nullwennleer3()
Dim Bereich As Range, zelle As Range
Set Bereich = ActiveSheet.Range("F7:AJ60")
For Each zelle In Bereich
If zelle.Value = "" And Cells(zelle.Row, 3)  "" Then
zelle.Value = "z"
End If
Next
Dim Bereich1 As Range, zelle1 As Range
Set Bereich1 = ActiveSheet.Range("F7:AJ60")
For Each zelle1 In Bereich1
If zelle1.Value = "z" And Cells(zelle1.Row, 3) = "" Then
zelle1.Value = ""
End If
Next
End Sub

Anzeige
AW: Excel VBA Wenn leer
04.07.2018 20:28:01
Barbaraa
Wenn Dein Code das richtige Ergebnis liefert, dann ist er gut.
Überlege Dir mal folgende Verschachtelung mit else (wenn Du schon im Grübel-Laune bist):
if Cells(zelle.Row, 3) = "" Then
If zelle1.Value = "z" then
...
end if
Else
If zelle1.Value = "" then
...
end if
end if
Else bedeutet "sonst"
LGB
AW: Excel VBA Wenn leer
05.07.2018 14:21:06
Bernd
Servus Marc,
da beide Codeabschnitte ohnehin in der gleichen Sub laufen kannst du das wunderbar vereinfachen...

Sub Nullwennleer3()
Dim Bereich As Range, zelle As Range
Set Bereich = ActiveSheet.Range("F7:AJ60")
For Each zelle In Bereich
If zelle.Value = "" And Cells(zelle.Row, 3)  "" Then
zelle.Value = "z"
ElseIf zelle.Value = "z" And Cells(zelle.Row, 3) = "" Then
zelle.Value = ""
End If
Next
Set Bereich = Nothing
End Sub
Grüße, Bernd
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige