EXCEL: Nombre en format texte
NoSpe13
Messages postés
7
Statut
Membre
-
JR.jo Messages postés 1 Statut Membre -
JR.jo Messages postés 1 Statut Membre -
Bonjour,
Je reçois chaque jour des mails de données de serveurs desquels je dois retirer certaines données pour les inclure dans un tableau (qui contient pas mal de fonctions et de calculs, soit dis en passant) mais je reçois le tout en format TEXTE UNICODE...
Le soucis est que pour la capacité des disques j'ai reçu (format TXT) les chiffres "141 725" et "3 876" que je n'arrive pas a convertir en format nombre (je pense que l'espace entre les chiffres pose robleme)
J'ai essayé toutes les méthodes disponibles sur le site de Microsoft mais rien n'y fait...
Y a t'il un moyen pour que lors de l'importation dans Excel du fichier texte je puisse convertir ce format texte en format nombre?
A toute bonne fin je vous joins la fonction pour importer les données:
______________________________________________________________________________________
Sub Importation()
'
' Importation Macro
'
'Ouverture du rapport du serveur client
Workbooks.OpenText Filename:= _
"C:\Users\xxxxx.XXXXXX\Desktop\Test Check\Rapports\XXXX.txt" _
, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False _
, Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(Array(1, 1), _
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1)), _
TrailingMinusNumbers:=True
'Copie des donnees dans les "donnees serveur"
Cells.Select
Selection.Copy
Windows("Donnees.xltm").Activate
Sheets("XXXX").Select
Range("A1").Select
ActiveSheet.Paste
'Vider le presse papier pour éviter d'avoir a cliquer sur oui lors de l'execution
Application.CutCopyMode = False
'Fermeture du rapport
Windows("XXXX.txt").Activate
ActiveWorkbook.Close
Sheets("Initial").Select
End Sub
_________________________________________________________________________________________
Je vous remercie par avance de toute l'aide qui me sera fournie...
Je reçois chaque jour des mails de données de serveurs desquels je dois retirer certaines données pour les inclure dans un tableau (qui contient pas mal de fonctions et de calculs, soit dis en passant) mais je reçois le tout en format TEXTE UNICODE...
Le soucis est que pour la capacité des disques j'ai reçu (format TXT) les chiffres "141 725" et "3 876" que je n'arrive pas a convertir en format nombre (je pense que l'espace entre les chiffres pose robleme)
J'ai essayé toutes les méthodes disponibles sur le site de Microsoft mais rien n'y fait...
Y a t'il un moyen pour que lors de l'importation dans Excel du fichier texte je puisse convertir ce format texte en format nombre?
A toute bonne fin je vous joins la fonction pour importer les données:
______________________________________________________________________________________
Sub Importation()
'
' Importation Macro
'
'Ouverture du rapport du serveur client
Workbooks.OpenText Filename:= _
"C:\Users\xxxxx.XXXXXX\Desktop\Test Check\Rapports\XXXX.txt" _
, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False _
, Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(Array(1, 1), _
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1)), _
TrailingMinusNumbers:=True
'Copie des donnees dans les "donnees serveur"
Cells.Select
Selection.Copy
Windows("Donnees.xltm").Activate
Sheets("XXXX").Select
Range("A1").Select
ActiveSheet.Paste
'Vider le presse papier pour éviter d'avoir a cliquer sur oui lors de l'execution
Application.CutCopyMode = False
'Fermeture du rapport
Windows("XXXX.txt").Activate
ActiveWorkbook.Close
Sheets("Initial").Select
End Sub
_________________________________________________________________________________________
Je vous remercie par avance de toute l'aide qui me sera fournie...
A voir également:
- EXCEL: Nombre en format texte
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel moyenne - Guide
12 réponses
Salut, tes parameters regionaux sont bien mis pour avoir les nombres avec un espace comme separateur de milliers?
Format --> Cellules --> Nombres :-$
Je sais c'est la base mais je vois pas autrement désolé
Déjà tenté mais cela ne donne rien... Merci tout de même
Salut, tes parameters regionaux sont bien mis pour avoir les nombres avec un espace comme separateur de milliers?
Oui... Mais lors de la conversion j'obtiens #VALEUR!
Je sais c'est la base mais je vois pas autrement désolé
Déjà tenté mais cela ne donne rien... Merci tout de même
Salut, tes parameters regionaux sont bien mis pour avoir les nombres avec un espace comme separateur de milliers?
Oui... Mais lors de la conversion j'obtiens #VALEUR!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
si si...
Ajoute ce code après ton collé en mettant les noms et plages qui t'interessent (numeriques)
eric
PS : enlève le ; ajouté par ccm après A1:A5
Ajoute ce code après ton collé en mettant les noms et plages qui t'interessent (numeriques)
Dim c As Range For Each c In Workbooks("Classeur1.xls").Worksheets("Feuil1").Range("A1:A5") c.Value = Replace(c.Value, " ", "") * 1 Next c
eric
PS : enlève le ; ajouté par ccm après A1:A5
Hello,
Je viens de reprendre mon boulot sur ce programe et voici la correction
Dim c As Range
For Each c In Workbooks("Donnees Serveurs.xltm").Worksheets("AIMG").Range("A:U")
c.Value = Replace(c.Value, " ", "") * 1
Next c
Comme tu peux le constater je n'ai fait que de remplacer les valeurs et noms par ceux de mon classeur mais une fois que j'execute, j'obtiens l'erreur suivante:
Erreur d'execution 13
Incompatibilité de type
ceci en surlignant la ligne
c.Value = Replace(c.Value, " ", "") * 1
Merci de m'aider.
Je viens de reprendre mon boulot sur ce programe et voici la correction
Dim c As Range
For Each c In Workbooks("Donnees Serveurs.xltm").Worksheets("AIMG").Range("A:U")
c.Value = Replace(c.Value, " ", "") * 1
Next c
Comme tu peux le constater je n'ai fait que de remplacer les valeurs et noms par ceux de mon classeur mais une fois que j'execute, j'obtiens l'erreur suivante:
Erreur d'execution 13
Incompatibilité de type
ceci en surlignant la ligne
c.Value = Replace(c.Value, " ", "") * 1
Merci de m'aider.
Bonjour,
c'était écrit vite...
Essaie avec celui là plus détaillé :
Si tes données sont bien groupées, pour accélerer le traitement tu peux mettre :
For Each c In Workbooks("Donnees Serveurs.xltm").Worksheets("AIMG").Range("A1").CurrentRegion.Select
Si ça ne marche toujours pas il faudra déposer un extrait de ton fichier sur cijoint.fr et coller le lien ici. Ce que tu prends pour des espaces n'en sont peut être pas...
eric
c'était écrit vite...
Essaie avec celui là plus détaillé :
Dim c As Range Application.ScreenUpdating = False For Each c In Workbooks("Donnees Serveurs.xltm").Worksheets("AIMG").Range("A:U") If VarType(c.Value) = vbString Then c.Value = CDbl(Replace(c.Value, " ", "")) End If Next c Application.ScreenUpdating = True
Si tes données sont bien groupées, pour accélerer le traitement tu peux mettre :
For Each c In Workbooks("Donnees Serveurs.xltm").Worksheets("AIMG").Range("A1").CurrentRegion.Select
Si ça ne marche toujours pas il faudra déposer un extrait de ton fichier sur cijoint.fr et coller le lien ici. Ce que tu prends pour des espaces n'en sont peut être pas...
eric
Génial ton lien !
Il m'a permis de résoudre un problème sur lequel je me battais depuis 1/2H !
Ah, les espaces non sécables...
Il m'a permis de résoudre un problème sur lequel je me battais depuis 1/2H !
Ah, les espaces non sécables...
Je cherchais un moyen de remplacer les espaces des nombres (qui ne sont pas compris comme telle sous excel, et j'ai trouvé une solution simple ..
Mettre tous les nombres dans un document word (faire un ctrl flèches du bas pour avoir toutes la colonne ou ctrl flèche de gauche ou droite pour avoir toutes la ligne).
Contrôle C (ou copier Coller) sous word.
Faire Remplacer (contrôle F) mettre un espace dans rechercher. (Ne rien mette dans remplacer) faites enter, et voila.
Plus qu'a recopier sous excel et le tour est joué. (ctrl A pour tous sélectionner)
Mettre tous les nombres dans un document word (faire un ctrl flèches du bas pour avoir toutes la colonne ou ctrl flèche de gauche ou droite pour avoir toutes la ligne).
Contrôle C (ou copier Coller) sous word.
Faire Remplacer (contrôle F) mettre un espace dans rechercher. (Ne rien mette dans remplacer) faites enter, et voila.
Plus qu'a recopier sous excel et le tour est joué. (ctrl A pour tous sélectionner)
Une réponse un peu tardive. Mais le sujet remonte toujours sans réponse lors d'une recherche.
Voici une macro retrouvée sur le net qui m'a donné satisfaction :
'Macro à utiliser sur les cellules de nombres au format texte.
'Suppression des caractères parasites et transformation du format texte en nombre.
Sub Txt_Nbr()
For Each Cell In ActiveWindow.RangeSelection
With Cell
oldfmt = .NumberFormat
n$ = .Value
filt$ = ""
For i = 1 To Len(n$)
char$ = Mid(n$, i, 1)
Select Case char$
Case "A" To "Z", "a" To "z", 0 To 9, ",", "!", ".", "?"
filt$ = filt$ & char$
End Select
Next i
.NumberFormat = "@"
.Value = filt$
.NumberFormat = oldfmt
End With
If Cell <> "" Then
Cell.Value = CDbl(Cell.Value)
End If
Next Cell
End Sub
Voici une macro retrouvée sur le net qui m'a donné satisfaction :
'Macro à utiliser sur les cellules de nombres au format texte.
'Suppression des caractères parasites et transformation du format texte en nombre.
Sub Txt_Nbr()
For Each Cell In ActiveWindow.RangeSelection
With Cell
oldfmt = .NumberFormat
n$ = .Value
filt$ = ""
For i = 1 To Len(n$)
char$ = Mid(n$, i, 1)
Select Case char$
Case "A" To "Z", "a" To "z", 0 To 9, ",", "!", ".", "?"
filt$ = filt$ & char$
End Select
Next i
.NumberFormat = "@"
.Value = filt$
.NumberFormat = oldfmt
End With
If Cell <> "" Then
Cell.Value = CDbl(Cell.Value)
End If
Next Cell
End Sub
c'est là ou j'ai trouvé la solution a un prob pareil