XL 2013 Userform avec liste déroulante en fonction d'une pré-sélection

  • Initiateur de la discussion Initiateur de la discussion papc0
  • Date de début Date de début

papc0

XLDnaute Nouveau
Bonjour à tous,
Je suis très débutante en VBA et ce projet est trop complexe pour moi, peut-être pourriez vous m'aider;
J'ai une liste de noms (Ex. Colonne A) avec d'autres infos dans les colonnes suivantes.
J'aimerais (par p-e une checkbox ou autre) sélectionner des noms, et au moyen d'une macro (formulaire p-e...), choisir une catégorie (via liste déroulante) et qu'à toutes mes personnes sélectionnées, cette information se rajoute à la colonne E.

J'espère avoir été claire, et que quelqu'un aura une idée à me proposer.

Merci !!!
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour ou Bonsoir @papc0 , le Forum

Bienvenue sur XLD !!!

Un petit exemple démo, est plus efficace qu'un long discours je pense....
Tu regarderas ce que je fais, avec un UserForm 1, dans le Code de celui-ci, tu verras ceci :

VB:
Option Explicit

Private Sub UserForm_Initialize()
Dim MyWS As Worksheet
Dim MyPlage As Range, MyCell As Range

Set MyWS = ThisWorkbook.Worksheets("Sheet1")
Set MyPlage = MyWS.Range("A2:A" & MyWS.Range("A500").End(xlUp).Row) '<<<< On définit la plage de cellules non vides en colonne A

Me.ListBox1.Locked = True

    For Each MyCell In MyPlage
        If MyCell.Offset(0, 3) <> "" Then    '<<<< On regarde si la cellule à droite décallée de 3 (soit "D") n'est pas vide
            Me.ListBox1.AddItem MyCell.Value '<<<< On ajoute les noms qui vont être traités (visu seule)
        End If
    Next MyCell

    With Me.ListBox2
    .AddItem "Catégorie AAA"                 '<<<< On ajoute les Catégories en "dur"
    .AddItem "Catégorie BBB"
    .AddItem "Catégorie CCC"
    .AddItem "Catégorie DDD"
    .AddItem "Catégorie EEE"
    End With

End Sub


Private Sub CommandButton1_Click()
Dim MyWS As Worksheet
Dim MyPlage As Range, MyCell As Range

Set MyWS = ThisWorkbook.Worksheets("Sheet1")
Set MyPlage = MyWS.Range("A2:A" & MyWS.Range("A500").End(xlUp).Row)

For Each MyCell In MyPlage
    If MyCell.Offset(0, 3).Value <> "" Then            '<<<< On regarde si la cellule à droite décallée de 3 (soit "D") n'est pas vide
        MyCell.Offset(0, 4).Value = Me.ListBox2.Value  '<<<< On écrit la catégorie en décallé de 4, soit "E"
    End If
Next MyCell
End Sub

Pour que ca fonctionne, tu écris ce que tu veux en colonne "D" les Noms seront pris en compte comme étant "sélectionnés"...

Bonne découvert du monde VBA et du monde XLD aussi ;) !

Bien à toi, à vous
@+Thierry
 

Pièces jointes

Discussions similaires

Réponses
4
Affichages
294
Réponses
36
Affichages
2 K

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
315 283
Messages
2 118 012
Membres
113 408
dernier inscrit
lausablk