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-E]Problème Listbox et path


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 138
    Par défaut [VBA-E]Problème Listbox et path
    Bonjour !
    Je souhaite créer une feuille excel contenant 2 listes de choix comme suit:
    A1
    B1 liste de choix contenant le contenu du dossier c:\data
    C1
    D1 liste de choix contenant les dates dispo pour ce patient (c:\data\liste de choix precedente)


    Ensuite je voudrais copier certains fichiers du dossier sélectionné grâce aux 2 listes de choix dans le dossier "C:\nico\analyse\en cours"
    je sais comment copier ces fichiers avec le code qui suit mais comment récupérer le path (donné par les listes de choix)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim FSO As New FileSystemObject
    FSO.CopyFile "c:\path listes de choix\*.m", "C:\nico\analyse\en cours"
    ex path : c:\data\patient\01-10-05

    Merci à ceux qui pourront m'aider

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Par défaut
    Je n'sais pas si j'ai tout compris :
    L'utilisateur a choisi dans B1 le dossier "patient"
    Ensuite, pour "patient", il a donc des dates dans la liste de choix de D1 (je suppose que c'est automatique, par macro ou par des formules Excel)
    Finalement, il choisit dans D1 la date : "01-10-05"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    chemin = "C:\data\" & [B1] & "\" & [D1] & "\"
    Est-ce réellement ce que tu cherches?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 138
    Par défaut
    merci de ta réponse...
    Pour le chemin, c est exactement ca!
    Cependant, je cherche a créer une liste déroulante dans une case qui répertorie les dossiers contenus dans c:\data\ puis dans une autre case la liste des dates présentes dans le répertoire c:\data\nom du patient sélectionné par la 1ere liste
    Et ça, je ne sais pas du tout le faire...si une âme charitable voulait bien m'aiguiller, je l'en remercie d'avance

  4. #4
    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
    J'ai ça, ça date de 1998, on peut sans doute simplifier mais ainsi, ça fonctionne depuis 8 ans
    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
    Sub ListRepertoires()
    Dim NomFich, Chemin
    'Chemin = ton chemin (*** PAS OUBLIER ***)
        ListRep.Clear
        NomFich = Dir(chemin, vbDirectory)
        Do While NomFich <> ""
            ' Ignore les répertoires "."
             If NomFich <> "." And NomFich <> ".." And NomFich <> "" Then
                ' vérifie si Nomfich est un répertoire.
                If (GetAttr(chemin & NomFich) And vbDirectory) = vbDirectory then
                    ' Insère NomFich si c'est un répertoire
                    ListRep.AddItem NomFich 
                End If 
            End If
            NomFich = Dir
        Loop
    End Sub
    Tu dis

    NB - Je pense qu'une simple recherche sur le forum VBA t'aurait donné la réponse.. Simplement... faut y penser

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 138
    Par défaut
    merci de m aiguiller ousk' !
    Cependant, je ne suis vraiment pas bon en programmation...alors j ai pleins de questions a te poser...
    voici ce que j ai adapté mais cela ne fonctionne pas :

    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
    Sub ListRepertoires()
    Dim NomFich As String
    Dim Chemin As String
    Dim listRep As String
     
    Chemin = "c:\data\"
    listRep.Clear
     NomFich = Dir(Chemin, vbDirectory)
    Do While NomFich <> ""
    ' Ignore les répertoires "."
     If NomFich <> "." And NomFich <> ".." And NomFich <> "" Then
    ' vérifie si Nomfich est un répertoire.
    If (GetAttr(Chemin & NomFich) And vbDirectory) = vbDirectory Then
     ' Insère NomFich si c'est un répertoire
     listRep.AddItem NomFich
    End If
     End If
     NomFich = Dir
     Loop
    End Sub
    La définition des variables est etlle correcte ?
    Ca bloque à "listRep.Clear", pourquoi ?
    au cas où ce code fonctionnerait pour mon problème, où sont collées les données ? (je souhaite avoir en B1 la liste de choix contenant le contenu du dossier c:\data et en D1 une liste de choix contenant les dossiers pour ce patient (c:\data\liste de choix precedente))

    Merci beaucoup

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    où as tu mis le code ...? , il le faut dans le code relatif à ta feuille.. listRep n'est pas une variable à déclarée mais le nom de la listbox dans ta feuille excel..

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 138
    Par défaut
    effectivement, le code n était pas au bon endroit...alors j suis allé voir les cours VB pour créer des listbox (chose que je ne savais pas faire) mais je bloque des les premieres intructions :
    Fichier, nouveau projet...
    Parle-t-on du logiciel excel ? car je n ai pas ca dans le menu fichier de excel ni de microsoft visual basic!
    Je m 'excuse d avoir posé des questions en anticipation de choses que je ne connaissais pas

  8. #8
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    tes list box tu les veux ou dans un Userform (une boîte de dialogue) où sur une feuille excel...?

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 138
    Par défaut
    sur une feuille excel
    merci

  10. #10
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    ben pour rajouter le contrôle "Zone de liste déroulante" dans la boîte à outils controle ... une fois insérer un tu clique avec le bouton droit de la souris sur le contrôle ... puis tu choisi propriétés et tu change sa propriété name en ListRep ...

    ensuite tu rajoute par exemple un bouton sur ta feuille pour déclencher ta macro (toujours de la boîte à outils contrôle ...) un double clic sur le bouton devrai te permettre de passer dans la partie du code qui lui est associé et tu y place ton 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
    16
    17
    18
    19
    20
    21
    22
    23
     
    Private Sub CommandButton1_Click()
     
    Dim NomFich As String
    Dim Chemin As String
     
     
    Chemin = "c:\tmp\"
    listRep.Clear
     NomFich = Dir(Chemin, vbDirectory)
    Do While NomFich <> ""
    ' Ignore les répertoires "."
     If NomFich <> "." And NomFich <> ".." And NomFich <> "" Then
    ' vérifie si Nomfich est un répertoire.
    If (GetAttr(Chemin & NomFich) And vbDirectory) = vbDirectory Then
     ' Insère NomFich si c'est un répertoire
     listRep.AddItem NomFich
    End If
     End If
     NomFich = Dir
     Loop
     
    End Sub

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 138
    Par défaut
    Merci à vous deux d avoir éclairé ma lanterne !
    Cependant, j aurais encore quelques questions à vous poser mais je dois d'abord beaucoup lire les cours VB avant de vous les poser...
    Encore merci

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

Discussions similaires

  1. [XL-2003] Problème ListBox VBA
    Par jackborogar dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/03/2013, 18h51
  2. Problème listbox vba
    Par fabrice2205 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/06/2008, 19h39
  3. [VBA-E] Problème de ListBox
    Par sat478 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/06/2007, 10h42
  4. [VBA-E] Problème pour remplir une listbox multicolonne
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/05/2007, 16h55
  5. [Struts][JSP]Problème de Action Path
    Par luzi dans le forum Struts 1
    Réponses: 2
    Dernier message: 23/05/2004, 23h39

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