Syntaxe pour boucle for

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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

silvin38

XLDnaute Nouveau
Bonjour,

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
 
Re : Syntaxe pour boucle for

Bonjour Silvin38,

Code:
Worksheets("Belts (2012)").Activate ' Active la feuille Belts (2012)
   
    Dim i As Integer
    projet = TextBox1.Value         'Définit les valeurs de mes combobox

        
    On Error Resume Next
      
For i = 1 To 3 
Membre = Me.Object("CB" & i).Value
    If membre <> "" Then   'Test si membre1 a été renseigné
        x1 = [C10:C500].Find(what:=membre, 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
Next i 
Unload Userform1
End Sub

A tester,
Sinon peut-être mettre un petit fichier exemple sans données confidentielles 🙂


Bonne journée
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
461
Réponses
4
Affichages
1 K
Réponses
0
Affichages
1 K
Retour