Mettre dans une variable plusieurs sheets

  • Initiateur de la discussion Initiateur de la discussion yde
  • Date de début Date de début

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 !

yde

XLDnaute Nouveau
Bonjour,

Sous VBA peut-on mettre dans une variable un groupe de feuille que l'utilisateur séléctionnerait depuis un userform en cochant des chekBox ?
Merci !!

Yde😕
 
Re : Mettre dans une variable plusieurs sheets

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 !!)

Yde
 

Pièces jointes

Re : Mettre dans une variable plusieurs sheets

Re

une solution pour selectionner plusieurs feuilles

1) declaration

Code:
  public feuilles() as string

dans chaque Check semaine

Code:
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)

Code:
  ReDim Preserve feuilles(UBound(feuilles) - 1)
  Sheets(feuilles).Select
 
Re : Mettre dans une variable plusieurs sheets

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
 
Re : Mettre dans une variable plusieurs sheets

Re

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
 
Re : Mettre dans une variable plusieurs sheets

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.

C'est faisable ?
 
- 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

Discussions similaires

Réponses
1
Affichages
336
Réponses
14
Affichages
399
Retour