Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

problème de formule dans une macro

J

Jare

Guest
Bonjour à tous,

Quelqu'un peut il me dire ce qui cloche a mon code !

For i = 2 To Range("a1").CurrentRegion.Rows.Count
Cells(i, 5).FormulaR1C1 = IIf(Cells(i, 1).Value <> "", Cells(i, 5).FormulaR1C1 = "=RC[1]/0.75)", "")
Next

je veut obtenir la valeur de l'operation, mais j'obtient le texte "FAUX" à la place !!

d'avance merci.

Jare
 
V

Vériland

Guest
Salut Jare,

c'est vrai qu'avec ta formule on obtient "FAUX"...

mais la réponse de STéphane donnée auparavant sur le post (Quelqu'un peut il me dire ce qui cloche à mon code !) donne bien le résultat attendu...

-------------------------------------------------------------------------------------------
Auteur: STéphane (195.101.57.---)
Date: 13-12-02 14:07

For i = 2 To Range("a1").CurrentRegion.Rows.Count
Cells(i, 5).FormulaR1C1 = IIf(Cells(i, 1).Text <> 0, "=RC[1]/0.75", "")
Next
-------------------------------------------------------------------------------------------

ça ne marche pas chez toi ?

A+ Vériland
 
J

Jare

Guest
Salut Vériland

Merci d'avoir répondu mais effectivement ca ne marche pas !!!!

j'ai le message d'erreur suivant:

ERREUR D'EXECUTION 1004
ERREUR DEFINIE PAR L'APPLICATION OU PAR L'OBJET

as tu une explication ?

A+, Jare
 
V

Vériland

Guest
Re Jare,

Bon moi j'ai essayé simplement avec cette formule...

Sub formule()
For i = 2 To Range("a1").CurrentRegion.Rows.Count
Cells(i, 5).FormulaR1C1 = IIf(Cells(i, 1).Text <> 0, "=RC[1]/0.75", "")
Next
End Sub

ton message d'erreur signifie qu'il y a un autre problème dans ta macro...certainement un objet qui n'est pas déclaré...peut être un "DIM" manquant...donne-nous éventuellement la macro complète pour qu'on puisse te venir en aide...

A+ Vériland
 
J

Jare

Guest
Salut Vériland

Voila le fichier (je l'ai minimisé en supprimant les autres feuilles et modules), j'ai aussi fait un essai en copiant la feuille et la macro dans un nouveau classeur et sur celui ci ca marche !!! pourquoi !!! mystère.

Si tu peux me resoudre se probleme ca serait sympa de ta part, et je voudrais surtout savoir le pourquoi et le comment.

d'avance merci.
 

Pièces jointes

  • PourVeriland.zip
    15.9 KB · Affichages: 34
V

Vériland

Guest
Re Jare,

Excuse pour le temps passé, mais j'ai regardé le fichier dans tous les sens...j'ai fait les vérifications d'usage...VBA...formule...feuille...bouton...rien de particulier...partant du principe qu'il n'y avait pas d'erreur apparante, j'ai carrément refait ton programme sur un nouveau fichier...et maintenant ça marche (!!??!!)

Je ne saurais pas t'expliquer clairement ce qu'il y avait...la seule chose que j'ai pu constater c'est la différence après enregistrement, de la taille du fichier XLS (même contenu)...

ton fichier XLS ----> 52 Ko
mon fichier XLS ---> 48,5 Ko (!!??!!)

J'en déduis qu'il y avait quelque chose de "caché"...mais quoi ?...Mystère...

P'têt que quelqu'un d'autre saura !!!

Bon ben sur ce Bonne nuit

A+ Vériland
 

Pièces jointes

  • PourJare.xls
    48.5 KB · Affichages: 103
T

Ti

Guest
En fait, normalement une formule introduite par VBA l'est en anglais par défaut. C'est pourquoi on écrit

"=RC[1]/0.75" où RC signifie Row Column et le point est le séparateur décimal

et ça marche bien dans un fichier "ordinaire".
mais pour une raison que je ne m'explique pas, ton fichier n'accepte que les formules locales, donc traduites en Français, comme ça :

"=LC(1)/0,75"

Pourquoi ? ça dépend probablement de la version Excel utilisée pour créer ton fichier. Mais quel est le facteur déterminant, mystère. En tout cas ta macro peut fonctionner dans ton fichier, si tu la modifies ainsi :

Sub NouvelleCompo2()
Dim Ligne As Long
For Ligne = 2 To Range("A1").CurrentRegion.Rows.Count
Cells(Ligne, 5).FormulaR1C1Local = IIf(Cells(Ligne, 1).Value <> 0, _
"=LC(1)/0,75", "")
Next Ligne

End Sub

tu remarqueras que j'ai utilisé FormulaR1C1Local parce que maintenant, si tu copies cette même procédure dans un autre fichier en utilisant FormulaR1C1, tu auras une erreur, mais une erreur "logique" cette fois-ci.
 
V

Vériland

Guest
Bonjour Ti, Jare et le Forum,

Ah ben voilà qui explique certainement cela...Merci Ti pour ton intervention et tes explications...;-)...Maintenant y'a plus qu'à essayer sur ton Excel Jare...chez moi les deux fonctionnent...

A+ Vériland
 
J

Jare

Guest
Salut le forum,

Merci à Ti et Vériland pour leur tenacité à essayer de résoudre un problème assez mystérieux, maintenant que Ti en parle, effectivement le fichier a été créé au départ avec Excel95 ce n'est que depuis peu que je suis sur Excel2000 !!.

Merci encore, bon dimanche

A+ Jare
 

Discussions similaires

Réponses
4
Affichages
354
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…