Makro für wenn-dann-Bedingung zum Nullen auffüllen
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!
Antwort schreiben
Antwort 1 von Hajo_Zi vom 20.04.2021, 16:27 Options
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
Antwort 2 von Platin7 vom 20.04.2021, 16:39 Options
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
Antwort 3 von Hajo_Zi vom 20.04.2021, 16:43 Options
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
Antwort 4 von Platin7 vom 20.04.2021, 17:32 Options
Hallo Hajo!
Danke! So habe ich es mir vorgestellt!
Gruss
Ines