Comment selectionner des cellules contigue ou non suivant des checkbox

Salut cher frère. je suis nouveau dans l'utilisation des codes vba. j'ai un problème mais j'arrive pas à trouver solution. si quelqu'un peut m'aider c'est un devoir à remettre. En fait, j'ai un userform qui comporte 36 checkbox nommé checkbox_1 à checkbox_36 et une base de données excel dont les entêtes font aussi 36 ; Je voudrais qu'à chaque fois que je coche un ou plusieurs checkbox de l'userform de façon aléatoire, les cellules correspondante (A1,B1.....AJ1) qui sont des entêtes soient sélectionnées suivant le nombre de checkbox coché. aidez moi . merci

16monexercice.xlsm (15.20 Ko)

Hello,

Une petite bidouille en vitesse

Private Sub CommandButton1_Click()
With UserForm1
    compteur = 0
    For i = 1 To 36 'Boucle sur tous les controls
        If .Controls("CheckBox_" & i) = True Then compteur = compteur + 1 'On stocke le nombre de checkbox cochées dans une variable
    Next
compteur2 = 0 'Deuxième compteur
  For i = 1 To 36 'Boucle sur tous les controls
    If .Controls("CheckBox_" & i) = True And compteur2 < compteur - 1 Then 'si Checkbox cochée + Compteur2 < nb checkbox cochées - 1
    Plage = Plage & Sheets(1).Cells(1, i).Address + "," 'Definit la plage avec address + attends une autre address
    compteur2 = compteur2 + 1 'compteur2 +1
    ElseIf Controls("CheckBox_" & i) = True And compteur2 = compteur - 1 Then 'sinon si cochée + compteur2 = compteur-1
      Plage = Plage & Sheets(1).Cells(1, i).Address 'ajout de l'adresse sans autre address derrière car dernière address
    End If
   Next i
End With
Range(Plage).Select
End Sub

R@g

superbe RAG c'est exactement ce que je voulais. tu m'as sauvé. merci infiniment. et si après avoir sélectionner je devrais exporter la selection en cours sur une nouvelle ou dans un nouveau classeur je ferai comment? excuse beaucoup pour le dérangement

Dans une feuille ça donne ça :

Private Sub CommandButton1_Click()
Dim Tableau As Variant
With UserForm1
    compteur = 0
    For i = 1 To 36 'Boucle sur tous les controls
        If .Controls("CheckBox_" & i) = True Then compteur = compteur + 1 'On stocke le nombre de checkbox cochées dans une variable
    Next
compteur2 = 0 'Deuxième compteur
  For i = 1 To 36 'Boucle sur tous les controls
    If .Controls("CheckBox_" & i) = True And compteur2 < compteur - 1 Then 'si Checkbox cochée + Compteur2 < nb checkbox cochées - 1
    Plage = Plage & Sheets(1).Cells(1, i).Address + "," 'Definit la plage avec address + attends une autre address
    Tableau = Tableau + Sheets(1).Cells(1, i).Value + ","
    compteur2 = compteur2 + 1 'compteur2 +1
    ElseIf Controls("CheckBox_" & i) = True And compteur2 = compteur - 1 Then 'sinon si cochée + compteur2 = compteur-1
      Plage = Plage & Sheets(1).Cells(1, i).Address 'ajout de l'adresse sans autre address derrière car dernière address
    Tableau = Tableau & Sheets(1).Cells(1, i).Value
    End If
   Next i
End With
Range(Plage).Select
i = 1
Dim arr() As String
arr = Split(Tableau, ",")
For Each element In arr
    Sheets(2).Cells(1, i).Value = element
    i = i + 1
Next

End Sub
Rechercher des sujets similaires à "comment selectionner contigue suivant checkbox"