Array() variable

gravel

XLDnaute Nouveau
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.
 

vbacrumble

XLDnaute Accro
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+
 

gravel

XLDnaute Nouveau
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.
 

Pierrot93

XLDnaute Barbatruc
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

@+
 

gravel

XLDnaute Nouveau
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.
 

gravel

XLDnaute Nouveau
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é.
 

Discussions similaires

Réponses
16
Affichages
611

Statistiques des forums

Discussions
312 754
Messages
2 091 681
Membres
105 046
dernier inscrit
chadrack mbeke