Remplir les cellules vides avec des 0
Résolu/Fermé
BILLING
Messages postés
162
Date d'inscription
vendredi 4 mai 2012
Statut
Membre
Dernière intervention
31 mars 2021
-
4 oct. 2012 à 17:12
BILLING Messages postés 162 Date d'inscription vendredi 4 mai 2012 Statut Membre Dernière intervention 31 mars 2021 - 5 oct. 2012 à 19:52
BILLING Messages postés 162 Date d'inscription vendredi 4 mai 2012 Statut Membre Dernière intervention 31 mars 2021 - 5 oct. 2012 à 19:52
A voir également:
- Remplir les cellules vides avec des 0
- Organigramme a remplir word - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Verrouiller des cellules excel - Guide
- Remplir et signer pdf - Guide
- Si #n/a alors 0 - Forum Bureautique
5 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 4/10/2012 à 18:58
Modifié par michel_m le 4/10/2012 à 18:58
Bonjour à tous
tout simplement :o)
Edit modifié le code
Michel
tout simplement :o)
derlig = Columns("A").Find("*", , , , , xlPrevious).Row If Application.CountIf(Range("L1:L" & derlig), "") > 0 Then Range("L1:L" & derlig).SpecialCells(xlCellTypeBlanks) = 0 End If
Edit modifié le code
Michel
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 711
4 oct. 2012 à 17:16
4 oct. 2012 à 17:16
bonjour,
N'aurais-tu pas décoché l'affichage des zéros ?
Tu n'as pas besoin de doubler les guillemets :
N'aurais-tu pas décoché l'affichage des zéros ?
Tu n'as pas besoin de doubler les guillemets :
If cellule.Value = "" Then
BILLING
Messages postés
162
Date d'inscription
vendredi 4 mai 2012
Statut
Membre
Dernière intervention
31 mars 2021
48
4 oct. 2012 à 17:31
4 oct. 2012 à 17:31
Pas certaine de savoir où j'aurais décoché l'affichage des zéros. Par contre, sesont des cellules vides, sans formule à l'intérieur.
J'ai enlevé les doubles guillemets mais ma fonction n'est toujours pas à point. Cette fois, elle a mis des zéros dans quelques cellules puis elle n'a jamais complété. En fait, j'ai dû l'arrêter car elle ne semblait pas finir :-/
Le End If est maintenant surligné en jaune dans Visual Basic. Qu'est-ce qui ne va pas?
Sub MettreLesZero()
'
' MettreLesZero Macro
' Met les 0 dans les cellules vide de %MLO et %WEL
'
'
Dim cellule As Range
derlig = Columns("A").Find("*", , , , , xlPrevious).Row
For Each cellule In Range("L:L")
If cellule.Value = "" Then
cellule.Value = 0
End If
Next cellule
Range("O2").Select
End Sub
J'ai enlevé les doubles guillemets mais ma fonction n'est toujours pas à point. Cette fois, elle a mis des zéros dans quelques cellules puis elle n'a jamais complété. En fait, j'ai dû l'arrêter car elle ne semblait pas finir :-/
Le End If est maintenant surligné en jaune dans Visual Basic. Qu'est-ce qui ne va pas?
Sub MettreLesZero()
'
' MettreLesZero Macro
' Met les 0 dans les cellules vide de %MLO et %WEL
'
'
Dim cellule As Range
derlig = Columns("A").Find("*", , , , , xlPrevious).Row
For Each cellule In Range("L:L")
If cellule.Value = "" Then
cellule.Value = 0
End If
Next cellule
Range("O2").Select
End Sub
BILLING
Messages postés
162
Date d'inscription
vendredi 4 mai 2012
Statut
Membre
Dernière intervention
31 mars 2021
48
4 oct. 2012 à 17:40
4 oct. 2012 à 17:40
Correction, ma formule met des zéro dans toutes les cellules vide de la colonne L. Je voulais qu'elle arrête à la dernière ligne de données déterminé par la colonne A. C'est pour ça qu'elle prenait si longtemps à terminer.
Mike-31
Messages postés
18350
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
28 novembre 2024
5 105
Modifié par Mike-31 le 4/10/2012 à 17:52
Modifié par Mike-31 le 4/10/2012 à 17:52
Salut,
regarde comme cela, pour surveiller la plage A1 à L dernière ligne de A non vide
Dim cellule As Range
derlig = Columns("A").Find("*", , , , , xlPrevious).Row
For Each cellule In Range([A1], [A65536].End(xlUp).Offset(0, 11))
If cellule.Value = "" Then
cellule.Value = 0
End If
Next cellule
Range("O2").Select
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
regarde comme cela, pour surveiller la plage A1 à L dernière ligne de A non vide
Dim cellule As Range
derlig = Columns("A").Find("*", , , , , xlPrevious).Row
For Each cellule In Range([A1], [A65536].End(xlUp).Offset(0, 11))
If cellule.Value = "" Then
cellule.Value = 0
End If
Next cellule
Range("O2").Select
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
BILLING
Messages postés
162
Date d'inscription
vendredi 4 mai 2012
Statut
Membre
Dernière intervention
31 mars 2021
48
4 oct. 2012 à 18:04
4 oct. 2012 à 18:04
Bonjour Mike,
Ta formule fonctionne en partie. Elle a ajouté des zéros non seulement dans les cellules vides de la colonne L mais aussi dans les cellules vides des colonnes avant L :-(
Que faut-il changer pour s'en tenir à la colonne L ?
Ta formule fonctionne en partie. Elle a ajouté des zéros non seulement dans les cellules vides de la colonne L mais aussi dans les cellules vides des colonnes avant L :-(
Que faut-il changer pour s'en tenir à la colonne L ?
Mike-31
Messages postés
18350
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
28 novembre 2024
5 105
4 oct. 2012 à 18:11
4 oct. 2012 à 18:11
Re,
quelle plage veux tu surveiller de A1 à L équivalent à la dernière ligne non vide de A ou simplement la colonne L de L1 à L dernière ligne non vide de A exemple L20
quelle plage veux tu surveiller de A1 à L équivalent à la dernière ligne non vide de A ou simplement la colonne L de L1 à L dernière ligne non vide de A exemple L20
BILLING
Messages postés
162
Date d'inscription
vendredi 4 mai 2012
Statut
Membre
Dernière intervention
31 mars 2021
48
4 oct. 2012 à 18:27
4 oct. 2012 à 18:27
Ouff.... la colonne L de L1 à L dernière ligne non vide de A
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mike-31
Messages postés
18350
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
28 novembre 2024
5 105
4 oct. 2012 à 18:30
4 oct. 2012 à 18:30
Re,
alors voila
Dim cellule As Range
derlig = Columns("A").Find("*", , , , , xlPrevious).Row
For Each cellule In Range([L1], [A65536].End(xlUp).Offset(0, 11))
If cellule.Value = "" Then
cellule.Value = 0
End If
Next cellule
Range("O2").Select
alors voila
Dim cellule As Range
derlig = Columns("A").Find("*", , , , , xlPrevious).Row
For Each cellule In Range([L1], [A65536].End(xlUp).Offset(0, 11))
If cellule.Value = "" Then
cellule.Value = 0
End If
Next cellule
Range("O2").Select
BILLING
Messages postés
162
Date d'inscription
vendredi 4 mai 2012
Statut
Membre
Dernière intervention
31 mars 2021
48
4 oct. 2012 à 19:25
4 oct. 2012 à 19:25
Mike,
Ça fonctionne très bien. Merci
Peux-tu m'expliquer pourquoi tu mets ceci: [A65536] ? Est-ce une limite de ligne aléatoire?
Ça fonctionne très bien. Merci
Peux-tu m'expliquer pourquoi tu mets ceci: [A65536] ? Est-ce une limite de ligne aléatoire?
BILLING
Messages postés
162
Date d'inscription
vendredi 4 mai 2012
Statut
Membre
Dernière intervention
31 mars 2021
48
4 oct. 2012 à 19:38
4 oct. 2012 à 19:38
Mike,
J'essais d'appliquer la même syntaxe pour la colonne O. Voici ce que j'ai écrit.
Dim cellule As Range
derlig = Columns("A").Find("*", , , , , xlPrevious).Row
For Each cellule In Range([L1], [A65536].End(xlUp).Offset(0, 11))
If cellule.Value = "" Then
cellule.Value = 0
End If
Next cellule
Range("O2").Select
Dim cellule As Range
derlig = Columns("A").Find("*", , , , , xlPrevious).Row
For Each cellule In Range([O1], [A65536].End(xlUp).Offset(0, 14))
If cellule.Value = "" Then
cellule.Value = 0
End If
Next cellule
Range("I2").Select
Mais ça ne fonctionnne pas. Je reçois ce message: "Erreur de compilation. Déclaration existante dans la portée en cours." Je ne comprends pas ce que ça veut dire. Peux-tu m'aider?
Merci :-)
J'essais d'appliquer la même syntaxe pour la colonne O. Voici ce que j'ai écrit.
Dim cellule As Range
derlig = Columns("A").Find("*", , , , , xlPrevious).Row
For Each cellule In Range([L1], [A65536].End(xlUp).Offset(0, 11))
If cellule.Value = "" Then
cellule.Value = 0
End If
Next cellule
Range("O2").Select
Dim cellule As Range
derlig = Columns("A").Find("*", , , , , xlPrevious).Row
For Each cellule In Range([O1], [A65536].End(xlUp).Offset(0, 14))
If cellule.Value = "" Then
cellule.Value = 0
End If
Next cellule
Range("I2").Select
Mais ça ne fonctionnne pas. Je reçois ce message: "Erreur de compilation. Déclaration existante dans la portée en cours." Je ne comprends pas ce que ça veut dire. Peux-tu m'aider?
Merci :-)
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
4 oct. 2012 à 19:43
4 oct. 2012 à 19:43
bon, bin excuse moi d'avoir essayé de de t'aider avec une macro toute simple : 3 ou 4 lignes, sans boucle, instantanée, mais, c'est toi qui décide!
pourquoi faire simple quand on peut faire compliqué... surtout qu'avec l'enregistreur de macro, la procédure est faite à 90%...
pourquoi faire simple quand on peut faire compliqué... surtout qu'avec l'enregistreur de macro, la procédure est faite à 90%...
BILLING
Messages postés
162
Date d'inscription
vendredi 4 mai 2012
Statut
Membre
Dernière intervention
31 mars 2021
48
4 oct. 2012 à 19:55
4 oct. 2012 à 19:55
Mike,
Le message de michel_m, est-ce que ça concerne mon problème de Macro? Je ne comprends son intervention.
Le message de michel_m, est-ce que ça concerne mon problème de Macro? Je ne comprends son intervention.
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
4 oct. 2012 à 23:54
4 oct. 2012 à 23:54
Bonsoir à tous,
La proposition de michel est remontée tout en haut à cause du +1.
Tu peux te passer de la boucle en faisant en vba l'équivalent de 'edition / atteindre... / cellules.. / cellules vides'
Teste...
eric
La proposition de michel est remontée tout en haut à cause du +1.
Tu peux te passer de la boucle en faisant en vba l'équivalent de 'edition / atteindre... / cellules.. / cellules vides'
Teste...
eric
5 oct. 2012 à 19:52
Merci, ça fonctionne. Désolée pour avant, je crois que j'ai perdu le fil des réponses. J'ai manqué la tienne totalement.
Merci encore :-)
Voici ma version adaptée à mes besoins:
derlig = Columns("A").Find("*", , , , , xlPrevious).Row
If Application.CountIf(Range("L1:L" & derlig), "") > 0 Then
Range("L1:L" & derlig).SpecialCells(xlCellTypeBlanks) = 0
End If
derlig = Columns("A").Find("*", , , , , xlPrevious).Row
If Application.CountIf(Range("O1:O" & derlig), "") > 0 Then
Range("O1:O" & derlig).SpecialCells(xlCellTypeBlanks) = 0
End If