Affichage de caption de case à cocher dans une cellule

Bonjour,

Je débute actuellement avec VBA et comment vous dire que je galère :(

Je vous explique mon problème, j'ai besoin de concaténer plusieurs captions de case à cocher dans une cellule séparer par une virgule. Les cases à cocher sont toutes dans la cellule "Contraintes diverses" (voir sur l'image) et j'aimerai mettre le texte en arrière plan sans visibilité de l'utilisateur. (ex : afficher "env, pollution, pyro" si ces 3 cases sont cochées)

2022 10 05 15 52 31 a2pm23 fiches bn version sid vf xlsx excel

Je ne peux malheureusement donner le fichier complet donc je vous fait une capture d'écran.

Merci d'avance

Bonjour

Si c'est juste pour le rendre invisible ne suffit-il pas de mettre le texte de la même couleur que le fond.

Bonjour,

Je me suis mal exprimée, il faut que je recupere les libellés des cases cochées pour creer une chaine de caractere. Il faut que je mette cette chaine de caractères dans une cellule pour qu'un autre programme la recupere.

Merci d'avance

Sans fichier difficile de faire quoique ce soit. On ne sait même pas si les cases à cocher sont des activeX ou pas. Au moins un extrait du fichier serait plus qu'utile.

Voici le fichier en allégé

8fichebn.xlsx (60.03 Ko)

En VBA dans un module standard, la concaténation se trouve en cellule "G2"

Option Explicit

Sub RecupCheckBox()

  Dim concat As String
  Dim obj As Shape

  For Each obj In ActiveSheet.Shapes
    If Left(obj.Name, 5) = "Check" Then
      obj.Select
      If Selection.Value = 1 Then
        concat = concat & Selection.caption & ";"
      End If
    End If
  Next obj

 Range("G2") = Left(concat, Len(concat) - 1)

End Sub
7fichierbn.xlsm (66.77 Ko)

Bonjour,

A partir du fichier de yal

Sub RecupCheckBox()
Dim concat As String
Dim obj As Shape
For Each obj In ActiveSheet.Shapes
    If obj.FormControlType = xlCheckBox Then
        If obj.DrawingObject.Value = 1 Then
            concat = concat & obj.AlternativeText & ";"
        End If
    End If
Next obj
If Len(concat) > 0 Then
    Range("G2") = Left(concat, Len(concat) - 1)
Else
    Range("G2").ClearContents
End If
End Sub

S'il n'y a qu'une Fiche par onglet.

Chaque clic sur un CheckBox provoque la macro ci-dessus

Le résultat en G2, (adresse modifiable et il suffira de mettre la même couleur à la police et au fond de cellule)

Bonne journée

Merci beaucoup, cela fonctionne parfaitement :)

Rechercher des sujets similaires à "affichage caption case cocher"