VBA Excel - String en Integer

Résolu
Bonjour,

J'ai de nombreuses colonnes et beaucoup plus de lignes, contenant des nombres (créés par une station météo), mais qu'Excel ne perçoit pas comme tels, mais plutôt comme des chaînes de caractères.

Les nombres sont au format "256.400" (par exemple).

Je voudrais en fait transformer ces nombres en décimaux. J'ai essayé de transformer les points en virgule dans chaque cellule, mais cela me décale de 3 la virgule vers la droite (puisqu'en fait à partir du moment où je retire le point en VBA, Excel reconnait la chaîne comme un entier, et considère que la virgule se place à la fin du nombre).

Exemple de ma demande : à partir de "256.400", je désirerais obtenir "256,00".

Merci beaucoup à ceux qui pourront m'aider !
NB : je suis sous Excel 2007
--

Cochez "Problème résolu" au début de la discussion lorsque votre problème est résolu ! Merci ;)<code><gras>

8 réponses

  1. Contributeur
    Pour valider plusieur lignes et colonnes...
    Sub EnDbl()
    Dim Col As Integer
    Dim Lig As Long, LigDep As Long, LigFin As Long
        LigDep = 3 'la ligne où commencer
        LigFin = 10 'la ligne où finir
        For Lig = LigDep To LigFin
            For Col = 2 To 68
               Cells(Lig, Col) = CDbl(Replace(Cells(Lig, Col), ".", ","))
            Next Col
        Next Lig
    End Sub

    A+
    Bonjour "le père", j'ai dis 'je pense' ça n'est pas toujours le cas mais il arrive qu'avec des valeurs importées il n'est possible de les transformer qu'avec la méthode que j'ai suggérer.
    A+
    1. En effet, mon titre porte à confusion. Ce que je voulais dire, c'est plutôt obtenir un String en double.

      Et en plus je me suis trompé dans ma question... A partir de "256.400", je voudrais obtenir "256,40".

      Veuillez m'excuser :/
      1. J'ai répondu un peu tard... donc ça n'était pas 256,00 que tu voulais obtenir ? pas un entier comme ton titre le disait ?
        1. Je ne pense pas que la solution de "le père"" fonctionnera
          grrr ! (forcément ;) )
          J'avais testé avant de poster
          Je suis sûr que celle de lermite222 ne fonctionnera pas. Carrotte77 a écrit qu'il désirait obtenir "256,00" à partir de "256.400" . Avec cette méthose, on va plutôt obtenir "256,4"
          1. Merci pour vos réponses.
            La réponse de lermitte222 me semble plus appropriée, mais comment faire pour parcourir toutes les cellules de la colonne B à BO (donc 66 colonnes en tout) ?
            1. Contributeur
              Bonjour,
              Je ne pense pas que la solution de "le père"" fonctionnera.
              Sinon...
                  Range("B5") = CDbl(Replace(Range("B5"), ".", ","))

              A+
              1. Bonjour
                Fix(Val(variablechaine))
                Fix ou Round selon l'effet recherché (nombre tronqué ou arrondi)
                Pour afficher le ",00" sans passer au type chaîne, il faut mettre le format de ta cellule en numérique avec 2 chiffres