Attribution automatique de valeur 0 à des cellules vides

VicoFer -  
ccm81 Messages postés 11033 Statut Membre -
Bonjour,

Je souhaite développer un code pour attribuer la valeur 0 à toute cellule laissée vide dans une plage de données. Je crois comprendre qu'il est possible de faire exécuter la procédure à Excel automatiquement lorsque l'on change de feuille de calcul mais j'avoue ne pas y parvenir depuis plusieurs jours.

Le code que j'ai mis au point jusqu'à maintenant est:

Private Sub Worksheet_Change(ByVal Target As Range)
Worksheets("Types de Portefeuilles").Select

Dim i As Integer
Dim j As Integer

i = Cells(1, 3).Value 'Nombre de lignes que compte mon fichier

For j = i To 5 Step -1
While Cells(j, 1) <> ""
If IsEmpty(Cells(j, 4)) = True Then Cells(j, 4) = 0
ElseIf IsEmpty(Cells(j, 5)) = True Then Cells(j, 5) = 0
ElseIf IsEmpty(Cells(j, 6)) = True Then Cells(j, 6) = 0
ElseIf IsEmpty(Cells(j, 7)) = True Then Cells(j, 7) = 0
ElseIf IsEmpty(Cells(j, 8)) = True Then Cells(j, 8) = 0
End If
Next j
End Sub

Quelqu'un saurait-il m'expliquer ce qui cloche?

Merci d'avance,

Victor

1 réponse

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

    Si j'ai compris, essaies ceci

    ' mettre à 0 les cellules vides des colonnes 4 à 8
    ' des lignes 5 à i lorsque la cellule de la colonne 3 n'est pas vide
    
    Private Sub Worksheet_Change(ByVal Target As Range)
    ' si tu as bien mis le code dans le module de cette feuille, ceci est inutile
    'Worksheets("Types de Portefeuilles").Select
    Dim i As Long, j As Long, k As Long
    i = Cells(1, 3).Value 'Nombre de lignes que compte mon fichier
    For j = i To 5 Step -1
      If Cells(j, 1) <> "" Then
        For k = 4 To 8
          If Cells(j, k) = "" Then Cells(j, k) = 0
        Next k
      End If
    Next j
    End Sub

    Cdlmnt
    0