Erreur 1004 FormulaLocal

Résolu/Fermé
alexischav Messages postés 4 Date d'inscription mardi 2 avril 2013 Statut Membre Dernière intervention 2 avril 2013 - 2 avril 2013 à 10:19
alexischav Messages postés 4 Date d'inscription mardi 2 avril 2013 Statut Membre Dernière intervention 2 avril 2013 - 2 avril 2013 à 17:55
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

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
2 avril 2013 à 17:36
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+

2
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 2/04/2013 à 17:46
Bonjour lermite,

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

Bye
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
2 avril 2013 à 16:33
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
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
2 avril 2013 à 17:23
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
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 2/04/2013 à 14:41
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 .
0
alexischav Messages postés 4 Date d'inscription mardi 2 avril 2013 Statut Membre Dernière intervention 2 avril 2013
2 avril 2013 à 15:19
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...
0
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+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
alexischav Messages postés 4 Date d'inscription mardi 2 avril 2013 Statut Membre Dernière intervention 2 avril 2013
2 avril 2013 à 17:10
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?
0
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+.
0
alexischav Messages postés 4 Date d'inscription mardi 2 avril 2013 Statut Membre Dernière intervention 2 avril 2013
2 avril 2013 à 17:55
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.
0