Raccourcir une maccro

maxiime -  
eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   -
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. m@rina Messages postés 27465 Date d'inscription   Statut Modérateur Dernière intervention   11 562
     
    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. maxiime
       
      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. Maurice
     
    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. maxiime
       
      ç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. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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