Alimenter une listbox

dimgaz

XLDnaute Nouveau
Bonjour tout le monde,

Je vous écris parce que j’ai un problème. Je vous explique.

Je suis dessinateur projeteur et travaille sur un modeleur 3D (Autodesk Inventor). J’ai créé un gabarit (modèle) de mise en plan qui fait référence un fichier Excel (Info Inventor.xlsx). Ce fichier contient des info comme N° d’affaire, auteurs,… Dans mon gabarit Inventor, j’ai créé ce qui est appelé des règles (codées en VB.net) qui vont chercher des info dans le fichier Excel (cité précédemment) pour les assigner à des paramètres de la mise en plan à l’aide de formulaires. Ça fonctionne pas trop mal.

Aujourd’hui, j’aimerais simplifier tout ça en appelant un Userform avec une règle (je sais faire et c’est facile). Dans ce Userform, j’aimerais mettre une Listbox (entre autres, pour le reste je verrai plus tard) (ou Combobox, ça n’a pas d’importance) qui est alimentée par la liste des auteurs (par exemple) qui se trouve dans le fichier Excel (cité précédemment et fermé). Cette liste d’auteurs est l’ensemble des cellules C2 à C4 (pour l’instant, la liste est amenée à évoluer, la cellule C1 étant l’en-tête de la colonne) de la feuille « Auteurs ».

Voilà, et j’ai essayé des choses sans succès (comme vous l’avez deviné). J’espère que ça vous inspirera (au moins un peu). Pour toute question qui pourrait m’aider à avancer n’hésitez pas à me contacter.

Merci d’avance.

À+.

Dim
 

dimgaz

XLDnaute Nouveau
Re : Alimenter une listbox

Salut Pierrot93,

Merci pour la rapidité !! J'ai pas précisé que pour l'instant le Userform est dans le gabarit Inventor. Serait-il préférable de le mettre sur mon fichier Excel ?

J'ai essayé le code (dans le Userform sur Inventor), j'ai une erreur "Run-time error '1004': Application-defined or object-defined error".
 

Pierrot93

XLDnaute Barbatruc
Re : Alimenter une listbox

Re,

J'ai pas précisé que pour l'instant le Userform est dans le gabarit Inventor. Serait-il préférable de le mettre sur mon fichier Excel ?

bah... perso connais pas ton "gabarit Inventor"... le code que j'ai proposé est pour un userform dans un fichier excel et les données sont prises sur la feuille active...
 

Pierrot93

XLDnaute Barbatruc
Re : Alimenter une listbox

Re,

il faut préciser le classeur et feuille sur lequel il faut récupérer les données...

Code:
With workbooks("NomClasseur.xls").sheets("NomFeuille")
ListBox1.List = .Range("C2:C" & .Cells(Rows.Count, 3).End(xlUp).Row).Value
End with
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Alimenter une listbox

Bonsoir,

Si le classeur est fermé, on peut utiliser ADO.
Code:
Private Sub UserForm_Initialize()
  'Microsoft ActiveX  Data Object 2.8 doit être activé
  Dim rs As ADODB.Recordset
  Set cnn = New ADODB.Connection
  répertoire = ThisWorkbook.Path & "\"
  cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" & répertoire & "Article.xls"
  Set rs = cnn.Execute("SELECT code,designation,prix FROM BD WHERE code<>''")
  Me.ListBox1.List = Application.Transpose(rs.GetRows)
  rs.Close
  cnn.Close
  Set rs = Nothing
  Set cnn = Nothing
End Sub

JB
 

dimgaz

XLDnaute Nouveau
Re : Alimenter une listbox

Bonjour,

Merci messieurs.
J'ai pu tester. J'ai remplacé le répertoire et le nom de fichier pour coller à ce qui me concerne.
J'ai une erreur renvoyée : Run-time error '-2147467259 (80004005)': [Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié.
J'ai oublié de donner des info ?

Merci d'avance.

Dim
 

Discussions similaires

Réponses
2
Affichages
608

Statistiques des forums

Discussions
312 225
Messages
2 086 411
Membres
103 201
dernier inscrit
centrale vet