Bonjour,
J'ai fait une macro qui fonctionne tout à fait, mais je pense que la syntaxe utilisée et bien lourde.
En fait pour cette maro, toutes mes combobox ont la même source et j'utilise un userform pour selectionner plusieurs membres faisant partie d'un nouveau projet.
Donc dans le userform j'ai une textbox pour le nom du projet et plusieurs combobox pour renseigner les membres participant au projet.
Mon code actuel sert a rajouter du texte dans les projets déjà affecté au membre selectionné dans la combobox,
et à rajouter "x" dans une colonne où je mets des croix pour chaque projets auquel le membre a participé.
Alors pour avoir une macro qui tourne mieux j'aimerais utiliser une boucle for dans le code suivant, mais je bloque sur la syntaxe.
Comment définir membre1, membre2.. et CB1, CB2.. pour pouvoir faire une boucle for du type
for i = 1 to 3 (dans l'exmple plus haut)
Merci d'avance
J'ai fait une macro qui fonctionne tout à fait, mais je pense que la syntaxe utilisée et bien lourde.
Code:
Worksheets("Belts (2012)").Activate ' Active la feuille Belts (2012)
projet = TextBox1.Value 'Définit les valeurs de mes combobox
membre1 = CB1.Value
membre2 = CB2.Value
membre3 = CB3.Value
On Error Resume Next
If membre1 <> "" Then 'Test si membre1 a été renseigné
x1 = [C10:C500].Find(what:=membre1, LookIn:=xlValues, lookat:=xlPart, SearchOrder:=xlByColumns).Address
Range(x1).Offset(0, 5).Select
ActiveCell.Value = ActiveCell.Value & Chr(10) & "membre" & " " & projet 'rajoute le projet à dans la liste des projets de la personne sélectionnée
Range(x1).Offset(0, 4).Select
ActiveCell.Value = ActiveCell.Value & "x" 'rajoute une croix dans la colonne "membre" de la personne sélectionnée
End If
If membre2 <> "" Then 'Test si membre2 a été renseigné
x2 = [C10:C500].Find(what:=membre2, LookIn:=xlValues, lookat:=xlPart, SearchOrder:=xlByColumns).Address
Range(x2).Offset(0, 5).Select
ActiveCell.Value = ActiveCell.Value & Chr(10) & "membre" & " " & projet
Range(x2).Offset(0, 4).Select
ActiveCell.Value = ActiveCell.Value & "x"
End If
If membre3 <> "" Then
x3 = [C10:C500].Find(what:=membre3, LookIn:=xlValues, lookat:=xlPart, SearchOrder:=xlByColumns).Address
Range(x3).Offset(0, 5).Select
ActiveCell.Value = ActiveCell.Value & Chr(10) & "membre" & " " & projet
Range(x3).Offset(0, 4).Select
ActiveCell.Value = ActiveCell.Value & "x"
End If
Unload UserForm1
En fait pour cette maro, toutes mes combobox ont la même source et j'utilise un userform pour selectionner plusieurs membres faisant partie d'un nouveau projet.
Donc dans le userform j'ai une textbox pour le nom du projet et plusieurs combobox pour renseigner les membres participant au projet.
Mon code actuel sert a rajouter du texte dans les projets déjà affecté au membre selectionné dans la combobox,
et à rajouter "x" dans une colonne où je mets des croix pour chaque projets auquel le membre a participé.
Alors pour avoir une macro qui tourne mieux j'aimerais utiliser une boucle for dans le code suivant, mais je bloque sur la syntaxe.
Comment définir membre1, membre2.. et CB1, CB2.. pour pouvoir faire une boucle for du type
for i = 1 to 3 (dans l'exmple plus haut)
Merci d'avance