Raccourcir une maccro

maxiime -  
eriiic Messages postés 24603 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

m@rina Messages postés 23902 Date d'inscription   Statut Contributeur Dernière intervention   11 464
 
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
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
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
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
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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