Effacer le contenu des cellules jaunes sans supprimer les formules
8 réponses
JP
Bonjour,
J'ai =E9crit 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=E9e?
Sub EffaceJaune()
For Each c In Range("a1:D30")
If c.Interior.Color =3D 52479 Then
c.SpecialCells(xlCellTypeConstants, 23).ClearContents
End If
Next c
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
DanielCo
Bonjour, 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
Bonjour,
J'ai écrit ce code pour effacer le contenu des cellules fond jaune mais il 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
Bonjour,
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
Bonjour,
J'ai écrit ce code pour effacer le contenu des cellules fond jaune mais il 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
Bonjour, 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
Bonjour,
J'ai écrit ce code pour effacer le contenu des cellules fond jaune mais il 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
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.
Bonjour Daniel,
Pour toi le code est bon?
JP
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.
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.
Bonjour Daniel,
Pour toi le code est bon?
JP
MichD
Bonjour,
À 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.
Bonjour Daniel,
Pour toi le code est bon?
JP
Bonjour,
À 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$1@speranza.aioe.org...
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.
À 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.
Bonjour Daniel,
Pour toi le code est bon?
JP
JP
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
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.
J'allais oublier de remercier Daniel. Merci Daniel
JP
MichD
Regarde l'aide dans VBA de SpecialCells()
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
Regarde l'aide dans VBA de SpecialCells()
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 :
21bc402e-58a8-4d09-898f-910c1a070870@googlegroups.com...
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.
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
JP
Je viens de regarder. C'est effectivement intéressant. Je n'ai pas le ref lex d'aller chercher dans l'aide.
Merci
JP
Je viens de regarder. C'est effectivement intéressant. Je n'ai pas le ref lex d'aller chercher dans l'aide.