Si une cellule vide alors zéro est inscrit dans cette cellule

Bonjour

J'ai une colonne D qui doit impérativement contenir dans chaque cellule de la colonne un zéro (si les cellules ne contiennent pas d'autre valeur).

le code Range("D3:D500").SpecialCells(xlCellTypeBlanks) = 0 fonctionne en soi et met un zéro dans chaque cellule vide de la colonne D.

Cependant je souhaite créer une macro qui active ceci à l'ouverture d'un onglet (par exemple quand on passe d'un onglet à l'autre) et qui détecte s'il y a des cellules vide.

S'il y a au moins une cellule vide dans la colonne D alors on active la macro et la cellule vide en question "reçoit le zéro"

Dans le code suivant quelque chose visiblement ne marche pas

Private Sub Worksheet_Activate()

'replace blank cells with zero

If Not IsEmpty(Range("D3:D500").Value) Then

Exit Sub

Else

Range("D3:D500").SpecialCells(xlCellTypeBlanks) = 0

End If

End Sub

Bonjour ,

Essayes voir comme ça

For i = 3 to 500
    If Not isEmpty(Range("D" & i)) then
        Exit Sub
        Else
        Range("D"& i) = 0
    EndIf
Next
        

Edit : En fait pas besoin de tester si la case est non vide, juste à tester si la case est vide comme cela :

Sub Test()

For i = 3 To 500
        If IsEmpty(Range("D" & i)) Then
                Range("D" & i) = 0
        End If
Next
End Sub

ça bug à la ligne du not isempty...

J'ai édité mon message, j'ai rectifié le code, je débute en VBA

Ca fonctionne!!!!

MERCI!!!

Rechercher des sujets similaires à "vide zero inscrit cette"