Fonction convertir dans Excel

Fermé
cpa6675 Messages postés 2 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 21 novembre 2008 - 28 août 2008 à 14:39
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 3 sept. 2008 à 13:25
Bonjour,


J'ai exporté des données d'un logiciel sous excel afin de pouvoir mieux les exploiter.

Une fois exportées sous excel, ces données apparaissent sous le format suivant "11.222,33" et ne sont pas reconnues comme des données numériques par excel (quand je sélectionne 2 cellules contenant des données, j'ai le résultat suivant tout en bas dans la "barre d'état" d'excel : somme=0).

Pour y remédier, j'ai décidé d'utiliser la fonction convertir que l'on trouve dans le menu données d'excel, ce qui résout effectivement mon problème.

Le problème maintenant est que cette fonction convertir ne peut être appliquée que sur une colonne à la fois et que mon tableau en contient 6.

J'ai donc décidé de passer par VBA :

Sub Essai()
'
' Essai Macro
' Macro enregistrée le 28/08/2008 par
'

'For Ctr=3 To 8
Columns(&Ctr":"&Ctr).Select

ActiveWindow.SmallScroll ToRight:=-2
Selection.TextToColumns Destination:=Range("C4"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, OtherChar _
:="¤", FieldInfo:=Array(1, 1), ThousandsSeparator:=".", _
TrailingMinusNumbers:=True
End Sub

Il y a visiblement un problème au niveau de la variable Ctr (ou de la syntaxe).

Quelqu'un pourrait-il m'aider ? Merci par avance (je ne suis pas opposé à une autre solution que celle de VBA).
A voir également:

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
28 août 2008 à 16:43
Bonjour,

cette macro convertit tes textes de ce format 11.222,33 et autres en nombres et ignore les autres( attention il faut toujours 2 décimales!)

Tu as intérêt à délimiter ta zone d'action (dans la démo: C1:G100)

Sub convertir()
Dim cellule As Range
Application.ScreenUpdating = False
For Each cellule In Range("C1:G100")
    If cellule Like "##[.]###[,]##" Then
        With cellule
            .Replace ".", ""
            .Value = CDec(cellule)
        End With
    End If
Next cellule
End Sub
-1
Merci pour ta réponse.

J'ai testé en prenant soin de modifier la plage de cellules, mais rien ne se passe (formats inchangés et chiffres toujours pas exploitables en tant que valeurs numériques).
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
3 sept. 2008 à 13:25
chez moi, ca marche sinon je ne t'aurais pas répondu
-1