remplissage cellule avec form + cases à cocher

arnaudbu

XLDnaute Occasionnel
Hello,

J'aimerais avoir un UserForm qui intègre automatiquement sous forme de case à cocher les noms présent en E3:E**. Si je change un nom ou en rajoute un bien sûr, les captions des cases à cocher devra se mettre à jour.

Quand je sélectionne C2, le Userform devra apparaitre et les noms que j'aurais sélectionner à l'aide des cases à cocher devront s'inscrire dans cette même cellule.

C'est assez complexe pour moi, donc si vous pouvez me guider. ;)

@++
 

Pièces jointes

  • Essai_form_nom.xls
    33.5 KB · Affichages: 119

Odesta

XLDnaute Impliqué
Re : remplissage cellule avec form + cases à cocher

Bonjour

A partir de votre exemple :
ajouter dans le userform une "Zone de list" ( ou ListBox )

Puis ajouter ce code :

Code:
Private Sub UserForm_Initialize()
Dim i
For i = 3 To Sheets("Feuil1").Range("E3").End(xlDown).Row
    ListBox1.AddItem Sheets("Feuil1").Cells(i, 5).Value
Next i
ListBox1.ListStyle = fmListStyleOption
End Sub

Ce qui aura pour effet de créer une liste avec une case à cocher et autant d'item que la colonne Nom


Cdt
Olivier
 

arnaudbu

XLDnaute Occasionnel
Re : remplissage cellule avec form + cases à cocher

J'ai remis le code dans une autre feuille pour adaptation.
J'ai configurer les options direct dans les propriétés de la list box.

Seulement, il me charge les données en E3 alors que j'ai mis B3.

Là je bloque et ne comprends rien:

Code:
Private Sub UserForm_Initialize()
Dim i
For i = 3 To Sheets("Donnees").Range("B3").End(xlDown).Row
    ListBox1.AddItem Sheets("Donnees").Cells(i, 5).Value
Next i
End Sub
 

arnaudbu

XLDnaute Occasionnel
Re : remplissage cellule avec form + cases à cocher

J'ai buché sur la récupération des valeurs de la liste dans un cellule.

J'ai ceci qui ne m'affiche qu'un résultat et pas toutes les cases cochées. J'aimerais que les noms soient séparés par des virgules ou des espaces.

Code:
Private Sub CommandButton1_Click()
Dim element_select As Boolean
Dim nb_element, i As Integer

element_select = False
 
nb_element = ListBox1.ListCount
 
For i = 0 To nb_element - 1
    If ListBox1.Selected(i) = True Then
        element_select = True
        Sheets("Rapport").Range("H6") = ListBox1.List(i)
    End If
Next i

If element_select = False Then
    Sheets("Rapport").Range("H6:N6").ClearContents
End If

Me.Hide

End Sub
 

arnaudbu

XLDnaute Occasionnel
Re : remplissage cellule avec form + cases à cocher

J'ai essayé ceci pour faire apparaitre le userform quand je sélectionne la cellule mais ça bug un peu:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Range("H6").Select = True Then
        FormParticipant.Show
    End If
    
End Sub
 

arnaudbu

XLDnaute Occasionnel
Re : remplissage cellule avec form + cases à cocher

Encore une question. Quand je modifie ma liste de noms et que je réouvre mon UserForm, les nouveaux noms ne sont pas changés.

Par contre si je ferme et ré-ouvre Excel -> pas de problèmes.

Comment "décharger" la ListBox pour forcer le chargement des nouvelles valeurs ??

@++
 

Discussions similaires

Réponses
16
Affichages
2 K
Réponses
5
Affichages
517