Accueil – Le CFO masqué › Forums › Excel › Checkbox dans un TCD
- Ce sujet contient 1 réponse, 1 participant et a été mis à jour pour la dernière fois par
Sibrulotte, le il y a 8 années.
-
AuteurMessages
-
22 février 2017 à 9 h 19 min #33893
Sibrulotte
ParticipantBonjour,
j’ai eu une demande intéressante de la part d’une collègue:
Elle souhaite créer un checklist de tâche par section. Dans un m^me onglet, elle souhaite pouvoir consulter et filtrer pour un client. (Chaque client a un ensemble de section et ses tâches). Donc: TCD avec une source qui liste les tâches par section par client.Cette liste est vouée à évoluer. et d’avoir des tâches qui s’insèrent un peu partout au fil du temps.
Jusqu’à date ça va bien. Elle souhaite maintenant avoir un checkbox pour signifier que la tâche est effectuée pour ce trimestre et qui l’as fait. J’ai écris une belle petite macro bien simple qui récupère le Environ(“Username”) pour aller l’inscrire dans…
Bon vous voyez, c’est pas évident de faire des Contrôle ActiveX qui sont relatifs à des lignes qui bougent éventuellement dans un TCD.
Que faire!
Je lui ai dit d’emblée que de faire de la saisie dans un TCD ne fonctionne pas, et qu’il faut saisir dans un tableau source.22 février 2017 à 13 h 45 min #33895Sibrulotte
ParticipantJ’ai trouvé ma réponse si jamais quelqu’un est intéressé:
j’ai un bouton aligné avec la tâche. Elle doit être très précisément alignée car le script va lire le topleftcell du bouton.‘définir la ligne du bouton
Dim b As Object, cs As Integer
Set b = ActiveSheet.Buttons(Application.Caller)
With b.TopLeftCell
cs = .row
End With‘ définir la cellule où retracer la ligne de la tâche
LigneA = Cells(cs, 9)‘inscrire à la ligne de la tâche le nom de l’utilisateur
Worksheets(“DATA”).Range(“F” & LigneA).Value = Environ(“Username”)Dim pt As PivotTable
Set pt = ActiveSheet.PivotTables(“Pivot1”)
pt.RefreshTable
Je vais donc inscrire dans ma table source le nom de l’utilisateur à la bonne ligne et rafraîchi le TCD. Petit détail, pour savoir à quel ligne écrire, il faut définir où dans ma source se situe la ligne. Pour ce faire:
Dans des colonnes masquées, je recrée le TCD avec un =A5 tout bête, je concatène les valeurs pour me faire une clé. Dans ma source, je me fais la même clé. Dans mes colonnes masquées je récupère la ligne de ma clé avec un EQUIV tout bête. Dans mon fichier example, EQUIV ne retrouvait pas mais recherchev oui, donc j’ai pris le long chemin…Il ne reste plus qu’à formater pour faire disparaître les boutons inutiles pour certains clients qui ont moins de sections/tâches.
bonne journée
Simon -
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.