Liste déroulante avec données dans un autre dossier

Résolu
OOLIVIZY Messages postés 28 Statut Membre -  
Le Pingou Messages postés 12283 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Ayant été super content des résultats obtenus ici, je reviens vers vous pour avoir des informations sur deux questions:

1ère question: est-il possible de créer une liste déroulante avec des données provenant d'un autre classeur ? (genre une base données excel) ?

2ème question: si oui, comment ?

:)
Merci pour les informations.

8 réponses

  1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour
    directemEnt d'un fichier à un autre, je ne pense pas.
    la solution serait peut être de reporter dans le fichier N la liste du fichier N-1 par égalité;
    Crdlmnt
    0
    1. OOLIVIZY Messages postés 28 Statut Membre
       
      j'y avais pensé mais ca devient embetant.. En fait, ce que je voulais faire, c'est proposer une liste déroulante des clients et mission dans les feuilles de temps des collaborateurs..
      Comme ca, ils pourraient choisir le client les concernant, les missions et mettre en face le nombre de jours travaillés, que j'aurais récupérer grâce à un programme..
      Mon but ici était de limiter les erreurs en proposant un seul type d'orthographe !!

      Merci à vous pour vos réponses.
      0
  2. Le Pingou Messages postés 12283 Date d'inscription   Statut Contributeur Dernière intervention   1 480
     
    Bonjour,
    Dans ce cas avec VBA.
    0
    1. OOLIVIZY Messages postés 28 Statut Membre
       
      Bonjour Le Pingou,

      Je suis preneur pour VBA mais je dois avouer que je ne suis pas le roi avec. Si à tout hasard tu pouvais m'apporter quelques idées/aides, cela serait la bienvenue !

      Bonne journée à tous.
      0
    2. OOLIVIZY Messages postés 28 Statut Membre
       
      Voilà des fichiers pour l'exemple..

      J'aimerais que le fichier Etimesheet propose dans les cellules en face des clients et missions (colonne B, surlignées) une liste déroulante avec les informations contenu dans le fichier eTest, onglet "Table_Missions"
      Fichier etest: https://mon-partage.fr/f/D6zS6vee/
      Fichier etimesheet: https://mon-partage.fr/f/5nOIi4qK/

      Bien à vous :)
      0
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,

    peut-^tre à coté de la plaque

    validation de données externes
    https://www.cjoint.com/?3DkliRBohdp

    les 2 classeurs doivent être ouverts
    0
    1. OOLIVIZY Messages postés 28 Statut Membre
       
      Bonjour,

      C'est une partie du problème.. car elle va pouvoir permettre d'aller chercher l'info ailleurs.. Mais il faut que je pose une liste en cascade pour le service maintenant
      0
  4. Le Pingou Messages postés 12283 Date d'inscription   Statut Contributeur Dernière intervention   1 480
     
    Bonjour,
    Merci pour les fichiers.
    Toutefois, la proposition de michel_m fonctionne très bien, je pense qu'il suffit de la compléter pour vos besoins.
    Concernant vos 2 classeurs, je suppose que [eTEST1.xlsm] est la source pour les listes déroulantes qui seront utilisées dans [ETIMESHEET.xls] plages : [Client] et [Service].... ??
    Question : est-ce que les 2 classeurs se trouvent sur le même PC.... ?

    0
    1. OOLIVIZY Messages postés 28 Statut Membre
       
      oui c'est ca :)
      Pour le coup, j'ai pas réussis à comprendre comment adapter le code à mes besoins..
      Mais la liste déroulante servirait pour les plages clients et services oui.
      Les 2 classeurs sont pr l'instant sur le même pc, ensuite, le fichier [eTest1] sera envoyé sur une dropbox et les timesheets sur chaque pc des collaborateurs..
      du coup, en intégrant le lien d fichier, ca devrait être bon non ?

      Merci pour vos réponse!
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Le Pingou Messages postés 12283 Date d'inscription   Statut Contributeur Dernière intervention   1 480
     
    Bonjour,
    Que comprendre par le terme anglais [dropbox] ...?
    0
  7. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,

    Ci joint proposition peut-^tre provisoire

    1/ j'ai passé le fichier cible en version 2007 car ce n'est pas trop conseillé d'avoir des versions différentes (source etest1 était en XL2007) pour une m^me appli, d'autant plus que le moteur de connexion est différent entre xl<2007 et XL2007

    2/ Les données venant de Etest1 -restant fermé- onglet "table_mission" sont inscrites dans une feuille tampon

    3/ il devrait être possible de se passer de cette feuille tampon en affectant directement le combobox1 puis le combobox2 mais si seulement ca t'intéresse (il y a longtemps que je ne l'ai pas fait et c'est assez piègé), c'est la raison pour laquelle la connexion et la requete sont déclarées publiques

    4/ attention dans la macro aux éléments à adapter à ta structure -voir constante Fichier-. pas très sympa d'annoncer APRES que etest1 sera dans une dropbox ce qui oblige à un code supplémentaire pour éviter les conflits d'accès simultanés....

    ci joint etimesheets.xlsm testé avec succès
    https://www.cjoint.com/?3DliKes7HSl

    0
    1. OOLIVIZY Messages postés 28 Statut Membre
       
      Bonjour Michel,

      Désolé de ne pas avoir communiqué cette info plus tôt, je ne pensais pas qu'elle était importante..
      Merci pour le temps que tu m'as accordé, je vais regarder ça dès maintenant.

      Excellente journée à tous..
      0
    2. OOLIVIZY Messages postés 28 Statut Membre
       
      Lorsque je fais le process habituel, à savoir le double-clique, c'est le code qui s'applique, il ne prend pas compte du code dans VBA.. Est-ce normal ?
      0
    3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      dans ce que je t'avais transmis, je ne m'étais pas occupé du doubleclic (à sécuriser d'ailleurs: déclenchement de n'importe où dans la feuille) et j'attaquais directement la macro module 1

      ci joint version sans feuille supplémentaire
      des trucs que je n'ai pas compris (mis en commentaires) dans combobox1_change ainsi que de l'utilité des sendkeys

      https://www.cjoint.com/?3DlkYRLZydu
      0
    4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      ajouter dans cette procédure les 2 lignes en gras, merci d'avance

      Private Sub ComboBox1_Change() 
      Dim Lig As Byte, Choix As String 
        Me.ComboBox2.Clear 
      
         Choix = Me.ComboBox1 
          
         With requete 
                .MoveFirst 
                Do While Not .EOF 
                     If .Fields(0) = Choix Then 
                          Me.ComboBox2.AddItem 
                          Me.ComboBox2.List(Lig, 0) = .Fields(1) ????
                          'Me.ComboBox2.List(Lig, 1) = .Fields(2) ????
                     Lig = Lig + 1 
                     End If 
                .MoveNext 
                Loop 
          End With 
          source.Close 
          Set source = Nothing 
         
        Me.ComboBox2.SetFocus 
        'SendKeys "{F4}" 
      End Sub
      0
    5. OOLIVIZY Messages postés 28 Statut Membre
       
      j'ai un problème.. lorsque j'exécute le module 1, il me fait apparaître un message "Mise à jour impossible. La base de données ou l'objet est en lecture seule".
      Le bogage intervient à la ligne .Open
      Des idées ?
      0
  8. Le Pingou Messages postés 12283 Date d'inscription   Statut Contributeur Dernière intervention   1 480
     
    Bonjour,
    Bravo michel_m, plus rien à faire.
    Question en marge, est-ce que cela fonctionne via une [Dropbox].... !

    0
    1. OOLIVIZY Messages postés 28 Statut Membre
       
      Si... je viens de m'apercevoir d'un point...
      Lors de l'apparition du userform, on choisit, dans le combobox1, le client..
      Mais si on décide de changer le client, il nous fait apparaître un message d'erreur !
      Il faut que je trouve comment régler ce problème !!

      Désolé Le Pingou, la dropbox est un service de stockage de données..
      Il est possible de faire fonctionner le tout mais cela nécessite une "installation sur tous les postes" (modification du chemin en insérant le nom de la session pour chacun".

      En tout cas, merci pour tout !
      0
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Déplace
      source.Close
      Set source = Nothing

      avant unload me
      dans combobox2_change
      0
    3. OOLIVIZY Messages postés 28 Statut Membre
       
      Merci, décidément !
      0
    4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Oui, mais pour ma part j'installerais 2 boutons: "valider" et "annuler" pour avoir un fonctionnement plus souple permettant la ou les erreurs de manipulation (ça, je sais bien faire)

      dans valider on retrouverait le code de combobox2 avec en plus,une condition imposant que le combo2 soit rempli

      dans annuler
      la fermeture de source et nothing
      et unload me
      0
  9. Le Pingou Messages postés 12283 Date d'inscription   Statut Contributeur Dernière intervention   1 480
     
    Bonjour OOLIVIZY,
    Merci à vous pour cette explication.

    0