Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

comment enlever un espace dans une cellule pour retrouver le format nombre ?

14 réponses
Avatar
Nathalie et François
bonsoir à tous,
j'utilise le copier coller sur une page au format pdf pour le transferer sur
une feuille excel.
Seul souci: lors du coller il subsiste un espace derrière mon chiffre, je
m'explique à l'aide d'un exemple:
12.30espace
Ce qui fait que je ne peux pas modifier le format de ma cellule (reste au
format standard) ni utiliser CNUM.... et je suis obligé de reprendre toutes
les cellules pour supprimer l'espace !!! afin de pouvoir exploiter mes
données. et ça fait un paquet de cellules à modifier à chaque fois...

y-a-t-il une astuce car je sèche complètement ?

merci de votre aide,
François.G

4 réponses

1 2
Avatar
Tatanka
Salut François,

Chr(160) ( caractère 160 ) est une espace insécable.
Voir à cette adresse :
http://fr.wikipedia.org/wiki/Espace_ins%C3%A9cable

Dans la macro, les espaces insécables sont remplacées par « rien ».

Bonne fin de soirée,
Serge

"Nathalie et François" a écrit dans le message de news: 4cffeb63$0$29068$
Bonsoir Serge,

et bien cette fois on y est merci beaucoup, ça fonctionne impecablement bien.
une dernière question: à quoi sert le Chr(160) ??
cordialement,

François


Avatar
michdenis
Bonjour,

Ceci semble suffisant... testé avec Excel 2007

Tu adaptes le nom de la feuille et de la plage de cellules
'-------------------------------------
Sub fsaf()
With Worksheets("Feuil2")
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
.NumberFormat = "General"
.Replace Chr(160), ""
End With
End With
End Sub
'-------------------------------------

OU tu sélectionnes ta plage de cellule et tu appelles la macro suivante :
'-------------------------------------
Sub Test()
With Selection
.NumberFormat = "General"
.Replace Chr(160), ""
End With
End sub
'-------------------------------------

OU l'artilleries lourdes : Adapte le nom de la feuille et la plage de cellules.
'-------------------------------------
Sub Test()
Dim A As Variant
Application.EnableEvents = False
Application.ScreenUpdating = False
With Worksheets("Feuil2")
.Activate
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
.NumberFormat = "General"
.Replace Chr(160), ""
End With
.Range("IV65536") = 1
.Range("IV65536").Copy
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
.PasteSpecial xlPasteValues, xlPasteSpecialOperationMultiply
.Item(1, 1).Select
End With
.Range("IV65536") = ""
A = .UsedRange
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
'--------------------------------------

MichD
--------------------------------------------
"Nathalie et François" a écrit dans le message de groupe de discussion : 4cffc845$0$19712$

re-bonsoir,
toutes mes excuses ça fonctionne il n'y a plus qu'à convertir en nombre avec
CNUM( ) et ça marche (fonctionne!! ) si on pouvait en plus directement
convertir en nombre, ce serait parfait, en tout cas merci beaucoup de votre
aide, ça faisait un temps certain que je n'utilisais plus de VBa et je m'y
remets c'est fou le temps que l'on gagne...

encore merci
Avatar
Nathalie et François
là c'est sûr ça ne s'invente pas , j'avais bien repéré l'espace mais pour le
nommer et le faire disparaitre cela devient un métier.
dans tous les cas merci pour les explications et aussi pour le coup de main,
ça parrait tellement simple et facile pour toi et pourtant si hors de porté
pour moi...ce qui rassure c'est que j'ai une grande marge de progression,
encore une fois merci à tous,

François.G
Avatar
Nathalie et François
merci Michel,
la proposition avec la selection de plage me convient parfaitement, il n'y a
qu'une colonne qui m'interesse dans les tableaux que j'exploite, c'était
surtout le nombre de ligne à retraiter (sup des espaces )100 à 150 à chaque
fois avec tous les risque d'erreur que cela comportait.
merci encore,
Cordialement,
François.G
1 2