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 :

[VBA excel] Choisir le repertoire d'acces


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut [VBA excel] Choisir le repertoire d'acces
    J'ai créer une maccro qui me permet d'allez dans un repertoire et de prendre certain fichiers

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Chemin = "C:\Documents and Settings\S8746037\Bureau\Etude\Programme Excel Stephane\JB\Archivage\"
    fic = Dir(Chemin & "A200_PROD_4_LOT*.xls")
    Do Until fic = ""
         Set CL1 = Workbooks.Open(Chemin & fic)
         DoEvents
         
         Set fl = CL1.Worksheets("2")
         Set FL2 = Workbooks("Archive-A200.xls").Sheets("Production")
    en rouge c'est le repertoire qui est fixe

    je voudrais le faire de maniere dynamique c'est a dire que sur mon fichier excel quand je clique sur un bouton une fenetre apparait et me permet de choisir un repertoire sur mon réseau (un peu comme ouvrir un fichier ou je veux)

    mais je ne sait pas comment m'y prendre et j'ai fait des recherches mais sans succes

    si vous aviez un conseil ou un coup de main a me passer faites le svp

    je vous en remercie d'avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Voici une fonction générique qui permet cela. Elle renvoie le nom du fichier choisi dans la boite de dialogue.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Function getNomFichier() As String
        Dim Reponse As String
        With Application.FileDialog(msoFileDialogOpen)
            .AllowMultiSelect = False
            .Show
            If .SelectedItems.Count = 1 Then Reponse = .SelectedItems(1)
        End With
        getNomFichier = Reponse
    End Function
    Fais une recherche avec FileDialog sur DVP ou dans l'aide en ligne pour aborder les paramètres (filtres, dossier par défaut,...)...

    Ok?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut
    je n'arrive pas a tester ton code
    je ne sait pas comment le mettre en place tu peux me faire voir stp

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Il s'agit d'une fonction.

    Tu dois donc la placer dans un module standard. Après quoi, tu l'utilises dans ton code, comme un fonction VB classique.

    Dans ton cas, tu vas sûrement placer cela dans un userform et appeler la fonction par clic sur un bouton, par exemple.

    Mes explications te permettent d'avancer?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut
    ouskeln'or
    je te rassure je suis allez voir sur le DVP comme m'as dit pierre


    et j'ai trouver ce code

    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
    Sub toto()
    Dim oFd As FileDialog
    'Instancie une boite de dialogue de sélection de répertoire
    Set oFd = Application.FileDialog(msoFileDialogFolderPicker)
    With oFd
        'Change le titre de la fenêtre
        .Title = "Sélectionnez un répertoire"
        'Répertoire par défaut
        .InitialFileName = "c:\"
        'Affiche la boite de dialogue
        If .Show Then MsgBox (.SelectedItems(1))
    End With
     
     
    End Sub
    et le nom du repertoire apparait dans une message box
    ce que je voudrais c'est que ce nom la remplace le nom qu'y a dans ma maccro en rouge
    et je ne sait pas comment le mettre en variable voila surtout qu'ai plusieurs modules qui contient ce meme nom de repertoire je voudrais le changer dans tous les modules par une variable commune a tous les modules

    desoler j'ai du mal m'exprime au debut

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Place le code que je t'ai donné dans un module standard.

    Puis dans ton code, remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Chemin = "C:\Documents and Settings\S8746037\Bureau\Etude\Programme Excel Stephane\JB\Archivage\"
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Chemin = getNomFichier()
    Idéalement, tu dois tester si chemin est une chaine vide, mais place déjà le code comme je te le propose et dis-nous si cela fonctionne.

    On aoutera la sécurité par la suite, en fonction des besoins.

    Ok?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Citation Envoyé par Pierre Fauconnier
    Fais une recherche avec FileDialog sur DVP ou dans l'aide en ligne pour aborder les paramètres (filtres, dossier par défaut,...)...
    Ok?
    sur filedialog donne un exemple où il n'y a rien à changer

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

Discussions similaires

  1. [XL-2007] VBA EXCEL Choisir la boite mail d'envoi lors d'un envoi via Outlook
    Par Joeytriviani dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/04/2014, 13h57
  2. [VBA-Excel] - Demander à l'utilisateur de choisir une cellule
    Par MrYoYo dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/02/2007, 11h54
  3. [VBA-Excel] Liste fichier de repertoire selon critere
    Par Kaiba dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 09/02/2007, 13h07
  4. Réponses: 3
    Dernier message: 08/12/2006, 16h22
  5. Sécurisation sources/code d'accès appli VBA Excel
    Par Pat_TOTO dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/09/2006, 17h39

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