none
ActiveCell.FormulaR1C1 = "=RC5/100*" & v : bug si v= nb décimal RRS feed

  • Question

  • le code suivant fonctionne bien quand les cellules sont des nombres entiers mais "erreur 1004" quand la cellule a une valeur décimale (20,153 avec une virgule) ; l'objet cellule prend une valeur 20.153 avec un point !

    comment contourner ce problème sans arrondir les chiffres bien sûr ?

    merci de votre aide

    Sub formule_indexation_tarif()
       
        Dim plage As Range
        Dim cellule As Object
    '    Dim v As ???
               
        Set plage = Application.InputBox("Sélectionnez une plage", Type:=8)
        For Each cellule In plage
            If IsNumeric(cellule) Then
                cellule.Select
                v = CDec(cellule)
                ActiveCell.FormulaR1C1 = "=RC5/100*" & v    '
            End If
        Next
    End Sub

    mercredi 10 février 2016 09:32

Toutes les réponses

  • Bonjour,

    Je ne reproduis pas ton erreur. Sur quelle ligne se produit-elle ?

    Cordialement.

    Daniel

    mercredi 10 février 2016 10:22
  • Bonjour,

    Dans votre fonction cDec vous devez tenir compte des spécifications locales du caractère de séparation des décimales.

    Si le fichier excel ne respecte pas ces spécifications, alors il faut fournit un objet CultureInfo avec le caractère utilisé.

    Par exemple: (en c#, vous trouverez l'équivalent en vb)
    l_CultureFR.NumberFormat = new NumberFormatInfo();                  l_CultureFR.NumberFormat.NumberDecimalSeparator = l_TxtVal.Contains('.') ? "." : ",";

    Cordialement
    Gérard

    mercredi 10 février 2016 11:14
  • bonjour

    le problème vient que "formulaR1C1" renvoie une valeur décimale avec un point alors que la variable V la décimale est avec une virgule !

    comment contournez ce pbl ?

    j'ai beau convertir V dans tous les formats, ça ne prend pas !

    peut-on remplacer la virgule dans V par un point ? code pour cela ?

    Est-ce un problème de paramétrage de mon Excel ?

    merci de ton aide

    jeudi 11 février 2016 08:53
  • Bonjour,

    Je ne reproduis toujours pas l'erreur. les variables VBA utilisent le "." comme séparateu décimal, mais celui-ci adopte celui d'Excel quand il est copié dans une cellule. Par exemple, v = 20.135 dans le code, maiss la cellule contient bien le résultat de la formule avec une ",". A moins que ce soit une question de version ?

    Est-ce que tu pourrais mettre un lien OneDrive (ou autre) vers un classeur exemple ?

    Daniel

    jeudi 11 février 2016 15:37