Alimenter une listbox

1

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 Posté le 24 mars 2015, 15:14
par dimgaz
Répondre
1

Bonjour,

Supposons que la listbox s'appele lstBox.

Voici ce qu'il faut mettre dans l'évenement Activate du UserForm.

Private Sub UserForm_Activate()
  'Déclaration de classeur
  Dim wb As Workbook
  'Déclaration de feuille
  Dim ws As Worksheet
  'Déclaration de variable d'index de lignes
  Dim i As Integer
 
  'Affectation de wb au classeur actif
  Set wb = ActiveWorkbook
  'Affectation de ws à la feuille "Acteurs"
  Set ws = wb.Sheets("Auteurs")
 
  'On part de la ligne 2 jusqu'à la ligne 4
  For i = 2 To 4
   ' On ajoute chaque valeur lue dans la feuille "Acteurs"
   ' à la listbox
  lstBox.AddItem ws.Range("C" & i).Value
  Next i

   
  Set ws = nothing
  Set wb = nothing
 
End Sub

Voilà. :-)


Oly

oly Posté le 25 mars 2015, 12:06
par oly

Si vous n'êtes pas inscrit sur le site, vous pouvez poster librement (en tant qu'invité).
Pour cela, indiquez un pseudonyme (nom d'utilisateur) et une adresse email :