Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

VBA selection multiple de feuilles

1,050 views
Skip to first unread message

Hervé

unread,
Jan 9, 2002, 2:49:42 PM1/9/02
to
Bonsoir Philippe,

Tu peux utiliser array sans connaître le nom des feuilles. Voici comment
sélectionner les 3 premières feuilles :

Sheets(Array(Sheets(1).Name, Sheets(2).Name, Sheets(3).Name)).Select

Cordialement

Hervé

"philippe" <phil...@phoon.org> a écrit dans le message news:
77c201c19944$5d3b0760$3bef2ecf@TKMSFTNGXA10...
Comment faire pour selectionner un nbre X de feuilles sans
utiliser la fonction array qui oblige à connaitre d'avance
le nom de la feuille.

Merci d'avance


philippe

unread,
Jan 9, 2002, 3:07:41 PM1/9/02
to
merci de la réponse.
Mais si je ne connais pa d'avance le nombre de feuilles à
mettre dans le "Array" ??

>-----Message d'origine-----

>.
>

isabelle

unread,
Jan 9, 2002, 3:13:24 PM1/9/02
to
Bonjour Philippe,

et avec une boucle sur worksheets.count pour remplir le array ça irais ?

isabelle

philippe a écrit :

philippe

unread,
Jan 9, 2002, 3:35:42 PM1/9/02
to
oui cela irais, mais j'essaie de remplir mon array avec
une boucle, mais sans succès.
Comment fais-tu ?

merci


>-----Message d'origine-----

>.
>

philippe

unread,
Jan 9, 2002, 3:35:44 PM1/9/02
to
oui cela irais, mais j'essaie de remplir mon array avec
une boucle, mais sans succès.
Comment fais-tu ?

merci


>-----Message d'origine-----

>.
>

Denis Michon

unread,
Jan 9, 2002, 4:36:50 PM1/9/02
to
Bonjour Philippe,

J'ai un peu de difficulté à suivre... sélectionner des feuilles
sans savoir quelles feuilles tu dois sélectionner...

Voici quelque chose à partir duquel tu peux t'inspirer ...

à Copier ds un module standard

Il s'agit d'entrer dans un inputbox, la liste des index(Numéro) des feuilles dont tu désires
sélectionner en les séparant les index par une virgule ...

Sub SelectionFeuille()

Dim Arr

lesfeuilles = Application.InputBox("Inscrivez les feuilles à sélectionner" _
+ vbCrLf + vbCrLf + "Notez comme suit les feuilles à sélectionner : 1,3,4,7 etc. ", "Sélection")

Arr = Split(lesfeuilles, ",")

For a = LBound(Arr) To UBound(Arr)
Sheets(Val(Arr(a))).Select Replace:=False
Next

End Sub

Salutations!


"philippe" <phil...@phoon.org> a écrit dans le message de news:
6f5501c1994d$367344e0$37ef2ecf@TKMSFTNGXA13...

isabelle

unread,
Jan 9, 2002, 6:14:48 PM1/9/02
to
Bonjour Philippe,

la, j'ai parlé trop vite, j'ai bien essayé mais y a rien à faire.
je te livre quant même ce que j'ai fais,

Dim i, f, feuilles
For i = 1 To Worksheets.Count
f = f & Chr(34) & "Feuil" & i & Chr(34) & ", "
Next i
feuilles = Mid(f, 2, Len(f) - 4)
Sheets(Array(feuilles)).Select

la variable feuilles est bien égal au trois feuilles de mon classeur
"Feuil1", "Feuil2", "Feuil3"
mais j'obtiens une erreur d'indice en dehors de la plage,
et j'ni voie plus rien.
si tu trouve, stépplé, fais le moi savoir

bisou
isabelle


philippe a écrit :

Clément Marcotte

unread,
Jan 9, 2002, 6:21:15 PM1/9/02
to
>Comment faire pour selectionner un nbre X de feuilles sans
>utiliser la fonction array qui oblige à connaitre d'avance
>le nom de la feuille.

En connaissant les critères, on peut faire des boucles conditionnelles et/ou
des branchements conditionnels. Si les critères sont immuables, cela vaut
sans doute la peine de faire une macro. Si les critères varient au fil du
temps, aussi bien le faire à la mitaine.

--
Clément Marcotte
"Être vraiment patient, c'est être patient quand vous ne pensiez plus qu'il
était possiblement concevable de l'être."
- Léonard de Vinci


"philippe" <phil...@phoon.org> a écrit dans le message news:
77c201c19944$5d3b0760$3bef2ecf@TKMSFTNGXA10...

Merci d'avance

isabelle

unread,
Jan 9, 2002, 6:28:41 PM1/9/02
to
j'oubliais, si tu veux sélectionner toutes les feuilles d'un classeur
(non visible)
utilise Sheets.Select
isabelle

isabelle a écrit :

Denis Michon

unread,
Jan 9, 2002, 6:35:30 PM1/9/02
to
Bonjour Isabelle,

Si je peux me permettre une suggestion :

Pour traiter les noms des feuilles ds un tableau et
d'en faire la sélection.

-----------
Sub TableauFeuille()
Dim arr()
Dim Nb As Integer
Nb = Worksheets.Count
ReDim arr(1 To Nb)

For i = 1 To Worksheets.Count

arr(i) = Worksheets(i).Name
Next

Worksheets(arr).Select Replace:=False

End Sub
-------------

Salutations!


"isabelle" <as.isa...@videotron.ca> a écrit dans le message de news: 3C3CD229...@videotron.ca...

isabelle

unread,
Jan 9, 2002, 7:03:40 PM1/9/02
to
c't'en plein ça, merci Denis, j'avais bien essayer avec UBound et LBound mais il me manquait Replace:=False
bisou
isabelle

Sub Macro1()
Dim f, i, feuilles
Dim MyArray()
For Each f In Worksheets
'pour éliminer certaine feuilles place une condition ici.
If f.Name <> "blabla" Then
ReDim Preserve MyArray(i)
MyArray(i) = f.Name
i = i + 1
End If
Next f
For feuilles = LBound(MyArray) To UBound(MyArray)
Sheets(MyArray(feuilles)).Select

Denis Michon a écrit :

Philippe

unread,
Jan 10, 2002, 1:38:27 AM1/10/02
to
Merci à vous, toi Isablle et surtout toi Denis.
Ta procédure fonctionne parfaitement. C'est le pied

A+


>-----Message d'origine-----

>.
>

0 new messages