Autres Remplacer " " par rien supprime le "0" d'une valeur en texte

DAH02

XLDnaute Nouveau
Bonjour,

j'ai un souci sur des données Excel.
Je dois enlever une série d'espace dans toute une feuille Excel. Je fais un remplace " " par "".
Mon souci est que si j'ai, par exemple, la valeur "06 " dans une cellule au format Texte alors le remplace va non seulement enlever les espaces (ce qu'on lui demande de faire) mais également enlever le "0" qui se trouve devant la valeur. Cela se produit uniquement lorsqu'il y'a une valeur numérique commençant par "0" (cela ne se produit pas sur les valeurs alphanumériques comme par exemple "06Z " qui donnera bien "06Z".

C'est étonnant mais ça se reproduit systématiquement.

Comment remplacer les données sans pour autant supprimer le "0" devant un chiffre. Attention !!! Il faut que la zone reste au format texte.

Cordialement,
DAH02
 

Quincy

XLDnaute Occasionnel
Supporter XLD
Bonjour,

j'ai un souci sur des données Excel.
Je dois enlever une série d'espace dans toute une feuille Excel. Je fais un remplace " " par "".
Mon souci est que si j'ai, par exemple, la valeur "06 " dans une cellule au format Texte alors le remplace va non seulement enlever les espaces (ce qu'on lui demande de faire) mais également enlever le "0" qui se trouve devant la valeur. Cela se produit uniquement lorsqu'il y'a une valeur numérique commençant par "0" (cela ne se produit pas sur les valeurs alphanumériques comme par exemple "06Z " qui donnera bien "06Z".

C'est étonnant mais ça se reproduit systématiquement.

Comment remplacer les données sans pour autant supprimer le "0" devant un chiffre. Attention !!! Il faut que la zone reste au format texte.

Cordialement,
DAH02
Bonjour DAH02 , le forum

J'ai une macro qui le fait mais colonne par colonne, si cela peut te dépanner.


Sub Suppr_espace()

'Suppression des espaces inutiles dans cellules

Dim col As String
Dim Derlign As Integer
Dim C As Range

Application.ScreenUpdating = False

reprise:
col = InputBox("Veuillez saisir la(es) lettre(s) de la colonne concernée !", "Colonne")

If IsNumeric(col) Then
GoTo reprise
Else
GoTo suite
End If

suite:
Derlign = Range(col & 65000).End(xlUp).Row
'Derlign = Cells(65000, Col).End(xlUp).Row
Range(Cells(2, col), Cells(Derlign, col)).Select

For Each C In Selection
C.Value = Trim(C)
Next

Application.ScreenUpdating = True

End Sub
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @Quincy :) et tous les autres ;) ,

Cela peut dépendre de plein de chose et notamment du format de vos cellules et ce qui se trouve à l'intérieur (vrai nombre, nombre sous forme de texte, présence d'espaces ou non...)

Dans le fichier joint, sélectionner la zone colorée. puis faites Ctrl+H et remplacer tout (espace par rien). Les zones colorées affrichent des résultats différents.

Un échantillon de votre fichier me parait indispensable.
 

Pièces jointes

  • DAH02- remplacer- v1.xlsx
    9.7 KB · Affichages: 2
Dernière édition:

DAH02

XLDnaute Nouveau
Bonjour Quince, JHA, et Mapomme,

Merci à vous de vous pencher sur mon cas.

Je pouvais solutionner le problème en passant par une macro cellule par cellule mais le souci est que je peux parfois avoir un grand nombre de cellules à traiter (il m'est arrivé d'en avoir près de 5 millions) d'où le fait que je préférais utiliser une fonctionnalité Excel utilisable par VBA.

Jusque là j'utilisais :
ret = Cells.Replace(" ", "", xlPart) 'Qui est l'équivalent d'un Ctrl + H pour remplacer deux espaces consécutifs par rien
mais avec ce "bug" qui fait qu'une chaine de caractère numérique commençant par "0" et suivi d'espace fait que le zéro en début de chaine disparait ce n'est pas l'idéal. Car je ne veux supprimer que les doubles espaces...

Vous pouvez tenter sur votre Excel. Vous verrez que sur une cellule au format texte si l'on a une valeur "05 ", par exemple, alors un ctrl + H de " " remplacé par "" va supprimer les espaces... mais supprimera également le 0 en début de chaine alors que ce n'est pas du tout ce que l'on demande à la fonctionnalité. Le résultat sera alors "5" au lieu de "05 ". J'ai testé avec un Excel 2010 et également avec un Excel 365.
 

D.D.

XLDnaute Impliqué
Bonjour,

Quand j'ai ce problème, j'utilise Données / Convertir et (suivre les étapes suivantes).
  1. Je sélectionne la colonne en question.
  2. Données / Convertir qui m'ouvre une fenêtre et "suivant" pour passer à l'étape 2
  3. Je sélectionne "Espace" et décoche "Tabulation" et "suivant" pour passer à l'étape 3
  4. Je sélectionne la 1ère colonne et coche "Texte" et sélectionne la ou les autres colonnes et coche "Colonne non distribuée" puis "Terminer"
Voili voilà.
DD
 

Discussions similaires

Statistiques des forums

Discussions
314 611
Messages
2 111 147
Membres
111 051
dernier inscrit
MANUREVALAND