Point de salut !

Le
garnote
Bonsoir,

La plage A1:A10 est formatée « texte » et chaque
cellule contient 00.00. Quand je veux enlever les points
avec cette macro, il ne reste plus qu'un seul 0 dans les
cellules. Pourquoi en est-il ainsi ?

Sub Enlève_Points()
[a1:a10].Replace What:=".", Replacement:="", LookAt:=xlPart
End Sub

Merci,

Serge
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #4908571
Bonsoir,

Préserve les 0 devant:

For Each c In Range([A1], [A65000].End(xlUp))
c.NumberFormat = "@"
c.Value = Replace(c.Value, ".", "")
Next c

JB

On 28 juin, 18:35, "garnote"
Bonsoir,

La plage A1:A10 est formatée « texte » et chaque
cellule contient 00.00. Quand je veux enlever les points
avec cette macro, il ne reste plus qu'un seul 0 dans les
cellules. Pourquoi en est-il ainsi ?

Sub Enlève_Points()
[a1:a10].Replace What:=".", Replacement:="", LookAt:=xlPart
End Sub

Merci,

Serge


MichDenis
Le #4908531
| La plage A1:A10 est formatée « texte » et chaque
| cellule contient 00.00. Quand je veux enlever les points
| avec cette macro, il ne reste plus qu'un seul 0 dans les
| cellules. Pourquoi en est-il ainsi ?

| Sub Enlève_Points()
| [a1:a10].Replace What:=".", Replacement:="", LookAt:=xlPart
| End Sub

C'est pourtant évident ... ;-))

A ) La méthode "Replace" tel que tu l'as utilisé est l'équivalent de la fonction
"Rechercher-Remplacer
de l'interface de la feuille de calcul
B ) la méthode remplace les points dans la chaîne numérique (seulement des chiffres) et retourne
dans la cellule une valeur équivalente pour excel : 0000 ou 0 => a la même valeur
C ) si tu essaies de faire la substitution par la fonction de la feuille de calcul, tu as le même
résultat que tu as obtenu en VBA

D ) Ce qu'à utiliser JB dans son exemple est une fonction appartenant à la bibliothèque VBA
Si ta plage était déjà au format "texte", l'omission de cette ligne de code dans sa procédure
n'aurait rien changé c.NumberFormat = "@"

la fonction Replace est similaire à la fonction de la feuille de calcul "SUBSTITUE"
ou son équivalence en vba : Application.Substitute()
Publicité
Poster une réponse
Anonyme