cerhu > microsoft.* > microsoft.excel

JP (17/07/2013, 10h32)
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
DanielCo (17/07/2013, 10h46)
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
[..]
JP (17/07/2013, 11h43)
Bonjour Daniel,

Pour toi le code est bon?

JP
DanielCo (17/07/2013, 11h58)
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.
[..]
MichD (17/07/2013, 14h06)
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...

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.
[..]
JP (17/07/2013, 14h12)
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 (17/07/2013, 14h15)
J'allais oublier de remercier Daniel.
Merci Daniel

JP
MichD (17/07/2013, 16h39)
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...

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 (17/07/2013, 21h13)
Je viens de regarder. C'est effectivement intéressant. Je n'ai pas le reflex d'aller chercher dans l'aide.

Merci

JP
Discussions similaires
effacer le contenu de cellules

Copier un tableau avec ses formules , mais effacer le contenu

Effacer le contenu des cellules

Supprimer le contenu sans effacer les formules


Fuseau horaire GMT +2. Il est actuellement 16h10. | Privacy Policy