Attribution automatique de valeur 0 à des cellules vides

Fermé
VicoFer - 1 juil. 2015 à 17:09
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 - 1 juil. 2015 à 18:36
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


A voir également:

1 réponse

ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
1 juil. 2015 à 18:36
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