Checkbox - choix de l'effectif

Bonjour,

Je débute totalement en VBA et j'ai créé un Userform pour remplir un tableau pour le suivi d'intervention.

Pour chaque intervention, j'ai un effectif d'agents engagé.

Mon but : pouvoir, dans ce userform, avoir une liste de tout mon effectif et choisir qui était présent et que ces informations, une fois le userform rempli, avec l'intervention, soient stockées dans le fichier excel dans la colonne prévue sous "effectif".

Je clarifie volontiers au besoin :-)

Merci pour le coup de main,

Bonne journée,

Bonjour et bienvenue

Sans données confidentielles

Cordialement

J'ai vite recréé une base neutre pour mon fichier, en gardant que ce que j'ai comme question et en supprimant tout ce qui est confidentiel, j'espère que ça paraîtra un peu plus clair et surtout réalisable.

Gardez bien à l'esprit que je suis ultra novice en VBA et que je teste les réactions des commandes en parcourant des forums, mais que je suis suffisamment malin pour adapter une réponse à mon fichier de travail confidentiel

En grand merci pour le coup de pouce et je prends toutes les idées et améliorations possibles, avec intérêt !

Chaps

Gardez bien à l'esprit que je suis ultra novice en VBA

On va y aller pas à pas. Dans votre fichier faites ceci :

1. Modifiez le nom de votre feuille Liste déroulante en "Listes" ou "Liste_deroulante" (Sans espaces et accents). J'ai choisi "listes"
2. Allez dans l'userform et sélectionnez la combobox1.
3. Supprimez votre valeur "Emplacements" dans Rowssource (Evitez cette instruction qui pose parfois des soucis en lui préférant la méthode ADDITEM par exemple)
4. Coller le code ci-dessous dans l'userform (ce code sera exécuté à l'ouverture de l'userform)

Private Sub UserForm_Initialize()
Dim i As Integer 'declaration de variable

With Worksheets("Listes")
    For i = 2 To .Range("B" & .Rows.Count).End(xlUp).Row 'on part de la ligne 2 jusque la derniere ligne
        ComboBox1.AddItem .Range("B" & i).Value 'ajoute de chaque valeur de la colonne B
    Next i
End With
End Sub

Avant d'aller plus loin, dites moi si ok pour vous

Juste que là c'est tout bon, c'est implémenté

OK. Maintenant on passe au sujet de votre demande.
1. Allez dans l'userform et sélectionnez l'objet Listbox1
2. Allez dans les propriétés :
-- Supprimez la valeur Rowssource
-- Allez à la valeur Lifestyle et choisissez la valeur "lifestyleoption" dans la liste déroulante
-- Eventuellement : allez à la valeur "Multiselect" et choisissez la valeur "fnmultiselectmulti" (option à choisir si vous voulez pouvoir sélectionner plusieurs agents en même temps dans la liste)
3. Dans le code que je vous proposé avant, ajoutez cette ligne juste en dessous de "Combobox1.additem=....."

ListBox1.AddItem .Range("A" & i).Value

Une fois fait, relancez votre userform
Dites moi si ok.

NB :
- vous pouvez supprimer les noms définis dans le gestionnaire de noms
- Pour info vous auriez pu garder les noms définis et les mettre dans la macro proposée ici au lieu de boucler avec la variable i. Dans ce cas il aurait fallu tenir compte de l'ajout éventuel de données dans votre feuille Listes en changeant les formules dans le gestionnaire de noms pour qu'elles prennent en compte les ajouts d'effectifs ou emplacements. Bien entendu, le code proposé serait différent.

C'est parfait, ça fonctionne exactement comme je le souhaitais. je vais transposer ça dans mon fichier principal et si j'ai d'autres questions, je repasserai par ici !

Un tout grand merci pour le coup de main et le temps accordé

Bonne journée,

Chaps

Parfait.

Vous pouvez également prendre le code ci-dessous pour l'enregistrement

Private Sub CommandButton1_Click() 'Bouton Enregister
'Saisie des informations dans le formulaire
Dim ligne As Long
With Sheets("DATABASE")
    ligne = .Range("A" & .Rows.Count).End(xlUp).Row + 1
    .Range("A" & ligne) = TextBox1.Value
    .Range("B" & ligne) = ListBox1.Value
    .Range("C" & ligne) = ComboBox1.Value
End With
Unload Me
End Sub

Cordialement

Génial, merci et bonne journée, à une prochaine sans doute

Rechercher des sujets similaires à "checkbox choix effectif"