[résolu]erreur de compilation, variable non définie

charette63

XLDnaute Occasionnel
bonsoir le forum,

c'est encore moi, la dernière macro reçue de Dranreb (que je remercie encore au passage) fonctionne très bien.... sur le formulaire "test" que j'ai crée pour mes... euh...tests

macro permettant la copie d'une valeur d'une cellule se trouvant dans un autre classeur, avec l'adresse du classeur source "modifiable" suivant la valeur d'une autre cellule de ce classeur

Code :
Code:
Feuil1.[E1].Value = Workbooks("test onglets0 " & Feuil1.[A10].Value & "bis.xls").Worksheets(Feuil1.Name).Cells(1, 1).Value

je la copy/past dans mon dossier final, l'adapte au dossier:
Code :
Code:
Feuil17.[Q1].Value = Workbooks("fiche perso cuisine test" & " " & Feuil17.[L1].Value & ".xls").Worksheets(Feuil2.Name).Cells(2, 1).Value

et là, lors de l'activation de la macro, message d'erreur: erreur de compilation, variable non définie.-----> et " (Feuil2.Name) " est surligné en jaune.

je fais quelques essais pour tâcher de trouver la cause:
-j'ai supprimé une à une toutes les macros du classeur
-j'ai inscrit la valeur en cells(2, 1) manuellement vu qu'elle s'inscrit par liaison
-j'ai renommé l'onglet de la Feuil2 manuellement vu qu'elle s'inscrit par liaison

toujours le même problème

par contre, je change le " Worksheets(Feuil2.Name) " par " Worksheets(2) " (emplacement de l'onglet sur sa ligne) et là, la macro me donne entière satisfaction.

une idée? une piste? mieux encore, une solution?

merci

cordialement
 
Dernière édition:

flyonets44

XLDnaute Occasionnel
Re : erreur de compilation, variable non définie

Bonsoir
tu remplaces Worksheets(Feuil2.Name) par feuil2.codename si ta feuille porte ce nom
pour cela tu vas vérifier dans l'explorateur de projet si feuil2 est bien le codename de ta feuille
Cordialement
flyonets
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : erreur de compilation, variable non définie

Bonjour Charette, bonjour le forum,

Je pense que la confusion vient de la propriété Name et CodeName de l'onglet.
Dans la fenête Propriétés le CodeName est indiqué par (Name) (oui je sais c'est carrément con...). La propriété Name est le nom de l'onglet qu'il y a écrit en bas dans les onglets des onglets (si j'oses dire...).
Feuil2.Name signifie : le nom de l'onglet qui a pour CodeName Feuil2
Sheets(2).Name signifie : le nom du second onglet du classeur
Je présume donc que dans ton classeur source il n'y a pas d'onglet ayant comme CodeName Feuil2 d'où le plantage.

Vérifie avec la pretite macro ci-dessous. Ajoute un onglet dans ton classeur source (que tu supprimeras par la suite), et nomme-le Essainom. Lance la macro, tu auras en colonnes :
A le nom de l'onglet (propriété Name)
B sa position dans le classeur (propriété Index)
C son CodeName (propriété (Name))...
Code:
Sub Macro1()
With Sheets("Essainom")
    For x = 1 To Sheets.Count
        .Cells(x, 1).Value = Sheets(x).Name
        .Cells(x, 2).Value = Sheets(x).Index
        .Cells(x, 3).Value = Sheets(x).CodeName
    Next x
End With
End Sub

Personnellement, malgré que ce soit plus long, pour faire référence à un onglet, j'utilise toujours la propriétés Name ou Index mais jamais CodeName... De même je préfère Range("A10") que [A10] mais comme on dit... les coups et les douleurs...

[Édition]
Bonjour Flyonets on s'est croisé.
 
Dernière édition:

charette63

XLDnaute Occasionnel
Re: erreur de compilation, variable non définie

bonjour flyonest,

merci de t'investir pour mon problème,

je viens de tester ta solution, j'ai un message d'erreur: erreur d'exécution '438', propriété ou méthode non gérée par cet objet
et toute la macro est "jaunie"
Code:
Feuil17.[Q1].Value = Workbooks("fiche perso cuisine test" & " " & Feuil17.[L1].Value & ".xls").Feuil2.CodeName.Cells(2, 1).Value

merci
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : erreur de compilation, variable non définie

Bonjour le fil, bonjour le forum,

Oui comme je t'expliquais dans mon post précédent (voir au dessus) si aucun onglet n'a comme CodeName : Feuil2 ça va toujours planter...
 
Dernière édition:

charette63

XLDnaute Occasionnel
Re: erreur de compilation, variable non définie

bonjour Robert,
ta petite macro pose problème, message d'erreur:erreur de compilation, variable non définie et le "X" est "bleui"

il y a certainement quelque chose que je ne comprend pas, je connais le nom de la feuille (onglet):

Durant J ---> ça ne m'interresse pas de la rechercher sous ce nom car suseptible de changer (perte des liaison avec autres classeurs fermés)

je connais la position de l'onglet sur la "ligne" d'onglet du classeur (" Worksheets(2) ")--->ça ne m'interresse pas de la rechercher sous la position car suseptible de changer (perte des liaison avec autres classeurs fermés)

Dans l'arborescence de la fenetre "projet VBA" je vois en feuil2(Durant J)


De plus, pourquoi la macro reçue par Dranreg fonctionne sur mes classeurs "test"

merci
 
Dernière édition:

charette63

XLDnaute Occasionnel
Re: Re : erreur de compilation, variable non définie

pour flyonest:

les classeurs destinataires de ma macro sont trop lourds(862kg et 1.97mo) ,j'ai creé pour ce faire, deux classeurs que j'ai envoyé sur un autre post qui pour moi était résolu (sous le nom: liaison par macro crée par charette63).
Mais bizarrement, la macro fonctionne dans ces classeurs test, et je ne vois pas la difference qu'il pourrait y avoir entre les classeurs test et classeurs destinataires
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : erreur de compilation, variable non définie

Bonjour le fil, bonjour le forum,

Tu dois avoir par défaut Option Explicit qui oblige à déclarer toutes les variables... Essai comme ça :
Code:
Sub Macro1()
Dim x As Interger
With Sheets("Essainom")
    For x = 1 To Sheets.Count
        .Cells(x, 1).Value = Sheets(x).Name
        .Cells(x, 2).Value = Sheets(x).Index
        .Cells(x, 3).Value = Sheets(x).CodeName
    Next x
End With
End Sub
Si tu dis que tu vois dans l'arborescence VBA : feuil2(Durant J) alors il n'y a pas de raison pour que ça ne marche pas. Je ne comprends pas... Mais je te conseille de lancer la macro et de bien vérifier dans la colonne C que tu as quelquepart Feuil2 (ou feuil2).
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : erreur de compilation, variable non définie

Bonsoir le fil, bonsoir le forum,

Dommage que tu ne nous dises pas si ça marche et/ou qu'est-ce qui n'allait pas. Ça pourrait aider des personnes qui auraient rencontré le même type de problème que le tien...
 

charette63

XLDnaute Occasionnel
Re: erreur de compilation, variable non définie

bonsoir Robert,

désolé, je ne sais pas se qui ne fonctionne pas, la macro fonctionne sur les classeurs "test" que j'ai posté là(sous le nom: liaison par macro crée par charette63).les differences entre les "test" et mes classeurs "finaux", ils contiennent beaucoup plus de pages, beaucoup plus de formules, beaucoup plus de macros. Je cherche sur le net ce qui pourrait empécher un macro de "lire" une feuille sous la dénomination "feuil1". Et jusqu'à present, je n'ai rien trouvé.

Je vais tâcher de mettre ici mes classeurs "finaux" allégés et "déconfidentialisés", cela va me prendre un peu de temps, je vais garder ce travail pour demain.

merci de suivre la discussion

cordialement
 

charette63

XLDnaute Occasionnel
Re: erreur de compilation, variable non définie

bonjour à tous et toutes

j'ai de nouvelles infos

je rappelle la macro:

Code:
Feuil17.[Q1].Value = Workbooks("fiche perso cuisine test" & " " & Feuil17.[L1].Value & ".xls").Feuil2.CodeName.Cells(2, 1).Value

je la traduis

la cellule "Q1" de la feuille 17 du classeur à partir duquel la macro est activée doit etre égale à:
-la valeur de la cellule "Cells(2, 1)" soit la cellule A2
-de la feuille2.CodeName (pour l'exemple appelée Durant J)
-du classeur "fiche perso cuisine test valeurvariable.xls

il s'avere que la cellule recherchée (et touvée) par la macro ne se situe PAS dans le classeur "fiche perso cuisine test valeurvariable.xls", mais dans le classeur actif. Je cherche donc à modifié la valeur d'une cellule qui est définie dans la macro pour rechercher cette valeur, mais je ne comprend pas pourquoi la cellule "cells(2, 1) est bien la cellule de la feuille2.codename du classeur "fiche perso cuisine ...."

il semblerais donc que la "feuil2.codename" ne soit pas appelée dans le classeur ""fiche perso cuisine..." mais dans le classeur actif (????)

j'espere que c'est suffisement clair
merci
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : erreur de compilation, variable non définie

Bonjour,

pas tout suivi, mais plutôt que les "codename", utilise peut être les noms de feuille "sheets("nomfeuille"), si pas dans le classeur où s'exécute le code....

bon diamnche
@+
 

Discussions similaires

Réponses
3
Affichages
561
Réponses
3
Affichages
354

Statistiques des forums

Discussions
312 499
Messages
2 089 002
Membres
104 002
dernier inscrit
SkrauzTTV