1.7k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo Spezies!
Ich habe eine Software, die keine Nullwerte ausgibt, sobald nicht eine Buchung vorhanden ist! Für die weitere Darstellung in Excel benötige ich die "0" jedoch!
Da auch gewollte Leerzeilen vorhanden sind, habe ich mir ein Makro vorgestellt, das, wenn in Spalte Z eine "0" steht, alle leeren Zellen der Spalte F und N der gleichen Zeile mit "0" aufgefüllt werden.

Beim surfen bin ich auf folgendes Makro gestoßen:

Public Sub LeereZellenmitNullenfüllen()
Dim Bereich As Range
Dim Zelle As Range

Set Bereich = Range("A1:c10")
For Each Zelle In Bereich
If Zelle.Value = "" Then
Zelle.Value = 0
End If
Next

End Sub

Leider bekomme ich die Wenn-Bedingung mit dem Bereich der zu befüllen ist, nicht kombiniert!

Vielleicht kann mir jemand helfen!

Danke!

4 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Platin,
Option Explicit

Sub Platin()
Dim LoLetzte As Long
Dim LoI As Long
LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 26)), Cells(Rows.Count, 26).End(xlUp).Row, Rows.Count)
Application.ScreenUpdating = False
For LoI = 1 To LoLetzte
If Not IsEmpty(Cells(LoI, 26)) And Cells(LoI, 26) = 0 Then
Cells(LoI, 14) = 0
Cells(LoI, 6) = 0
End If
Next LoI
Application.ScreenUpdating = False
End Sub

Gruß Hajo
0 Punkte
Beantwortet von
Hi!
Danke für den schnellen Ansatz!
Leider überschreibt das Makro auch befüllte Zellen!

Oder habe ich bei meiner Testvariante was falsch übertragen?

Option Explicit

Sub Platin()
Dim LoLetzte As Long
Dim LoI As Long
LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 6)), Cells(Rows.Count, 6).End(xlUp).Row, Rows.Count)
Application.ScreenUpdating = False
For LoI = 1 To LoLetzte
If Not IsEmpty(Cells(LoI, 6)) And Cells(LoI, 6) = 0 Then
Cells(LoI, 2) = 0
Cells(LoI, 4) = 0
End If
Next LoI
Application.ScreenUpdating = False
End Sub

Gruss
Platin7
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Platin,

ich habe mich an die Aufgabe gehlaten

"Da auch gewollte Leerzeilen vorhanden sind, habe ich mir ein Makro vorgestellt, das, wenn in Spalte Z eine "0" steht, alle leeren Zellen der Spalte F und N der gleichen Zeile mit "0" aufgefüllt werden."

Sollen die Inhalte in F und N nicht überschrieben werden?
Option Explicit

Sub Platin()
Dim LoLetzte As Long
Dim LoI As Long
LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 26)), Cells(Rows.Count, 26).End(xlUp).Row, Rows.Count)
Application.ScreenUpdating = False
For LoI = 1 To LoLetzte
If Not IsEmpty(Cells(LoI, 26)) And Cells(LoI, 26) = 0 Then
If Cells(LoI, 14) = "" Then Cells(LoI, 14) = 0
If Cells(LoI, 6) = "" Then Cells(LoI, 6) = 0
End If
Next LoI
Application.ScreenUpdating = False
End Sub

Gruß Hajo
0 Punkte
Beantwortet von
Hallo Hajo!

Danke! So habe ich es mir vorgestellt!

Gruss
Ines
...