Creer une checklist dynamique

Bonjour tout le monde

J'espère que vous n'êtes pas tous en vacances !

Voici mon souci :

Pour contrôler un type de document particulier, je me créer une liste de l'ensemble des éléments que doit contenir le document.

A coté de chaque élément, j'ai inséré une case à cocher pour dire "l'élément est bien présent".

Un peu plus loin dans la feuille de calcul, je voudrait faire une fiche de synthèse qui récapitule tout ce qui manque (donc toutes les cellules liées a une case non cochée). ça, j'arrive à peu près à le faire, avec une formule "SI cellule liée à la case est VRAI, tu n'affiches rien, sinon tu affiches le nom de l'élément manquant". Mais le problème, c'est qu'en faisant comme ça, c'est que j'ai des lignes vides entre deux éléments manquants. Si par exemple dans ma liste je trouve une case non cochée, puis 5 cases cochées et de nouveaux une case vide, dans ma fiche de synthèse je vais avoir le nom du premier élément manquant, 5 lignes vides puis mon second.

Comment faire pour avoir tous les éléments manquants qui se rangent tous seuls les uns après les autres sans lignes vides entre chaque ?

J'espère que vous arriverez à me comprendre !

Merci beaucoup

La checklist :

samf6vzuw5

La fiche de synthèse :

02zkei9hxz

Bonjour,

sans fichier je ne pourrai que t'orienter vers des solutions, en clair il faut que tu utilises une fonction INDEX, et que tu alimentes le numéro de ligne avec les numéros de ligne que tu vas trouver, tu peux renvoyer des numéros de lignes différents avec PETITE.VALEUR par exemple, et tu fais varier k avec Ligne() pour incrémenter de 1 quand tu passes à la ligne suivante. Pour avoir les numéros de ligne, tu peux faire un SI(test;Ligne()).

J'espère que ça t'aidera

Bonjour Ausecour, merci pour ta réponse !

Voici le fichier si ça peut t'aider

De mon coté je viens de découvrir la fonction INDEX ^^ je regarde quelques applications pour l'apprivoiser et je reviens vers toi si je coince toujours

D'ailleurs, j'ai une question qui me vient là, on ne peut pas dire à excel "lie la case à cocher à la cellule dans laquelle elle est située".

Par exemple, si ma case est en B4, alors elle est liée automatiquement à B4.

Ou suis-je condamné à faire "clic droit, format de contrôle, cellule liée, sélectionner la cellule etc..." pour chacune des bien trop nombreuses case de la liste ?

Bonjour,

bon courage pour la prise en main de cette fonction

pour les cellules liées, une petite astuce que j'utilise:

Private Sub Worksheet_Activate()
Dim Ctl As OLEObject
For Each Ctl In Me.OLEObjects
    If Ctl.progID Like "*CheckBox*" Then
        Ctl.LinkedCell = Ctl.TopLeftCell.Address
        Ctl.TopLeftCell = Ctl.TopLeftCell <> ""
    End If
Next
End Sub

après on peut très bien utiliser autre chose pour le faire, le principe est là

Je te joins un fichier exemple:

164checkbox.xlsm (24.96 Ko)

Bonjour Ausecour

J'ai essayé ton code pour les cases, ça change la vie ahah merci beaucoup !

J'explore une nouvelle piste pour nettoyer mon tableau de synthèse (je n'ai pas réussi à relier la fonction INDEX avec les ckeckbox...)

Mais après quelque recherches j'ai trouvé le tout petit code suivant, qui m'avait l'air bien plus simple à faire tourner :

With ThisWorkbook.Worksheets("LaFeuille").Range("A1")
    If .Value = "Le Mot" Then .EntireRow.Delete
End With

Appliqué à mon cas ça donne ça :

(Après avoir inséré un bouton dans la feuille concernée)

Private Sub CommandButton1_Click()
With ThisWorkbook.Worksheets("Synthèse").Range("A13:D300")
    If .Value = "0" Then .EntireRow.Delete
End With
End Sub

Quand je clique sur le bouton, j'ai l'erreur suivante :

g5ys wliq

Qu'en penses-tu ?

Bonjour,

Je pense que tu te prends un peu la tête à vouloir passer par macro pour ça

Je te propose une solution:

par contre, apparemment on ne peux pas mettre de formule matricielle dans une fusion de cellules... du coup j'ai mis le résultat de la formule matricielle à côté qui renvoie le numéro de ligne et ensuite j'utilise index pour renvoyer la valeur à la ligne correspondante

Ah d'accord, le message d'erreur était donc causé par mes cellules fusionnées ?

En tout cas la solution que tu proposes me vas bien, je vais partir sur cette base là.

Merci d'avoir pris le temps de m'expliquer tout ça

Re,

non je pense que ton problème d'incompatibilité de type venait du fait que tu voulais regarder si ta valeur qui selon moi devait être un nombre, était égale à "0" qui est du texte, ces types sont incompatibles, c'est sûrement ce qui a fait planter ta macro

Rechercher des sujets similaires à "creer checklist dynamique"