liste déroulante à partir d'un autre fichier excel

  • Initiateur de la discussion Initiateur de la discussion PATSAB
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

PATSAB

XLDnaute Nouveau
Bonjour à tout le forum,

J'ai cherché et cherché encore sur les forums, peut-être mal !, mais je n'ai pas trouvé la solution à mon problème, qui pourtant me paraissait simple.

J'utilise dans le fichier joint "TEST LISTE DEROULANTE BIS" un onglet nommé TABLE contenant mes données de base : articles, code, prix unitaire, unité de facturation.
Dans les fiches numérotées, en double-cliquant en cellule C16-C25 j'appelle par VBA une fenêtre déroulante dans laquelle je choisis mon article. Par ce libellé et les formules de RECHERCHEV idoines, mes colonnes "code, PU, U se remplissent automatiquement.
Mon problème est que je veux détacher l'onglet "TABLE" pour en faire un fichier séparé, pour l'utiliser avec d'autres fichiers. Ainsi si je modifie des valeurs à l'intérieur, tous les fichiers en liaison avec cette TABLE travailleront avec des données à jour.

J'ai été un peu long ! Je vous prie de m'en excuser.
Je vous remercie tous de l'aide que vous pourrer m'apporter.
Patrick
 

Pièces jointes

Re : liste déroulante à partir d'un autre fichier excel

Bonsoir,


Utiliser ADO. Voir PJ

Code:
Private Sub UserForm_Initialize()
  'Microsoft ActiveX DataObject doit être coché
  ' Champ nommé BD
  Set cnn = New ADODB.Connection
  cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};ReadOnly=1;DBQ=" & _
      ThisWorkbook.Path & "\" & "BDPROD.xls"
  Set rs = cnn.Execute("SELECT libellé FROM BD")
  Me.ListBox1.List = Application.Transpose(rs.GetRows)
  Temp = Me.ListBox1.List
  rs.Close
  cnn.Close
  Set rs = Nothing
  Set cnn = Nothing
End Sub

JB
Formation Excel VBA JB
 

Pièces jointes

Re : liste déroulante à partir d'un autre fichier excel

Bonsoir PAtSab,

Voici une solution avec MsAdo

nécessite de cocher la référence à 'Microsoft Activex Datas Objects 2.x' dans le menu Outils/Référence de l'éditeur Visual Basic (VBE). Ou x diffère selon la version Ado de la machine.

Un fichier nommé Datas.xls a été créé avec la feuille Table. Ce fichier doit être dans le même répertoir que l'autre. (Le chemin du fichier peut-être adapter facilement dans le module de code du userform)

A+
 
Re : liste déroulante à partir d'un autre fichier excel

🙂 Bonjour à tous
Et merci encore à tous ceux qui se sont penchés sur mon problème.

And the winner is BOISGONTIER ! Un merci spécial à vous !

Excellent ! Tout à fait ce que je voulais. Ca fonctionne à merveille, et plus rapidement que ma version précédente, qui avait du mal à me laisser saisir les premières lettres de mon produit.
Au plaisir de vous lire une prochaine fois
Patrick
 
Re : liste déroulante à partir d'un autre fichier excel

Bonsoir Boisgontier
Cela fait déjà plus de 4 ans que tu m'avais dépanné avec ce code pour utiliser une liste déroulante alors que j'étais sous excel 2003. Je l'ai beaucoup utilisé.
Excel 2003 a vécu. Je suis maintenant sous excel 2010 et la macro refuse de fonctionner. Elle coince au niveau "cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};ReadOnly=1;DBQ=" & _
ThisWorkbook.Path & "\" & "BDPROD.xls".
Peut-être aurais-tu une idée pour débloquer la situation ?
Je te remercie déjà de m'avoir lu pour te pencher sur mon problème.
 
Re : liste déroulante à partir d'un autre fichier excel

Bonjour,

Code:
Private Sub UserForm_Initialize()
  'Microsoft ActiveX DataObject doit être coché
  ' Champ nommé BD
  Set cnn = New ADODB.Connection    
  cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\" & "BDPROD.xlsx" & ";Extended Properties='Excel 12.0;HDR=Yes'"

  Set rs = cnn.Execute("SELECT libellé FROM BD")
  Me.ListBox1.List = Application.Transpose(rs.GetRows)
  Temp = Me.ListBox1.List
  rs.Close
  cnn.Close
  Set rs = Nothing
  Set cnn = Nothing
End Sub

JB
 

Pièces jointes

Dernière édition:
Re : liste déroulante à partir d'un autre fichier excel

Bonjour Boisgontier

Je vois que tu es toujours aussi véloce et efficace. Tu es un superchampion du VBA. Je te remercie grandement de ton aide. Mon problème est résolu.
Où note-t-on que le cas est résolu ?
Au plaisir de te relire. Merci encore.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour