Effacer avec FindFormat

3 réponses
Avatar
rmill...
Bonjour,

Dans une plage il y a une cellule avec la valeur '0. Donc avec l'apostrophe avant le zéro. Par VBA j'ai besoin d'effacer la valeur ou le contenu de cette cellule. J'utilise le format 19 comme ColorIndex avec le FindFomat car je dois effacer que des valeurs dans ces types de cellules.

Curieusement ... je réussi Í  effacer le zéro mais l'apostrophe demeure et crée une erreur #Valeur ensuite. J'utilise le code ci-dessous. Pourtant le code devrait effacer tout le contenu ... non? Y aurait-il une autre façon de faire? Merci Í  l'avance.

Sheets(Var_Sheet).Application.FindFormat.Clear
Sheets(Var_Sheet).Application.FindFormat.Interior.ColorIndex = 19
Sheets(Var_Sheet).Range("Zone").SpecialCells(xlCellTypeConstants).Replace what:="*", Replacement:="", SearchFormat:=True
Sheets(Var_Sheet).Range("Zone").SpecialCells(xlCellTypeFormulas).Replace what:="*", Replacement:="", SearchFormat:=True

3 réponses

Avatar
MichD
Le 25/03/22 Í  08:45, a écrit :
Bonjour,
Dans une plage il y a une cellule avec la valeur '0. Donc avec l'apostrophe avant le zéro. Par VBA j'ai besoin d'effacer la valeur ou le contenu de cette cellule. J'utilise le format 19 comme ColorIndex avec le FindFomat car je dois effacer que des valeurs dans ces types de cellules.
Curieusement ... je réussi Í  effacer le zéro mais l'apostrophe demeure et crée une erreur #Valeur ensuite. J'utilise le code ci-dessous. Pourtant le code devrait effacer tout le contenu ... non? Y aurait-il une autre façon de faire? Merci Í  l'avance.
Sheets(Var_Sheet).Application.FindFormat.Clear
Sheets(Var_Sheet).Application.FindFormat.Interior.ColorIndex = 19
Sheets(Var_Sheet).Range("Zone").SpecialCells(xlCellTypeConstants).Replace what:="*", Replacement:="", SearchFormat:=True
Sheets(Var_Sheet).Range("Zone").SpecialCells(xlCellTypeFormulas).Replace what:="*", Replacement:="", SearchFormat:=True

Bonjour,
Qu'est-ce que tu fais pour obtenir une valeur d'erreur #Valeur!
Tu écris une formule? Est-ce que les cellules dont tu as effacé le
contenu font partie de cette formule?
Quel est cette formule ? Est-ce que les cellules de la formule sont
toutes au format standard?
MichD
Avatar
rmill...
Bonjour Í  nouveau,
Dans la cellule ... avant ... l'exécution du code FindFormat ... il y a '0. Donc pas de formules.
Après l'exécution du code ... il y a #Valeur ... mais dans une autre cellule qui elle contient une formule faisant référence Í  la cellule avec le '0.
Désolé car effectivement j'aurais dÍ» préciser ceci.
Alors le problème est qu'après l'exécution du code ... il reste le ' (apostrophe).
Le format de la cellule est un format Nombre.
J'ai besoin que le code puisse aussi effacer le ' . Ça efface le 0 mais pas le '. Cela doit dépendre j'imagine de la façon dont la valeur a été saisie Í  l'origine et aussi possiblement relié au séparateur de décimale???
Avatar
MichD
Le 25/03/22 Í  12:12, a écrit :
Bonjour Í  nouveau,
Dans la cellule ... avant ... l'exécution du code FindFormat ... il y a '0. Donc pas de formules.
Après l'exécution du code ... il y a #Valeur ... mais dans une autre cellule qui elle contient une formule faisant référence Í  la cellule avec le '0.
Désolé car effectivement j'aurais dÍ» préciser ceci.
Alors le problème est qu'après l'exécution du code ... il reste le ' (apostrophe).
Le format de la cellule est un format Nombre.
J'ai besoin que le code puisse aussi effacer le ' . Ça efface le 0 mais pas le '. Cela doit dépendre j'imagine de la façon dont la valeur a été saisie Í  l'origine et aussi possiblement relié au séparateur de décimale???

Dans une cellule qui contient du numérique, nul besoin d'avoir une
apostrophe devant le 0, cette apostrophe transforme la valeur de la
cellule au format texte. L͠, o͹ une erreur "#valeur!" apparaͮt, cela
devrait être dans la cellule contenant la formule et non dans la cellule
qui contient le "'0". La raison est simple, ta formule ne sait pas
exécuter une opération mathématique avec du texte. Ta procédure avec
FindFormat doit enlever tout le contenu de la cellule, y compris
l'apostrophe.
MichD