Reporter valeurs checkbox cochés sur feuille VBA [Résolu/Fermé]

Signaler
Messages postés
42
Date d'inscription
mercredi 31 octobre 2012
Statut
Membre
Dernière intervention
17 avril 2013
-
Messages postés
42
Date d'inscription
mercredi 31 octobre 2012
Statut
Membre
Dernière intervention
17 avril 2013
-
Bonsoir à tous,

Une fois de plus je viens solliciter l'aide de la communauté :-).
Je bloque sur des lignes de codes depuis un moment.

Ce que j'essaie de faire:

J'ai un userform qui contient plusieurs checkbox. Je souhaiterais que les valeurs des checkbox cochés se reportent ligne après ligne, dans la colonne d'une feuille excel, prévue à cet effet.

Je me suis inspiré des différents forums et je suis parvenu à pondres les lignes de codes suivantes:

Private CommandButton1_Click()
Dim i As Integer, J As Integer, Ctrl As Control
ActiveSheet.Range("E24").Select 'la cellule dans laquelle la 1ère valeur cochée sera reportée'

1- Je compte le nombre de checkbox cochés:

For Each Ctrl In Userform1.Controls
If TypeName(Ctrl) = "CheckBox" Then
If Ctrl.Value = True Then
i = i + 1
End If
End If
Next Ctrl

2- Je reporte la valeur de chaque checkbox cochés, dans la cellule E24, puis E25, etc.

For J = 1 To i
For Each Ctrl In Userform.Controls
If TypeName(Ctrl) = "CheckBox" Then
If Ctrl.Value = True Then
ActiveCell.Offset(J - 1, 0) = Ctrl.Value
End If
End If
Next J
End Sub

Je me rends bien compte que la seconde partie de mon code est "bancale", mais je n'ai trouvé mieux.

Est ce que quelqu'un peu m'aider? :-)

4 réponses

Messages postés
42
Date d'inscription
mercredi 31 octobre 2012
Statut
Membre
Dernière intervention
17 avril 2013
6
C'est impeccable!

J'ai juste eu a rajouter le "Next ctrl" qui manquait, pour que ça fonctionne!!


Merci beaucoup! :)


Bonne soirée!

Kayna
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 76687 internautes nous ont dit merci ce mois-ci

Messages postés
42
Date d'inscription
mercredi 31 octobre 2012
Statut
Membre
Dernière intervention
17 avril 2013
6
Bonjour le Pingou,

Je me permets d'abuser de ta gentillesse. :-)
Jesouhaiterais réaliser la même manoeuvre mais cette fois-ci à partir d'une textbox, c'est-à dire que je souhaite reporter les différentes valeurs renseignées dans une textbox sur une plage de données excel.

J'ai donc adapter tes lignes de codes en fonction et j'obtiens ceci:

Private CommandButton1_Click()
Dim Ctrl As Control
Dim j As Integer
j = 1
For Each Ctrl In SITES.Controls
If Range("E24").Offset(j - 1, 0) = Ctrl.Object.Value
j = j + 1
End If
Next Ctrl
Unload Me
End Sub

le code fonctionne mais pas comme je le voudrais. En fait, toutes les entrées du (de la?) textbox sont considérées comme une seule valeur qui est reportée dans la cellule E24. J'obtiens par exemple ces 4 villes suivantes, les unes en-dessous des dans la même cellule. Or je voudrais qu'elles appraissent dans 4 cellules différentes. Peux-tu m'aider? :-)

"Paris
Marseille
Nice
Lyon"
Messages postés
9820
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
27 novembre 2020
1 097
Bonjour,
Essayer cette procédure :
Private CommandButton1_Click()
Dim Ctrl As Control
Dim j As Integer
j=1
For Each Ctrl In Userform.Controls
   If TypeName(Ctrl) = "CheckBox" Then
      If Ctrl.Value = True Then
         Range("E24").Offset(J - 1, 0) = Ctrl.Value
         j=j+1
      End If
   End If
End Sub

Messages postés
42
Date d'inscription
mercredi 31 octobre 2012
Statut
Membre
Dernière intervention
17 avril 2013
6
J'ai fini par trouver!

Désolée pour le dérangement. ;)



Kayna.