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 :

Contrôle existence d'un classeur [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 291
    Par défaut Contrôle existence d'un classeur
    Bonjour,

    je contrôle l'existence d'un autre classeur dans le même dossier avant de l'ouvrir avec la fonction
    cela marche très bien en donnant le chemin complet mais je coince en ne mettant que le nom du classeur (les classeurs sont dans le même répertoire)

    Plusieurs exemples trouvés sur internet mais aucun ne marche

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    L'aide VBA est claire : le chemin complet doit être passé à la fonction Dir.
    les classeurs sont dans le même répertoire
    Pour ton information : le chemin du dossier contenant ton classeur est retourné par :
    ThisWorkbook.Path
    (aide vba , rubrique Workbook.Path, propriété)

  3. #3
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour,

    Il faut utiliser le chemin complet, si c'est au même endroit que ton classeur utilise alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Chemin = ThisWorbook.Path & "\" & "LeNomdeTonClasseur"
    Edit : Coucou Jacques on s'est croisé (pas très rapide d'écrire avec son téléphone )
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  4. #4
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2017
    Messages
    1 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2017
    Messages : 1 291
    Par défaut
    OUI !!:
    merci je le savais ça mais tellement de découverte avec VBA que j'avais oublié

    Excusez moi

  5. #5
    Membre actif
    Homme Profil pro
    Ingénieur
    Inscrit en
    Septembre 2017
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2017
    Messages : 132
    Par défaut
    Citation Envoyé par retraite83 Voir le message
    OUI !!:
    merci je le savais ça mais tellement de découverte avec VBA que j'avais oublié

    Excusez moi
    Pas la peine de demander des excuses, on t'aide tous avec plaisir et tes questions pourront aider d'autres utilisateurs qui se posent les mêmes questions.

    Cependant, essayes de chercher plus avant de créer un sujet car c'est en galérant qu'on apprend le plus. Je te recommande très vivement la doc MSDN :

    Fonction Dir sur MSDN

    Elle est très complète et suffit très souvent. Elle détaille notamment tous les arguments des fonctions et méthodes et donne souvent des exemples. De plus, le cerveau est "fainéant" par nature car il économise l'énergie autant que possible. Autrement dit si as le réflexe de prendre des photos de tout, ton cerveau qui est bien au courant que ces photos te sont accessibles aura tendance à ne pas les conserver en mémoire car ce n'est pas utile et donc une dépense inutile d'énergie puisqu'il dépensera moins avec le chemin vers la photo qu'avec la photo. Il me semble que c'est valable plus ou moins pour tout. En tout cas pour l'utilisation des fonctions et méthodes VBA si poser la question sur le forum est un réflexe, tu ne les retiendras pas toi-même (avec le même raisonnement) mais si tu cherches toi-même tu finiras par retenir car multiplier la même recherche est une dépense inutile pour ton cerveau et donc il retiendra l'information

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour Nagel Tha
    Tu es un être très intelligent
    Je ne saurais trop conforter le bien fondé de ce que tu as pris la peine d'écrire là et qui s'applique à TOUS les domaines.

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    Plusieurs exemples trouvés sur internet mais aucun ne marche
    En fait passer le chemin est facultatif, mais dans ce cas Dir travaille avec le répertoire en cours, que tu peux connaitre avec CurDir.
    S'il ne correspond pas il faudrait le fixer avec ChDrive et ChDir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        ChDrive (Left(ThisWorkbook.Path, 1))
        ChDir ThisWorkbook.Path
        nf = Dir("ton_fichier.xlsx")
    Dans ces conditions ça fonctionne.
    C'est quand même plus simple de tout lui indiquer directement ;-)
    eric

  8. #8
    Membre actif
    Homme Profil pro
    Ingénieur
    Inscrit en
    Septembre 2017
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2017
    Messages : 132
    Par défaut
    Citation Envoyé par unparia Voir le message
    Bonjour Nagel Tha
    Tu es un être très intelligent
    Je ne saurais trop conforter le bien fondé de ce que tu as pris la peine d'écrire là et qui s'applique à TOUS les domaines.
    Très intelligent je ne sais pas et je ne prétends pas l'être, mais j'aime bien chercher et me lancer des défis et surtout apprendre. Sur ce forum (et ailleurs), il y a de nombreuses personnes qui ont une maîtrise bien supérieure à la mienne en VBA (et de manière plus large en informatique) et qui pourront très probablement en l'état actuel répondre à toutes les questions que je me pose, cependant je sais que si on m'apporte la solution sur un plateau cela m'aura également épargné toutes les autres questions que la démarche de recherche m'aura fait me poser.

    Et je vais aller encore plus loin, même quand ma démarche de recherche m'a permis de trouver une solution et comprendre un certain nombre de choses je n'ai pas forcément tout compris et c'est là que le forum intervient dans mon esprit : en confrontant mes solutions à celles des autres, je me retrouve face à d'autres questions qui me permettront d'atteindre un meilleur niveau de compréhension. Et si ma solution n'est pas optimale (ou alors optimale dans le cas auquel j'ai été confronté mais serait un mauvais choix ailleurs) je suis content quand on me propose une solution alternative car même si ce ne serait pas mon choix cela va s'ajouter aux pistes que je suis en mesure d'explorer par la suite. Et c'est aussi pour ça qu'un simple pouce rouge sans explications me déçoit grandement.

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

Discussions similaires

  1. Nouveaux contrôles (existant comme activeX)
    Par statquant dans le forum Windows Forms
    Réponses: 8
    Dernier message: 15/06/2009, 21h45
  2. Tester l'existence d'un classeur
    Par nsqualli dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 06/01/2009, 12h21
  3. Si feuillet nommé "fp1" existe dans le classeur alors
    Par daduck dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/08/2008, 10h54
  4. [VBA-Excel] Vérifier si on un onglet existe dans un classeur
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/01/2007, 15h21
  5. [C#] Savoir si un contrôle existe
    Par LE NEINDRE dans le forum Windows Forms
    Réponses: 3
    Dernier message: 27/06/2006, 08h50

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