Erreur 1004 FormulaLocal

Résolu
Bonjour,

Je rencontre une erreur définie par l'application ou par l'objet lors du remplissage des lignes d'une nomenclature.
pour chaque ligne j'appelle un composant issu d'une base de donnée.
l'erreur se produit lors du calcul du prix de vente en fonction du prix d'achat (colonne H, info issue de la base de données).
le code :
.Range("I" & lgn).FormulaLocal = "=SI(H" & lgn & "<100;H" & lgn & "*2,5;SI(H" & lgn & "<250;H" & lgn & "*2;SI(H" & lgn & "<1500;H" & lgn & "*1,85;""consult us"")))"

Je doute que le problème vienne du code car le même fichier a été testé sur un autre PC et il fonctionne. Est ce que ce n'est pas un réglage dans Excel ou Visual basic qui fait bloquer?

Merci par avance pour votre aide.

6 réponses

  1. Contributeur
    Re,
    Pour que se soit opérationnel sur tout système...
     Dim Sep As Boolean
        Sep = Application.DecimalSeparator = ","
        'With Sheets("Feuille")
            '...
            If Sep Then
                .Range("I" & lgn).FormulaLocal = "=SI(H" & lgn & "<100;H" & lgn & "*2,5;SI(H" & lgn & "<250;H" & lgn & "*2;SI(H" & lgn & "<1500;H" & lgn & "*1,85;""consult us"")))"
            Else
                .Range("I" & lgn).FormulaLocal = Replace("=SI(H" & lgn & "<100;H" & lgn & "*2,5;SI(H" & lgn & "<250;H" & lgn & "*2;SI(H" & lgn & "<1500;H" & lgn & "*1,85;""consult us"")))", ",", ".")
            End If
            '.....

    A+

    1. Bonjour lermite,

      Tout juste ce qu'il lui faut, parce que jouer avec les parametres du PC risque de semer la zone.

      Bye
  2. Bonjour a vous

    Separateur de decimal: sur le PC qui marche surement une virgule, sur celui qui marche pas est surement un point. Si c'est le probleme, allez voir ceci pour resoudre:http://www.excelabo.net/excel/separateur_decimal

    A+
    1. Re,

      Soit vous mettez tous les PC avec le meme separateur (parametre regionnaux, format nombre) avec risques que certain(s) fichier(s) excel ne marche plus pour les PC que vous aurez modifies.

      Soit vous testez le separateur decimal par programme (post de moi-meme a 16:33) et vous ecrivez la formule en fonction.

      A+
      1. Contributeur
        Bonjour,
        Effectivement, la formule est valide.
        Sur le PC où ça fonctionne : tu à mis Option Explicit sur le haut du module ? si non, essaye avec cette option pour voir..
        Tu dis.
        +

        Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
        Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
        1. Merci pour ton retour
          l'option Explicit (ou déclaration des variables obligatoire) n'est pas cochée sur les 2 PC.
          J'ai essayé sur chaque PC avec l'option mais rien ne change...
        2. Bonjour,

          Essaye en remplaçant les virgules (sérarateur décimal) par des points.
          *2,5; modifié en *2.5;
          *1,85; modifié en *1.85;

          A+
      2. Merci Yoda,

        En mettant des points ça fonctionne!
        par contre ça marche avec l'autre PC avec des virgules... pourquoi pas sur le mien??
        Et sur l'autre PC ça ne marche pas avec les points à la place des virgules.
        un indice : quand je me mets dans une case Excel et que je frappe la touche "." (ou"suppr") de mon pavé numérique, ça me fait un point, alors que sur l'autre PC, ça fait une virgule... Est ce qu'il y a un paramètre Excel qui est responsable de ça?
        1. Dans le panneau Otions d'Excel, va dans l'onglet Internationnal.
          Dans l'encadré Gestion des nombres, tu peux définir le séparateur de décimales ou bien prendre les les paramètres du système (Panneau de configuration/Options régionales...)

          A+.
      3. Merci à tous!

        J'ai trouvé le problème, mes paramètres régionaux étaient "Français(Suisse)"... d'où le changement entre virgule et point. Maintenant tout fonctionne, désolé pour le dérangement, surtout que le problème (de base) ne concernait pas tout à fait cette section du forum...

        Merci pour les codes pour s'affranchir de ces paramètres, je vais voir pour les intégrer dans mes fichiers pour ne plus avoir de soucis.