OVH Cloud OVH Cloud

Aide SVP selection Array

7 réponses
Avatar
Michael BAS
Bonjour,

Quelqu'un connaitrait il un moyen pour pouvoir selectionner plusieurs
feuilles mais ignorer celles qui n'existe pas et continuer la selection...

Je m'explique un peu mieux :

Sheets(Array("Présentation", "Page de Garde", "Sommaire", "Aspects
generaux", "Parametres Gaux", "Parametres TCP IP", "Fiche teles.1", "Fiche
Emargement")).Select

Je voudrais que si une de ces feuilles n'existe pas , la macro continue a
selectionner celles qui existent car un "on error resume next" passe a la
ligne suivante...

Merci j'espere etre clair sinon je peux me réexpliquer.
Bye.

7 réponses

Avatar
Yvan
Bonjour Michael.

La syntaxe de Select prévoit une option "Replace", par défaut égale à True.
Si tu la fixes à False, tu peux ajouter des feuilles à la sélection. Donc en
combinant çà avec on error resume next, tu peux parvenir à tes fins.

Exemple:

Public Sub Test()
On Error Resume Next
Sheets("Feuil1").Select (False) ' OK
Sheets("Bidon").Select (False) ' Ignoré parce qu'elle n'existe pas
Sheets("Feuil2").Select (False) 'OK
Sheets("Feuil3").Select (False) 'OK
On Error GoTo 0
End Sub

Ai-je bien compris le pb?

Yvan

"Michael BAS" a écrit dans le message de news:

Bonjour,

Quelqu'un connaitrait il un moyen pour pouvoir selectionner plusieurs
feuilles mais ignorer celles qui n'existe pas et continuer la selection...

Je m'explique un peu mieux :

Sheets(Array("Présentation", "Page de Garde", "Sommaire", "Aspects
generaux", "Parametres Gaux", "Parametres TCP IP", "Fiche teles.1",
"Fiche Emargement")).Select

Je voudrais que si une de ces feuilles n'existe pas , la macro continue a
selectionner celles qui existent car un "on error resume next" passe a la
ligne suivante...

Merci j'espere etre clair sinon je peux me réexpliquer.
Bye.




Avatar
Michael BAS
Impeccable nickel chrome parfait
rien à redire c ce qu'il me fallait merci Yvan

Ciao !
Avatar
Jo-Soupin
bonjour Michael,

autre solution, pour garder la selection multiple :
----------------------------------------------------------
Sub SelectSheets()
Dim MyChoice As Variant
Dim SheetsArray()
MyChoice = Array("Présentation", "Page de Garde", "Sommaire", _
"Aspects generaux", "Parametres Gaux", "Parametres TCP IP", _
"Fiche teles.1", "Fiche Emargement ")

For Each sh In Worksheets
For i = 0 To UBound(MyChoice)
If sh.Name = MyChoice(i) Then
indice = indice + 1
ReDim Preserve SheetsArray(1 To indice)
SheetsArray(indice) = sh.Name
Exit For
End If
Next
Next
If IsEmpty(indice) Then Exit Sub
Worksheets(SheetsArray).Select
End Sub
----------------------------------------------------------


Impeccable nickel chrome parfait
rien à redire c ce qu'il me fallait merci Yvan

Ciao !


Avatar
Michael BAS
Je veux bien mais la je crois que c'est un peu au-dessus de mon niveau !!

merci qd meme car ça reste interressant mais j'ai du mal a en comprendre la
logique

car il ya des fonctions que je n'ai jamais utilisées (Ubound entre
autres)...

Merci bien
CIAO !
Avatar
papou
Bonjour
Plus simple peut-être ? avec ceci :
Dim TabloF()
ReDim Preserve TabloF(1 To Sheets.Count)
For i = 1 To Sheets.Count
TabloF(i) = Sheets(i).Name
Next i
Worksheets(TabloF).Select

Cordialement
Pascal

"Michael BAS" a écrit dans le message de
news:
Je veux bien mais la je crois que c'est un peu au-dessus de mon niveau !!

merci qd meme car ça reste interressant mais j'ai du mal a en comprendre
la

logique

car il ya des fonctions que je n'ai jamais utilisées (Ubound entre
autres)...

Merci bien
CIAO !




Avatar
Jo-Soupin
bonjour Pascal,

j'avais pensé à cette solution, mais elle ne permet pas de choisir
les
feuilles que Michaël souhaite selectionner. Dans la macro que je lui
ai
proposée, il suffit de déclarer dans le tableau MyChoice
( MyChoice = Array("Présentation", "Page de Garde", ........" ) les
feuilles à selectionner.

friendly



Bonjour
Plus simple peut-être ? avec ceci :
Dim TabloF()
ReDim Preserve TabloF(1 To Sheets.Count)
For i = 1 To Sheets.Count
TabloF(i) = Sheets(i).Name
Next i
Worksheets(TabloF).Select

Cordialement
Pascal

"Michael BAS" a écrit dans le message de
news:
Je veux bien mais la je crois que c'est un peu au-dessus de mon niveau !!

merci qd meme car ça reste interressant mais j'ai du mal a en compren dre
la

logique

car il ya des fonctions que je n'ai jamais utilisées (Ubound entre
autres)...

Merci bien
CIAO !






Avatar
papou
bonjour
Michael n'a pas précisé qu'il s'agissait de ne sélectionner qu'une partie
des feuilles de son classeur donc je lui propose ça.
Maintenant effectivement s'il ne s'agit que de certaines des feuilles...

Cordialement
Pascal

"Jo-Soupin" a écrit dans le message de
news:
bonjour Pascal,

j'avais pensé à cette solution, mais elle ne permet pas de choisir
les
feuilles que Michaël souhaite selectionner. Dans la macro que je lui
ai
proposée, il suffit de déclarer dans le tableau MyChoice
( MyChoice = Array("Présentation", "Page de Garde", ........" ) les
feuilles à selectionner.

friendly



Bonjour
Plus simple peut-être ? avec ceci :
Dim TabloF()
ReDim Preserve TabloF(1 To Sheets.Count)
For i = 1 To Sheets.Count
TabloF(i) = Sheets(i).Name
Next i
Worksheets(TabloF).Select

Cordialement
Pascal

"Michael BAS" a écrit dans le message de
news:
Je veux bien mais la je crois que c'est un peu au-dessus de mon niveau
!!



merci qd meme car ça reste interressant mais j'ai du mal a en comprendre
la

logique

car il ya des fonctions que je n'ai jamais utilisées (Ubound entre
autres)...

Merci bien
CIAO !