Signaler

Varibale dans Formule [Résolu]

Posez votre question solidarinfo 137Messages postés jeudi 26 mars 2009Date d'inscription 23 avril 2017 Dernière intervention - Dernière réponse le 4 août 2016 à 20:10 par albkan
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 
Utile
+0
plus moins
Bonjour solidarinfo,

Pour ton chemin, plutôt que "C:\Users\Solidarinfo\Desktop\..."
ne serait-ce pas "C:\Users\Solidarinfo\Documents\..." ?
 
solidarinfo 137Messages postés jeudi 26 mars 2009Date d'inscription 23 avril 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.
Répondre
albkan 2272Messages postés samedi 26 mars 2016Date d'inscription 18 janvier 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"
 
Répondre
solidarinfo- 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
Répondre
albkan 2272Messages postés samedi 26 mars 2016Date d'inscription 18 janvier 2017 Dernière intervention - 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.  😊
 
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !