Cases à cocher + concaténer

Bonjour,

Tout d'abord je tiens à vous adresser tous mes vœux pour cette nouvelle année!

Voilà mon souci, je souhaite faire un document dynamique à l'aide de cases à cocher ainsi que la fonction concaténer, mais je rencontre au moins 3 soucis.

Le 1er souci, c'est que les textes se mettent à la suite sans interligne donc ça fait des pavés et ça rend la lecture pas facile.

Le 2ème souci, c'est que si je ne coche pas toutes les cases ça me laisse une ligne blanche. Dans l'exemple il y a 4 articles mais dans le vrai fichier il pourra y en avoir une centaine, donc si je sélectionne la ligne 1, la ligne 25 et la 75, je vais avoir des espaces énormes.

Le 3ème souci, c'est que je perds la mise en page des définitions.

J'ai pris l'option de regrouper les définitions dans la même cellule car je ne sais pas comment copier des cellules les unes dans les autres sans sans avoir de trou, mais je me rends compte que j'ai le même souci en regroupant!

Donc si il existe une solution pour avoir une définition par cellule ça serait encore mieux!

Je reste à votre disposition si vous avez besoin de plus d'information.

Vous remerciant par avance pour vos retours.

Cordialement

Denis

12cases-a-cocher.xlsx (27.02 Ko)

Bonsoir sdenis92, le forum,

Tous mes vœux également pour cette nouvelle année.

Un essai....avec une formule que j'avais en stock...

25cases-a-cocher.xlsx (21.30 Ko)

Cordialement,

Bonjour à tous,

Un essai également avec une formule unique pour M365 :

=LET(c;B5:B8;t;D5:D8;FILTRE(t;c;""))
ou
=FILTRE(D5:D8;B5:B8;"")

ou si on veut tout dans la même cellule en mettant le renvoi à la ligne automatique :

=JOINDRE.TEXTE(CAR(10);1;FILTRE(D5:D8;B5:B8;""))

Salut le forum,
Salut les as,

Meilleurs voeux à tous !

Premier jet, en VBA... évidemment

With Worksheets("BDD")
    tTab = .Range("B1:B7").Value
    For x = 1 To 4
        If Me.OLEObjects("Chk" & x).Object.Value = True Then
            sTemp = LCase(Me.OLEObjects("Chk" & x).Object.Caption)
            For y = 1 To UBound(tTab, 1)
                If InStr(LCase(tTab(y, 1)), sTemp) > 0 Then
                    iRow = iRow + 1
                    .Range("B" & y).Copy Destination:=Range("F" & iRow)
                End If
            Next
        End If
    Next
End With

A+

10sdenis.xlsm (29.75 Ko)

Bonjour,

Je vous remercie pour vos retours, je vais regarder ce qui est le plus facile à mettre en place en fonction du fichier final entre une formule ou du code VBA.

Merci énormément pour votre aide!

Cordialement

Denis

Rechercher des sujets similaires à "cases cocher concatener"