comment enlever un espace dans une cellule pour retrouver le format nombre ?
14 réponses
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...
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
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
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$426a34cc@news.free.fr...
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...
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
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
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,
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
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
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
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