IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Tester si une feuille (onglet) existe sans ouvrir le fichier ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut Tester si une feuille (onglet) existe sans ouvrir le fichier ?
    Bonjour à tous,

    Pour récupérer une valeur dans un fichier j'utilise le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WValCom = "='" & WFic_CDG_Com_TXT2 & WFeuilleALire & "'!$" & WCaseALire & "$25"
    Mais le problème c'est que je n'arrive pas à tester si la feuille existe ou pas ?

    J'ai essayé cette fonction, mais elle renvoie systématiquement que la feuille n'existe pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Function FeuilleExiste2(NomFeuille) As Boolean
        Dim f As Object
        On Error Resume Next
        Set f = Sheets(NomFeuille)
        If err = 0 Then FeuilleExiste2 = True
        Set f = Nothing
    End Function
    Et donc, je ne vois pas où est-ce que je déconne ?

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour,

    c'est normal car ce code est un manquement au respect du modèle objet d'Excel !
    Ta fonction cherche - déjà pas forcément une feuille de calculs vu l'objet Sheets choisi ! - un nom
    au sein du classeur actif et donc forcément ouvert ‼

    Qui plus est dans ce cas il n'y a besoin que d'une seule ligne de code via la fonction de feuille de calculs ESTREF !

    Donc si le classeur est ouvert mais n'est pas celui actif, il suffit de préciser la référence du classeur avant la feuille !

    Rappel du B-A-BA du modèle objet d'Excel : Workbooks.Worksheets.Range. … (Classeur.Feuille.Plage.Propriété …)

    Exemple de ce forum parmi tant d'autres dans cette discussion !

    _________________________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

    _________________________________________________________________________________________________________
    Je suis Paris, Nice, Bruxelles, Charlie, …

  3. #3
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132

  4. #4
    Membre éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut
    Merci à tous pour vos réponses et vos explications.

    Mais alors quelle est la différence entre utiliser une fonction avec ESTREF ou une fonction (plus compliquée) avec les modèles ADO et ADOX ?

  5. #5
    Membre éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut
    Bon, ben je suis largué !
    Ce matin je fais des essais avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Function FeuilleExiste2(P_FEUILLE) As Boolean
    'Permet de tester l'existance d'une feuille dans un classeur sans l'ouvrir
    'P_Feuille = "O:\fredarch\visu\2016\[Totaux activité 2016.xls]JANVIER2016"
     
        ExistWorkSheet = Evaluate("ISREF('" & P_FEUILLE & "'!A1)")
     
    End Function
    Ca fonctionne nickel en testant avec des feuilles qui existent et des feuilles qui n'existent pas, mais là, sans strictement rien modifier (j'étais sur autre chose), ça ne fonctionne plus, et j'ai bien vérifier dans le fichier quelles étaient les feuilles qui existaient ou non.
    En fait, j'ai l'impression que le ISREF ne fonctionne pas si le classeur cible n'est pas ouvert, vous me le confirmez ?

  6. #6
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut




    Ben oui comme déjà indiqué dans mon post ! …

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Changer une propriété column site sans ouvrir le fichier
    Par jo_dalton dans le forum SharePoint
    Réponses: 5
    Dernier message: 04/06/2009, 11h23
  2. Tester si une page web existe
    Par opsi dans le forum Zope
    Réponses: 1
    Dernier message: 24/09/2007, 11h43
  3. Réponses: 2
    Dernier message: 06/05/2006, 22h50
  4. Réponses: 7
    Dernier message: 05/05/2006, 19h55
  5. Tester si une image distante existe
    Par xtaze dans le forum Langage
    Réponses: 27
    Dernier message: 06/01/2006, 12h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo