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 :

Getopenfilename dans un dossier specifique


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 7
    Par défaut Getopenfilename dans un dossier specifique
    Bonjour,

    Je souhaiterais appliquer un Getopenfilename dans un dossier specifique qui ce trouve sur le reseau

    Le lien vers le dossier est du type \\serveur\dossier\dossier1\

    il faudrait que la personne qui lance la macro tombe directement dans ce dossier pour selectionner un fichier de son choix

    je n'ai pas trouver comment faire
    Merci de votre aide

  2. #2
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Salut et bienvenue sur le forum,

    Voici l'astuce, il faut préciser le dossier en deux temps, d'abord le lecteur, pour l'exemple C et ensuite le chemin complet jusqu'au dossier voulu.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ChDrive ("C") 'Adapter la lettre du lecteur voulu
    ChDir "C:\Documents and Settings\USER\My Documents" 'Indiquer le chemin complet jusqu'au répertoir voulu
    MonFichier = Application.GetOpenFilename("Fichiers textes (*.txt),*.txt", , _
        "Sélectionnez un fichier :") 'Affectation du fichier sélectionné (ici Texte) à la variable MonFichier
    A+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 7
    Par défaut
    Merci de ta reponse mais cette solution ne me convient pas car:

    Le fichier se trouve sur un serveur, different ordinateur vont ce connecter a ce fichier pour le mettre a jour, il faudrait que sur chaque ordinateur il y est un lecteur reseau ayant la meme lettre est la c'est pas possible (Trop de boulet devront l'utilisé)

    Y a t'il une solution qui ne demanderait pas de configuration d'ordinateur particuliere

    Merci d'avance de m'eclairer

  4. #4
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Et est-ce que ce fichier est dans ce dossier ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 7
    Par défaut
    Est non j'ai le fichier contenant mes macro sur un serveur de fichier et je traite des Acquisitions avec mes macros qui se trouve sur un autre serveur dedié aux aquisitions

    C'est assez compliqué je l'avoue

  6. #6
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut Boucle sur Drivers
    Re,
    Désolé, en fait tu l'avais déjà dit qu'il était pas sur le même serveur...

    Bon ben dans ce cas, comme j'imagine que tu ne veux pas demander à tes utilisateurs qu'ils entrent eux même la lettre du serveur, voici une piste avec une boucle sur les Drivers.
    L'idée est de récupérer le 'nom' du serveur et de le comparer avec le nom théorique (pour mon test, mon serveur est \\srv-files\coco$)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Sub TrouveLecteur()
    Dim fs, d, dc, s, n
     
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set dc = fs.Drives
     
    On Error Resume Next
     
        For Each d In dc 'Boucle sur les Lecteurs
            s = d.DriveLetter 'Récupère la lettre
            If d.DriveType = 3 Then 'Si correspond à un "Network"
                n = d.ShareName 'Récupère le nom du serveur
                If n = "\\srv-files\coco$" Then 'Compare au nom théorique
                    ChDrive (s) 'Affecte la lettre du lecteur
                    ChDir s & ":\Dispos\2010" 'Compléter le chemin du serveur avec les dossiers
                    MonFichier = Application.GetOpenFilename("Fichiers textes (*.txt),*.txt", , _
                    "Sélectionnez un fichier :") 'Affectation du fichier sélectionné (ici Texte)
                    Exit Sub 'Sort de la procédure car trouvé
                 End If
            End If
        Next d
    End Sub
    Si tu n'est pas certain du nom de ton serveur, tu peux toujours en adaptant un peu la boucle les lister dans une feuille.

    A+

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

Discussions similaires

  1. Recuperation PJ dans dossier specifique
    Par WillyBsm dans le forum VBA Outlook
    Réponses: 7
    Dernier message: 26/11/2008, 11h11
  2. Réponses: 3
    Dernier message: 07/11/2008, 11h41
  3. [VBA-E] Bloquer GetOpenFileName dans un dossier particulier
    Par EvaristeGaloisBis dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/07/2007, 20h57
  4. [OmniMark 5] Copier contenu d'un dossier dans autre dossier
    Par Hoegaarden dans le forum Autres langages
    Réponses: 3
    Dernier message: 24/08/2005, 16h59
  5. acces à la Bd situee dans le dossier parent
    Par trialrofr dans le forum ASP
    Réponses: 4
    Dernier message: 04/01/2005, 17h37

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