Créer autant de checkbox que de cellules non vides

majestic12

XLDnaute Nouveau
Bonjour à tous,

Tant bien que mal j'essaye d'avancer dans mon projet d'application pour le suivit des travaux d'une équipe technique .
Pour l'instant j'ai renoncer à la compatibilité openoffice et linux. Je verrai à ça plus tard ;)

Actuellement je suis bloqué avec un petit problème que je suis certain que vous arriverez à m'aider à résoudre :
Dans un userform j'ai créé 2 frames (frame1 et frame2) qui vont chacunes contenir des checkboxs. Cependant j'aimerai que chacunes d'elles contiennent autant de checkbox qu'il y a de "données" dans une feuille.
J'ai déjà réussis à "affecter" un caption à un checkbox en fonction du contenu d'une cellule
Code:
CheckBox1.Caption = Range("a1").Value
Mais comment faire pour qu'il y ait autant de checkbox que de cellules (remplies) dans la colonne A et que chaque checkbox ait le caption du contenu de la cellule ?
Je ne sais pas à l'avance combien il va y en avoir, et au fur et a mesure de l'utilisation, les contenus des cellules vont changer.
Je pense qu'il faut utiliser un For Next, mais je ne sais pas comment m'y prendre exactement.

Merci d'avance pour votre aide et vos réponses pertinantes :)
 

majestic12

XLDnaute Nouveau
Re : Créer autant de checkbox que de cellules non vides

Merci beaucoup pour ton aide Hulk, mais ce n'était pas exactement ma demande.

j'ai réussis à faire ce que je voulais faire.
Voici le bout de code avec mon adaptation :
VB:
nb_agents = Application.WorksheetFunction.CountA(Feuil2.Range("$A:$A"))
For i = 1 To nb_agents
Set ajoutagent = Frame_agents.Controls.Add("forms.checkbox.1", Name:="ajoutagent" & i) ' partie la plus importante
Frame_agents.Controls("ajoutagent" & i).Top = 15 * i
Frame_agents.Controls("ajoutagent" & i).Caption = Feuil2.Range("a" & i)
Next i
If nb_agents > 8 Then
    Frame_agents.Height = 135
    Frame_agents.Width = 155
    Frame_agents.ScrollBars = fmScrollBarsVertical
    Frame_agents.ScrollHeight = (16 * nb_agents) + 20
    Else
    Frame_agents.Height = 135
    Frame_agents.Width = 150
    Frame_agents.ScrollBars = fmScrollBarsNone
End If

Cependant, j'aurai encore besoin d'un petit coup de main :
Dans une autre frame je créé selon la même méthode des optionbutton. J'y accole des textbox. et je masque ces derniers, que je ne veux afficher que si l'optionbutton est sélectionner.. Cependant, mon morceau de code ne fonctionne pas avec cette dernière condition.
Voici mon code (sensiblement identique au précedent)
VB:
nb_taches = Application.WorksheetFunction.CountA(Feuil4.Range("$A:$A"))
For i = 1 To nb_taches
Set ajouttache = Frame_taches.Controls.Add("forms.optionbutton.1", Name:="ajouttache" & i) ' partie la plus importante
Frame_taches.Controls("ajouttache" & i).Top = 15 + 15 * i
Frame_taches.Controls("ajouttache" & i).Caption = Feuil4.Range("a" & i)

ajoutqtetache = Frame_taches.Controls.Add("forms.textbox.1", Name:="ajoutqtetache" & i)
Frame_taches.Controls("ajoutqtetache" & i).Top = 15 + 15 * i
Frame_taches.Controls("ajoutqtetache" & i).Width = 30
Frame_taches.Controls("ajoutqtetache" & i).Left = 137
Frame_taches.Controls("ajoutqtetache" & i).Visible = False
Frame_taches.Controls("ajoutqtetache" & i).Value = 0

Next i
If nb_tache > 8 Then
    Frame_taches.Height = 137
    Frame_taches.Width = 175
    Frame_taches.ScrollBars = fmScrollBarsVertical
    Frame_agents.ScrollHeight = (16 * nb_taches) + 20
    
    Else
    Frame_taches.Height = 135
    Frame_taches.Width = 170
    Frame_taches.ScrollBars = fmScrollBarsNone
    End If
End Sub


Private Sub Frame_taches_Click()
nb_taches = Application.WorksheetFunction.CountA(Feuil4.Range("$A:$A"))
For i = 1 To nb_taches
    If Frame_taches.Controls("ajouttache" & i) = True Then
    Frame_taches.Controls("ajoutqtetache" & i).Visible = True
    Else
    Frame_taches.Controls("ajoutqtetache" & i).Visible = False
    End If
Next i
End Sub

En résumer : Comment créer une instruction qui se lancera dès qu'un clic interviendra sur optionbutton créé de la façon suivante :
VB:
Set ajouttache = Frame_taches.Controls.Add("forms.optionbutton.1", Name:="ajouttache" & i)

Merci d'avance pour votre aide :)
 

Discussions similaires

Statistiques des forums

Discussions
312 677
Messages
2 090 824
Membres
104 677
dernier inscrit
soufiane12