Varibale dans Formule [Résolu/Fermé]

solidarinfo 140 Messages postés jeudi 26 mars 2009Date d'inscription 25 août 2017 Dernière intervention - 29 juil. 2016 à 11:17 - Dernière réponse :  Utilisateur anonyme
- 4 août 2016 à 20:10
Bonjour,
J'ai un peu fait le tour de la question dans le forum sans avoir reellement une réponse à mon problème, doc j'ouvre le sujet..

J'ai message d'erreur du type : Application-defined or object-defined error alors que je ne vosi pas d'ou peut provenir l'erreur, voici mon code


Dim FormuleBilan As String
FormuleBilan = "C:\Users\Solidarinfo\Desktop\TEST DSO MACRO\[Bilan" & " " & PeriodeN & " " & Annee & " " & "TEST.xls" & "]" & "Bilan" & " " & PeriodeN & " " & " " & Annee & " " & "TEST"

MsgBox FormuleBilan : j'ai vérifié que j'ai le bon chemin

Range("C14").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-2]," & "'" & FormuleBilan & "'" & "!C5:C11,7,0)"


Merci de votre aide, je bloque deouis 24h sur ce pb :(

Afficher la suite 

5 réponses

Utilisateur anonyme - 29 juil. 2016 à 12:41
0
Utile
4
Bonjour solidarinfo,

Pour ton chemin, plutôt que "C:\Users\Solidarinfo\Desktop\..."
ne serait-ce pas "C:\Users\Solidarinfo\Documents\..." ?
 
solidarinfo 140 Messages postés jeudi 26 mars 2009Date d'inscription 25 août 2017 Dernière intervention - 29 juil. 2016 à 12:49
Bonjour Albkan,

Merci de prendre le temps de répondre.

non, le nom du chemin est bien correcte.
Si je mets le chemin dans la formule ca fonctionne, mais quand je la déclare en variable j'ai le message d'erreur et cela ne fonctionne pas.
Utilisateur anonyme > solidarinfo 140 Messages postés jeudi 26 mars 2009Date d'inscription 25 août 2017 Dernière intervention - 29 juil. 2016 à 13:02
 
a) As-tu bien mis tout ton code dans une Sub() ?

b) Juste après MsgBox, il faut un caractère apostrophe ( ' ), pas un deux-points ( : )
    MsgBox FormuleBilan ' j'ai vérifié que j'ai le bon chemin

c) Donc ton dossier "TEST DSO MACRO" est bien sur le Bureau,
    et pas dans le dossier Documents ? Et c'est bien DSO ?

d) Ton crochet gauche, juste avant le mot "Bilan" me paraît
    mal placé. Ne serait-ce pas plutôt :

FormuleBilan = "[C:\Users\Solidarinfo\Desktop\TEST DSO MACRO\Bilan" & " " & PeriodeN & " " & Annee & " " & "TEST.xls" & "]" & "Bilan" & " " & PeriodeN & " " & " " & Annee & " " & "TEST"

e) De plus, ton crochet droit et Bilan peuvent être mis plus « directement » ;
    de même l'espace entre Annee et TEST ; et n'y aurait-il pas un seul espace
    entre le 2ème PeriodeN et Annee ?

FormuleBilan = "[C:\Users\Solidarinfo\Desktop\TEST DSO MACRO\Bilan " & PeriodeN & " " & Annee & " TEST.xls]Bilan " & PeriodeN & " " & Annee & " TEST"
 
solidarinfo > Utilisateur anonyme - 4 août 2016 à 15:19
Bonjour Albkan,

a - Oui
b - Je m'ai mis pour expliquer ici mais pas dans le code
c- Oui
d- C'est le nom complet du chemin d'aprés Windows
e- Non il y a bien un espace à chaque fois, en enlevant les espaces c'est mal écrit, j'ai vérifié à l'aide d'un msgbox
f- J'ai testé ce que tu as proposé mais cela ne fonctionne pas, c'est le même problème..

Merci de ton aide qd mm
Utilisateur anonyme > solidarinfo - 4 août 2016 à 20:10
Bonsoir solidarinfo,

Pour mon d) je me suis effectivement trompé : le crochet gauche n'est pas devant
le nom du chemin mais devant le nom du classeur ; il était donc bien positionné
au départ.

Pour mon e), je suis sûr que ma simplification des espaces isolés est bonne, mais
je crois que tu as mal placé le 1er apostrophe ; donc ça donne :

FormuleBilan = "C:\Users\Solidarinfo\Desktop\TEST DSO MACRO\[Bilan " & PeriodeN & " " & Annee & " TEST.xls]'Bilan " & PeriodeN & " " & Annee & " TEST'!"

Remarque bien que le 1er apostrophe est après le crochet droit « ] » et avant
le « B » de Bilan ; de plus j'ai mis à la fin le 2ème apostrophe et aussi « ! ».

Tu devrais alors pouvoir remplacer :


Range("C14").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-2]," & "'" & FormuleBilan & "'" & "!C5:C11,7,0)"

par ceci :


Range("C14").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-2]," & FormuleBilan & "C5:C11,7,0)"

Si ton problème est réglé, merci d'aller en haut de page
pour marquer le sujet comme résolu.

===================================

Si ça ne marche toujours pas :

a) Es-tu sûr que c'est PeriodeN et pas PériodeN
b) Es-tu sûr que c'est AnneeN et pas AnnéeN

Comme ton code initial ne contient pas de « Option Explicit », tu as peut-être créé
de nouvelles variables vides sans t'en rendre compte ? Note qu'avec cette option,
la compilation butera sur des variables non déclarées !

-------------------------------------------------------------

c) Seule autre solution que je vois pour l'instant, bien vérifier le contenu des
variables PeriodeN et AnneeN.

À partir du nom du classeur, peux-tu me donner un exemple concret
du nom entier que tu attends, sans aucune variable ? Exemple :

"[Bilan Août 2016 TEST.xls]Bilan Août 2016 TEST"

-------------------------------------------------------------

Cordialement.  😊