Checkbox dans un TCD

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 7 années et 1 mois.
2 sujets de 1 à 2 (sur un total de 2)
  • Auteur
    Articles
  • #33893
    Sibrulotte
    Participant

    Bonjour,
    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.

    #33895
    Sibrulotte
    Participant

    J’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

2 sujets de 1 à 2 (sur un total de 2)
  • Vous devez être connecté pour répondre à ce sujet.