Récupération infos formulaire VBA

Bonjour,

J'aurais souhaité, dans l'onglet Tableau de bord du fichier ci-joint, pouvoir cliquer sur un bouton qui afficherait un formulaire. Dans ce formulaire si on sélectionne "Ce" tous les noms de projet en colonne A de l'onglet "Synthèse Ce" apparaitraient avec toutes les informations associées (M, S, E, date de mise à jour, etc.). Il en serait de même si on sélectionnait "DR" dans le formulaire (alors renvoi vers les informations dans l'onglet "DR").

Quelqu'un saurait m'aider à faire cela ? Cela m'aiderait beaucoup !

Merci par avance !

12fichier-test.xlsm (35.73 Ko)

Bonjour,

Encore une fois un demandeur qui se trompe dans l'ouverture d'une userform... c'est dingue le nombre de fois que je vois cela dans les fichiers !
Ce n'est pas Private Sub Formulaire_initialize() mais Private Sub Userform_initialize()

Bon d'abord où se trouve la feuille fd dans votre fichier ? Là on voit --> Sheets("Synthèse fin. cell. Recherche")

Rem : évitez les points et espaces dans le nom de feuilles. Mettez un tiret ou un souligné par exemple. Cela vous évitera des erreurs.

A vous relire pour que je continue sur votre demande

Bonjour jwlsd, Salut Dan

Si je puis me permettre, en définissant une variable pour les ListObject,
en renommant les boutons et les TextBox pour qu'ils soient dans l'ordre des colonne

Voici le code modifié

Option Explicit

Dim fd As Worksheet, fT As Worksheet
Dim ln&
Dim Lo As ListObject

Private Sub Cbn_CE_Click()
  Set Lo = Sheets("Synthèse Ce").ListObjects(1)
  Me.ListBox1.List = Lo.DataBodyRange.Columns(1).Value
End Sub

Private Sub Cbn_DR_Click()
  Set Lo = Sheets("Synthèse DR").ListObjects(1)
  Me.ListBox1.List = Lo.DataBodyRange.Columns(1).Value
End Sub

Private Sub ListBox1_Click()
  Dim Col As Integer
  ln = ListBox1.ListIndex
  ' Les Textbox ont été numérotés dans l'ordre des colonnes (plus simple)
  For Col = 2 To Lo.DataBodyRange.Columns.Count
    Me.Controls("TextBox" & Col - 1).Value = Lo.DataBodyRange.Cells(1 + ln, Col)
  Next Col
End Sub

Voici le fichier modifié

Edit : L'évènement Intialize ne sert à rien

A+

Merci beaucoup @BrunoM45 c'est exactement ce que je souhaitais faire ! Merci !

@Dan je suis désolée je ne comprends pas bien le problème, d'ailleurs dans le fichier de BrunoM45 le nom "Formulaire" a été conservé et cela fonctionne

@Dan je suis désolée je ne comprends pas bien le problème, d'ailleurs dans le fichier de BrunoM45 le nom "Formulaire" a été conservé et cela fonctionne

Lorsque vous utilisez l'instruction INITIALIZE pour ouvrir une userform, le nom de la macro est toujours Private Sub Userform_initialize()
Vous ne devez jamais remplacer Userform par le nom de votre Userform qui, ici était "Formulaire".

Cela fonctionne avec ce que Bruno vous a proposé parce que vous n'avez pas besoin de charger un objet (par exemple type Combo) dans l'userform avant de l'utiliser; votre bouton étant lié à la macro Bouton qui utilise l'instruction "formulaire.show"
L'ouverture se fait donc sans passer par le code Initialize et que vous pouvez supprimer (comme Bruno vous l'a précisé) puisqu'il ne sert pas

Crdlt

Rechercher des sujets similaires à "recuperation infos formulaire vba"