Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Voilà....
J'ai unuserform, l'utilisateur saisis des données (qui sont regroupé dans l'onglet DataGare) et choisi de cocher un ou plusieurs jours de semaine (correspondant à plusieurs Sheets) et une macro qui trace des lignes et des zones de texte s'éxécute dans les différentes sheets séléctionnées.
(Mes lignes de code sont un peu barbare mais débute dans VBA grace à ce présent forum !!)
ReDim feuilles(0)
jours = Array("LU", "MAMEJE", "DI", "VE", "SA")
For n = 0 To UBound(jours)
If Controls("Check" & jours(n)) Then
feuilles(UBound(feuilles)) = jours(n)
ReDim Preserve feuilles(UBound(feuilles) + 1)
End If
Next n
Ensuite dans Valider (ou a l'endroit qui te convient)
Whoua !! merci pour la rapidité !!
Mais j'ai du mal à comprendre "en français ce que cela fait"
ReDim feuilles(0) 'Feuille = un tableau à 0 éléments.jours = Array("LU", "MAMEJE", "DI", "VE", "SA") 'jour = un tableau des 5 éléments citésFor n = 0 To UBound(jours) On détermine le nombre max d'élément du tableau jours (mais y'en a 5 ???)
If Controls("Check" & jours(n)) Then 'si la case du Lu (par exemple) est coché
feuilles(UBound(feuilles)) = jours(n) et la j'arrive pas à traduire. ça fait quoi exactement ?
ReDim Preserve feuilles(UBound(feuilles) + 1) Et la aussi je comprends pas.
End If
Next n
A la reflexion tout le code peut etre dans Valider (a l'exception de la declaration du tableau feuilles)
Explications:
' le tableau feuilles etant declaré public sans dimension il convient de lui en donner 'une
ReDim feuilles(0)
'on crée un autre tableau nommé jours avec 5 enregistrements
jours = Array("LU", "MAMEJE", "DI", "VE", "SA")
'on parcourt ce tableau du debut a la fin
For n = 0 To UBound(jours)
'pour verifier si les checkbox sont cochés
'les elements du tableau jours permettent de nommer le control CheckBox
If Controls("Check" & jours(n)) Then
'si oui on met le nom du jour dans le dernier membre du tableau feuilles
feuilles(UBound(feuilles)) = jours(n)
'on prevoit une place pour l'eventuelle feuille suivante
ReDim Preserve feuilles(UBound(feuilles) + 1)
End If
Next n
Ensuite:
'le tableau feuilles comprend le nom des feuilles
'correspondant aux checkBox plus un element vide
'On retire le dernier element(vide)
ReDim Preserve feuilles(UBound(feuilles) - 1)
'on selectionne les feuilles
Sheets(feuilles).Select
arghhh!! Je viens de m'appercevoir qu'il est impossible de tracer des graphiques lorsqu'on séléctionne plusieurs feuilles en même temps. En fait il faudrait qu'en quittant le Userform, cela puisse me donner une variable qui a tour de role prends le nom des feuilles séléctionnées.
Re
la variable en question est le tableau feuilles utilisable comme suit
for n=lbound(feuilles) to ubound(feuilles)
sheets(feuilles(n)).select
.... 'tracé sur la feuille
next n
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD