Effacer le contenu des cellules jaunes sans supprimer les formules
Le
JP

Bonjour,
J'ai écrit ce code pour effacer le contenu des cellules fond jaune mais i=
l ne fonctionne pas.
Il efface aussi les cellules fond vert.
De plus j'ai un message d'erreur
Une idée?
Sub EffaceJaune()
For Each c In Range("a1:D30")
If c.Interior.Color = 52479 Then
c.SpecialCells(xlCellTypeConstants, 23).ClearContents
End If
Next c
End Sub
Merci
JP
J'ai écrit ce code pour effacer le contenu des cellules fond jaune mais i=
l ne fonctionne pas.
Il efface aussi les cellules fond vert.
De plus j'ai un message d'erreur
Une idée?
Sub EffaceJaune()
For Each c In Range("a1:D30")
If c.Interior.Color = 52479 Then
c.SpecialCells(xlCellTypeConstants, 23).ClearContents
End If
Next c
End Sub
Merci
JP
Il est possible que les cellules effacées par erreur aient un fond
jaune, le vert étant superposé par une mise en forme conditionnelle.
Cordialement.
Daniel
Pour toi le code est bon?
JP
Sub EffaceJaune()
For Each c In Range("a1:D30").SpecialCells(xlCellTypeConstants, 23)
If c.Interior.Color = 52479 Then
c.ClearContents
End If
Next c
End Sub
Après vérification :
c.SpecialCells(xlCellTypeConstants, 23)
Sélectionne TOUTES les cellules contenant des constantes.
À la suggestion de Daniel, j'ajouterais si j'étais toi
la ligne de code suivante : "On Error Resume Next"
Quand tu utilises ceci : "SpecialCells", cela génère une
erreur si la plage de cellules ne contient pas au moins
une cellule équivalente.... C'est une question de sécurité!
'--------------------------
J'aurais plutôt écrit comme ça :
Sub EffaceJaune()
On Error Resume Next
For Each c In Range("a1:D30").SpecialCells(xlCellTypeConstants, 23)
If c.Interior.Color = 52479 Then
c.ClearContents
End If
Next c
End Sub
'--------------------------
MichD
---------------------------------------------------------------
"DanielCo" a écrit dans le message de groupe de discussion :
ks5psq$jno$
J'aurais plutôt écrit comme ça :
Sub EffaceJaune()
For Each c In Range("a1:D30").SpecialCells(xlCellTypeConstants, 23)
If c.Interior.Color = 52479 Then
c.ClearContents
End If
Next c
End Sub
Après vérification :
c.SpecialCells(xlCellTypeConstants, 23)
Sélectionne TOUTES les cellules contenant des constantes.
C'est beaucoup mieux ou très différent comme tu préfères.
Maintenant ça fonctionne même quand il n'y a pas de valeur.
Merci
JP
Merci Daniel
JP
Dans cette ligne de code :
c.SpecialCells(xlCellTypeConstants, 23).ClearContents
Le chiffre 23 représente la somme des valeurs des
constantes suivantes :
Constantes XlSpecialCellsValue
xlErrors -> 16 'Valeur d'erreur du type :
#NA! #NOM! #VALEUR! #REF!
xlLogical -> 4 'Pour les valeurs logiques Vrai ou Faux
xlNumbers -> 1 'Pour les valeurs numériques
xlTextValues -> 2 'Pour les valeurs textes
La procédure ne devrait pas toucher les cellules contenant
une formule ou totalement vides!
MichD
---------------------------------------------------------------
"JP" a écrit dans le message de groupe de discussion :
Bonjour Denis,
C'est beaucoup mieux ou très différent comme tu préfères.
Maintenant ça fonctionne même quand il n'y a pas de valeur.
Merci
JP
Merci
JP