Raccourcir une maccro

Bonjour,

Voila je fais des macros mais et en voici une partie, j'aimerai la raccourcir celle ci si cela est possible car il faut que j'aille jusqu'à 200 checkbox.

j'espère que quelqu'un pourra m'aider

merci.

Variable_actif1 = Sheets("Tableau de bord").Range("B1").Text
CheckBox1 = Variable_actif1

Variable_actif2 = Sheets("Tableau de bord").Range("B2").Text
CheckBox2 = Variable_actif2

Variable_actif3 = Sheets("Tableau de bord").Range("B3").Text
CheckBox3 = Variable_actif3

Variable_actif4 = Sheets("Tableau de bord").Range("B4").Text
CheckBox4 = Variable_actif4

3 réponses

  1. Modérateur
    Bonjour,

    Oui, bien sûr on peut faire plus court.
    Mais tu peux nous dire ce que tu veux faire exactement ?
    Parce que une checkbox... ça ne peut pas être égal au contenu d'une cellule...

    m@rina
    0
    1. merci m@rina ,

      En liant une checkbox a une cellule est le seul moyen que j'ai trouver pour sauvegarder la position d'une checkbox.
      0
  2. Bonjour
    sans model de ton fichier dur a voir
    peux etre comme ca
    Sub Test()
       With Sheets("Tableau de bord")
          For L = 1 To 200
             Controls("Variable_actif" & L) = .Range("B" & L).Text
             Controls("CheckBox" & L) = Controls("Variable_actif" & L)
          Next
       End With
    End Sub
    

    A+
    Maurice
    0
    1. ça me parais bon comme code mais il m'enpeche d'ouvrir l'usf maintenant avec pour message d'erreur "objet spécifié introuvable" et surligne "UserForm1.Show"

      Le code que tu m'as donnée c'est pour le mettre dans "Private Sub UserForm_Initialize()^"
      0
  3. Contributeur
    Bonjour,

    mais il m'enpeche d'ouvrir l'usf
    Comment voulais-tu qu'on devine qu'ils n'étaient pas sur une feuille si tu ne le dis pas ?
    sauvegarder la position d'une checkbox.
    L'état plutôt non ?

    Moins ta question est précise, plus tu perds du temps...
    Et lorsque tu édites un message tu as une icone <> pour mettre en forme le code.
    Alors peut-être :
    Private Sub UserForm_Initialize()
        Dim i As Long
        With Sheets("Tableau de bord")
            For i = 1 To 200
                Controls("CheckBox" & i) = .Cells(i, 2)
            Next
        End With
    End Sub 

    eric
    0