Convertir colonne nombre stockés sous format texte

Bonsoir,

Jai un fichier excel qui extrait automatiquement les nombres d une base de donnée et stock sous format texte. J'aimerais que les nombres soient transformés en format nombre.

Mon fichier a minimum 10 000 lignes qui sont extraitent a chaque fois et qui doivent être converties. Jai mis dans le fichier un code qui transforme la colonne en format nombre a l ouverture du fichier. Cependant, le fichier rame énormément.

Est ce que vous pouvez m aider s il vous plait. Voici le code que j utilise:

Private Sub Workbook_Open()

ActiveWorkbook.RefreshAll

Feuil38.Select

Columns("H:H").Select

Selection.TextToColumns Destination:=Range( _

"Query1[[#Headers],[WORK_ORDER_ID]]"), DataType:=xlDelimited, TextQualifier _

:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:= _

False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1) _

, TrailingMinusNumbers:=True

ActiveWindow.ScrollWorkbookTabs Sheets:=-1

ActiveWindow.ScrollWorkbookTabs Sheets:=-1

ActiveWindow.ScrollWorkbookTabs Sheets:=-1

End Sub

Bonjour chrispo le forum

tu nous mets un bout de ton fichier à convertir et tu nous donnes les colonnes que tu souhaites convertir, car vu ce que tu as donné tu n'aurais qu'une seule colonne la H, tu nous mets toutes les explications dans le fichier dans un pavé texte ou dans une feuille explication

à te relire

Papou

Bonjour

Mon fichier extrait les données automatiquement d'une base de donnée d'un logiciel grace a un code SQL. Donc il m'est pas possible de joindre une version exacte de mon fichier.

Je joint cependant un exemple de fichier avec le code VBA que j'ai rediger grace a l'enregistreur de macro, mais qui est tres lents l'orsqu'il s'agit de convertir plus de 10 000 lignes.

Jai besoin d'aide afin d'optimiser ce code ou de trouver un autre code plus rapide svp. Merci beaucoup.

Voici le nouveau code avec le fichier joint:

Private Sub Workbook_Open()

Feuil1.Select

Columns("A:A").Select

Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _

TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _

Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _

:=Array(1, 1), TrailingMinusNumbers:=True

Range("C1").Select

End Sub

Bonjour chrispo le forum

je te demande un bout de fichier mais avec les nombres à convertir pas déjà converti !!!

et une liste de au minimum 1000 lignes

a+

papou

Bonjour,

En supposant que le séparateur décimal est bon et qu'il s'agit juste d'un problème de format, je propose le code suivant:

Private Sub Workbook_Open()

Dim i As Long

With Sheets("Feuil1")
    For i = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
        .Cells(i, 1) = CSng(.Cells(i, 1))
    Next i
End With

End Sub

Merci Pedro

Mais le code me donne une erreur d execution de type 13: Incompatibilité de type

Je ne sais pas à quoi ressemblent tes données non transformées. Si la données n'est pas convertible en nombre décimal, la macro va générer une erreur.

Oui exactement, les données ne sont pas convertible en nombre décimale. Les données ressemblent a ceci, stocké sous format texte après extraction automatisé dans le logiciel.

35689

35691

35688

35690

35692

35697

35693

35694

35695

35696

35699

35701

35702

Oui exactement, les données ne sont pas convertible en nombre décimale. Les données ressemblent a ceci, stocké sous format texte après extraction automatisé dans le logiciel.

35689

35691

35688

35690

35692

35697

35693

35694

35695

35696

35699

35701

35702

C'est inexacte, un nombre entier peux être stocké sans altération dans un nombre décimal (exemple : 35689.00), l'inverse n'étant pas vrai.

Essaie avec :

Private Sub Workbook_Open()

Dim i As Long

With Sheets("Feuil1")
    For i = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
        If .Cells(i, 1) Like "#*#" Then 
            .Cells(i, 1) = CSng(.Cells(i, 1))
        Else: MsgBox "La donnée en cellule A" & i & "ne peut être convertie !"
        End If
    Next i
End With

End Sub

Ma question est : la macro plante-t-elle dès la première cellule ou butte-t-elle sur une cellule au contenu spécifique ?

Merci pour ton aide Pedro,

Ta macro marche bien, dans le fichier que j'ai joint. Mais ca ne marche pas avec mon fichier original. Je ne peux pas vraiment dire pourquoi.

Sinon jai trouver une autre solution qui est de multiplier la colonne avec les nombre sous format texte par 1 dans une deuxieme colonne. J'utilise la deuxieme colonne. Ainsi je n'ai plus besoin de macro pour la conversion.

Bonjour à tous, le forum

la question reste : Pourquoi tu ne passes pas ton fichier avec tes données non converties???

Trop compliqué de faire un fichier ?????

a+

Papou

Rechercher des sujets similaires à "convertir colonne nombre stockes format texte"