VBA : caractère espace "bizarre" à remplacer par rien

C@thy

XLDnaute Barbatruc
Bonjour le forum,

je récupère des données depuis un fichier txt
et je voudrais transformer les nombres en ... nombres,
donc, je dois supprimer les espaces

Quand je fais rechercher espace remplacer par rien ça ne marche pas,
mais quand je copie le caractère qui semble être un espace dans la zone rechercher et que je remplace par rien, j'ai bien du numérique.

J'ai fait un enregistrement automatique de macro pour effectuer ce remplacement, mais il me prend un espace, ce qui ne marche pas.
le code du caractère bizarre est 160.

Comment créer une macro qui remplace ce caractère par rien (ou qui transforme les nombres texte en nonbres chiffres)?

Un très grand MERCI à vous, je joins mon fichier

Bises

C@thy
 

Pièces jointes

  • Copie de SATELIT.xls
    60 KB · Affichages: 97
Dernière édition:

C@thy

XLDnaute Barbatruc
Re : VBA : caractère espace "bizarre" à remplacer par rien

j'ai essayé ceci :
Range("D2:I25").Select
For Each o In Selection
o.Replace What:=Chr(160), Replacement:="", LookAt:=xlPart
Next

les "espaces" sont supprimés mais le nombre n'est pas un nombre:confused:

C@thy
 

Victor21

XLDnaute Barbatruc
Re : VBA : caractère espace "bizarre" à remplacer par rien

Bonjour, C@thy :)

Chez moi, les espaces sont bien supprimés.
Le problème ne viendrait-il pas plutôt de ton séparateur décimal ?
Remplace dans ce cas les virgules par des points :)
 

C@thy

XLDnaute Barbatruc
Re : VBA : caractère espace "bizarre" à remplacer par rien

Screugneugneu,

y'a rien qui marche

Code:
Range("D2:I25").Select
    For Each o In Selection
o.Value = Trim(Substitute(o, CHAR(160), """")) * 1
Next

tout ce que j'essaie fonctionne au niveau du remplacement, mais j'ai toujours du texte!
Damned!:mad:

Biz

C@thy
 

C@thy

XLDnaute Barbatruc
Re : VBA : caractère espace "bizarre" à remplacer par rien

Après moulte recherches, j'ai fini par trouver que ce caractère est un espace insécable
mais le schmilblick n'a pas avancé pour autant :

mon souci est le suivant :
le rechercher remplacer fonctionne à la main si je copie le caractère en question dans la zone rechercher et que je fais remplacer par rien,
j'obtiens bien un nombre (je veux par la suite faire des sommes avec ces nombres)

mais j'ai de nombreuses feuilles (je n'en ai mis que deux) à structure totalement identique,
donc le but, c'est vraiment de faire ça par macro... :(

C@thy
 

pijaku

XLDnaute Occasionnel
Re : VBA : caractère espace "bizarre" à remplacer par rien

Bonjour,

Peut être en trnasformant, après suppression de l'espace, ton "truc" en nombre...
Code:
Dim Rng As Range
For Each Rng In Range("D2:I25")
     Rng.Replace What:=Chr(160), Replacement:="", LookAt:=xlPart
     Rng.Value = CDbl(Rng.Value) 'Ou CInt() pour un entier ou même Val() pourquoi pas...
Next
 

supercrapaud

XLDnaute Occasionnel
Re : VBA : caractère espace "bizarre" à remplacer par rien

re

donc si le fait de remplacer à la main marche pour un onglet, il te suffit de sélectionner tous les onglets où tu souhaites le faire et faire Remplacer. Ca devrait tout virer en une fois sur tous les onglets choisis.
 

dudule

XLDnaute Nouveau
Re : VBA : caractère espace "bizarre" à remplacer par rien

Bonjour à tous,

Je pense qu'un truc comme ça devrait marcher (je vous previens c'est moche...).

Code:
Sub Macro1()

Application.ScreenUpdating = False
nbre = ThisWorkbook.Sheets.Count

For i = 1 To nbre 'boucle sur toutes les feuilles
Sheets(i).Activate
    Range("D2:I25").Select
    Selection.Replace What:=Chr(160), Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False 'on remplace la caractere
    Selection.NumberFormat = "#,##0"  'on met le format
Next i

Application.ScreenUpdating = True

'c'est moche mais ça doit marcher...
End Sub

A+ :)
 

Discussions similaires

Statistiques des forums

Discussions
312 393
Messages
2 088 014
Membres
103 699
dernier inscrit
samSam31