Raccourcir une maccro

Fermé
maxiime - 28 févr. 2015 à 19:13
eriiic Messages postés 24597 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 22 septembre 2024 - 28 févr. 2015 à 23:50
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 20947 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 28 septembre 2024 11 329
28 févr. 2015 à 20:29
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
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
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
ç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 24597 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 22 septembre 2024 7 235
28 févr. 2015 à 23:50
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