espaces devant un nombre

J

Jerome

Guest
Bonjour,

Est-il possible de supprimer auitomatiquement des espaces (un dizaine) présents devant un nombre.

Dans une colonne, j'ai plus de 10 000 lignes avec ces espaces et malgré plusieurs tentatives (chgt attribut de cellule, ...) je n'ai pas trouvé de solution.

Merci.
 
J

Jerome

Guest
Merci pour votre aide cela fonctionne effectivement sur un exemple que je viens de créer avec des (vrai !) espaces. Par contre, pour mon fichier d'origine, bien que cela ressemble à des espaces (vide), cela doit être d'autre caractères acsci car cela ne fonctionne pas (ok uniquement si j'efface cette zone à la main et que je la remplace par des espaces).
 

2passage

XLDnaute Impliqué
Bonjour,

voici en vitesse une macro pour épurer les nombres : ca supprime tous les caractères non numériques sauf le . et la , en les transformant en séparateur décimal (virgule).attention, s'il y a . ET , ca doit planter

Code:
Sub nettoyage()
Dim tmpstr, can As String
tmpstr = ''
can = ''
For Each Cellule In ActiveWindow.RangeSelection.Cells
    can = Cellule.Value
    For i = 1 To Len(can)
        If IsNumeric(Mid(can, i, 1)) = True Then
            tmpstr = tmpstr + Mid(can, i, 1)
        ElseIf Mid(can, i, 1) = '.' Or Mid(can, i, 1) = ',' Then
            tmpstr = tmpstr + ','
        End If
    Next i
If tmpstr <> '' Then Cellule.Value = CDbl(tmpstr)
tmpstr = ''
Next
End Sub

A+

PS : traite toute la plage de cellule selectionnée

Message édité par: 2passage, à: 19/07/2005 13:25
 

Gael

XLDnaute Barbatruc
Bonjour Jérome, 2Passage, Pascal,

Il y a dans XL une fonction EPURAGE que je n'ai jamais essayé et qui permet de supprimer des caractères de contrôle.

Sinon, avec la fonction CODE qui renvoie le code ASCII du premier caractère de la cellule puis substitue, ça devrait marcher.

@+

Gael
 

ChristianM

XLDnaute Nouveau
Bonjour,
personnellement j'ai souvent ce genre de problème et j'utilise tout simplement le copier-coller associé au remplacer.
Dans la fenêtre où apparait ton texte, tu sélectionne les caractères avant le nombre et tu fais un copier, puis tu utilise 'remplacer' en faisant un coller puis remplacer par '' (comme indiqué plus haut). L'avantge du copier coller est que tu prends les carractères tels qu'ils sont.
Si toutes tes cellules ont le même nombre de caractères, du peux aussi utiliser la fonction GAUCHE ou STXT ou DROITE.
bon courage
 

ChristianM

XLDnaute Nouveau
Bonjour,
personnellement j'ai souvent ce genre de problème et j'utilise tout simplement le copier-coller associé au remplacer.
Dans la fenêtre où apparait ton texte, tu sélectionne les caractères avant le nombre et tu fais un copier, puis tu utilise 'remplacer' en faisant un coller puis remplacer par '' (comme indiqué plus haut). L'avantge du copier coller est que tu prends les carractères tels qu'ils sont.
Si toutes tes cellules ont le même nombre de caractères, du peux aussi utiliser la fonction GAUCHE ou STXT ou DROITE.
bon courage
 

2passage

XLDnaute Impliqué
Bonjour et Re,

Ca me revient : ne serait ce pas encore ce vilain ALT + 0160.. l'espace insécable... il est pénible celui là...

Donc ... CTRL + H dans la case remplacer taper 0160 en maintenant ALT enfoncé... remplacer tout.. et ça devrait marcher....

A+
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour le Fil

La même chose en VBA

Sub Leon()
Cells.Replace What:=Chr(160), Replacement:='', LookAt:=xlPart
End Sub


Sinon pour les espaces dit 'normaux' on peut aussi faire

Sub Leon()
Dim Cell As Range

For Each Cell In ActiveSheet.UsedRange
Cell = Trim(Cell)
Next


End Sub

Bon Aprèm
@+Thierry
 

Discussions similaires

Statistiques des forums

Discussions
312 330
Messages
2 087 351
Membres
103 526
dernier inscrit
HEC