[VBA] Conversion nombre stocké texte en chiffre

Résolu
Beurdge Messages postés 9 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 10 décembre 2008 - 2 déc. 2008 à 11:15
spirit33 Messages postés 26 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 24 juillet 2009 - 2 déc. 2008 à 16:14
Bonjour,

J'exécute une macro permettant de copier une ligne d'un fichier excel dans une autre. La ligne copiée correspond à des valeurs numériques mais en copiant les nombres sont stockés sous formes de texte. J'ai écrit une macro pour faire la conversion mais cela ne semble pas fonctionner. J'ai fait du pas à pas tout s'exécute correctement sauf qu'à la fin mes nombres sont encore au format texte

voici la macro :

    If (Application.ActiveSheet.Cells(i - 1, 1).Value <> var) Then
        Application.Worksheets("base").Range("A" & i & ":" & "Y" & i).Select
        ActiveSheet.Paste
        'J'ai mis un 1 dabs ube cellule et je fais un collage special avec multiplication comme indiqué dans l'aide excel
        Application.Worksheets("base").Range("A1").Select
        Selection.Copy
        Range("B" & i & ":" & "Z" & i).Select
        Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
        SkipBlanks:=False, Transpose:=False
        Application.Worksheets("base").Range("H" & i & ":" & "Z" & i).Select
        Selection.NumberFormat = "0.00%"
        Call MAJ_Feuille(i)
    Else
        MsgBox "Les valeurs ont déjà été intégrées au fichier", Buttons:=vbOKOnly, Title:="Erreur"
        On Error GoTo 0
    End If

est ce que qn aurait une idee pou resoudre ce problème?
Merci bien,
A voir également:

12 réponses

Beurdge Messages postés 9 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 10 décembre 2008
2 déc. 2008 à 16:12
Re Bonjour,

J'ai trouvé la solution, voila le code :

    If (Application.ActiveSheet.Cells(i - 1, 1).Value <> var) Then
        Application.Worksheets("base").Range("A" & i & ":" & "Y" & i).Select
        ActiveSheet.Paste
        Application.Worksheets("base").Range("B" & i & ":" & "Y" & i).Select
        For Each xCell In Selection
            xCell.Value = Replace(xCell.Value, ",", ".")
        Next xCell
        Call MAJ_Feuille(i)
   Then
          .....

En fait pour chaque cellule lue je remplace la virgule par un point sur toute ma selection et la valeur est considérée comme un nombre sans aucun arrondi.
Merci spirit33 de ton aide.
B.
3
Rejoignez-nous