Fonction convertir dans Excel
cpa6675
Messages postés
2
Statut
Membre
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
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).
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).
Configuration: Windows XP Internet Explorer 7.0
2 réponses
-
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 -
chez moi, ca marche sinon je ne t'aurais pas répondu