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

  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+

  7. #7
    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
    Je vois que je n'est pas le choix il faudra creer un lecteur reseaux sur chaque ordinateur aujourd'hui quand je souhaité rejoindre le dossier je faisais Demarer/exectuer puis je taper \\NomdeServeur je n'est pas de lecteur reseaux creer et il va falloir un creer un

  8. #8
    Membre averti
    Inscrit en
    Février 2010
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 49
    Par défaut
    Pour que tous les postes aient la même lettre réseau (T: par exemple), tu peux utiliser la fonction net delete (ca supprime la connexion), ensuite un net use sur le lecteur que tu veux, avec le share etc...

    Par contre il faut prevenir les utilisateurs... après ca depend combien de serveur tu as...

  9. #9
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Bonjour,

    Aucun problème pour mettre un chemin réseau en utilisant Application.FileDialog.
    Voici un petit exemple d'utilisation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test()
      Dim fld As FileDialog
      Dim strFilePath As String
      Set fld = Application.FileDialog(msoFileDialogOpen)
      With fld
        .InitialFileName = "\\serveur\dossier\dossier1\"
        .Show
      End With
      strFilePath = fld.SelectedItems(1)
    End Sub
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  10. #10
    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
    Bonjour,

    Merci c'est exactement ce que je recherchai

+ 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