Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Array() variable

  • Initiateur de la discussion Initiateur de la discussion gravel
  • 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 !

G

gravel

Guest
Bonjour,
je voudrais faire une sélection (en macro) de plusieurs feuilles pour en faire un aperçus avant impression.
avec l'enregistreur de macro, j'arrive à :
Code:
Sheets(Array("model_pg_1", "model_pg_2")).Select
mon soucis est que le nombre de page varie de 1 à n.
existe t-il un moyen, comme l'utilisation d'un tableau, pour faire une selection variable.
 
Re : Array() variable

Bonjour Gravel

essaye le code ci dessous, sélectionne toutes les feuilles du classeur actif :

Code:
Dim ws As Worksheet
For Each ws In Worksheets
    ws.Select False
Next ws

bon après midi.
@+
 
Re : Array() variable

Bonjour tous


Voir ce code VBA, si cela peut t'aider.

Code:
Sub macro()
Dim TabFeuilles, i, m$
ReDim TabFeuilles(1 To Sheets.Count)
    For i = 1 To Sheets.Count
        TabFeuilles(i) = ThisWorkbook.Sheets(i).Name
        m = m & TabFeuilles(i) & Chr(13)
    Next
MsgBox m
End Sub

A+
 
Re : Array() variable

Merci de vos suggestions, mais j'ai du mal m'exprimer,
dans mon classeur j'ai plusieurs feuilles dont deux qui me servent à générer une série de feuille.
Je souhaiterais faire une sélection de cette dernière série pour en faire un aperçu avant impression.
Cette série varie de 1 à n feuilles.
exemple pour mon cas :
"model_pg_1", "model_pg_2","model_pg_3" etc ...
et ce sont ces feuilles que je voudrais sélectionner.
 
Re : Array() variable

Re

pas sur d'avoir tout compris.... peut être ainsi alors....

Code:
Option Explicit
Sub test()
Dim ws As Worksheet, t() As Variant, i As Byte
For Each ws In Worksheets
    If ws.Name Like "model_pg_*" Then
        ReDim Preserve t(0 To i)
        t(i) = ws.Name
        i = i + 1
    End If
Next ws
Sheets(t).Select
End Sub

@+
 
Re : Array() variable

J'ai fait un mélange des deux et çà donne çà :

Code:
Dim ws As Worksheet
Dim i as Integer
i = 1
For Each ws In Worksheets
    If ws.Name = "model_pg_" & i Then
    ws.Select False
    i = i + 1
    End If
Next ws
il me reste à changer la feuille sélectionnée avant l'exécution du code et ce sera bon.
Merci de votre aide à tous les deux.
 
Re : Array() variable

Merci Pierrot tu as bien compris,
j'avais essayé avec
Code:
If ws.Name Like "model_pg_" & * Then
mais bien sur çà ne marchait pas.
encore merci pour ta solution çà marche.
et non je n'avais pas vu ton message de 17h10, désolé.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
693
Réponses
3
Affichages
888
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…