[VBA] Sélection de plusieurs feuilles distinctes

JNP

XLDnaute Barbatruc
Bonjour le forum :),
En cherchant une réponse pour Bryc, je suis tombé sur un os... En utilisant l'éditeur de macro pour chercher l'instruction de sélection de plusieurs feuilles, celui-ci me donne :
Code:
Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Select
Quand j'essaie de retraduire "Feuil1", "Feuil2" par exemple par une variable, j'ai toujours un message d'erreur, même si je passe par Chr$(034) pour intégrer la double cote...
J'ai fait des recherche sur la méthode Add, mais n'ai rien trouvé...
Je suis preneur d'idées...
Merci d'avance :cool:
 

Cousinhub

XLDnaute Barbatruc
Re : [VBA] Sélection de plusieurs feuilles distinctes

Bonsoir,
à tout hasard :


Code:
Sheets(Array(Feuil1.Name, Feuil2.Name, Feuil3.Name)).Select

fonctionne quelque soit le nom de la feuille

Edit : Skoobi, ta solution ne fonctionne pas chez moi :eek:
 
C

Compte Supprimé 979

Guest
Re : [VBA] Sélection de plusieurs feuilles distinctes

Salut tout le monde :D

Ou encore une autre solution, pour ne pas s'embêter avec un ARRAY

Code:
  Dim Sht As Worksheet
  For Each Sht In ActiveWorkbook.Sheets
    Sht.Select Replace:=False
  Next Sht

Voilà ;)
 

JNP

XLDnaute Barbatruc
Re : [VBA] Sélection de plusieurs feuilles distinctes

Bonsoir à tous :),
Merci de toutes ces options (Je teste demain... et je vous dit. Comme a dit Jacques Brel "Mais il est tard, monsieur..."). Plus j'avance et plus je... Les chemins ne sont pas toujours simples...
Bonne soirée à tous :cool:
 

JNP

XLDnaute Barbatruc
Re : [VBA] Sélection de plusieurs feuilles distinctes

Bonjour à tous :),
Toutes vos solutions fonctionnent, c'est nickel !
Comme je préfère pouvoir avoir la main sur les diférentes possibilités de sélection, je préfère celle de BrunoM45 avec un test pour pouvoir ignorer des feuilles, type :
Code:
Dim Feuille As Worksheet
For Each Feuille In ActiveWorkbook.Sheets
    If Feuille.Name <> "Feuil2" Then Feuille.Select Replace:=False
Next Feuille
Encore merci et bonne journée :cool:
@ Skoobi : moi non plus je n'aime pas vraiment Select, mais comme Bryc veux faire l'impression de plusieurs feuilles dans un seul pdf, c'est une bonne méthode, associée à un PrintOut.
 

skoobi

XLDnaute Barbatruc
Re : [VBA] Sélection de plusieurs feuilles distinctes

Bonjour à tous :),
Toutes vos solutions fonctionnent, c'est nickel !
Comme je préfère pouvoir avoir la main sur les diférentes possibilités de sélection, je préfère celle de BrunoM45 avec un test pour pouvoir ignorer des feuilles, type :
Code:
Dim Feuille As Worksheet
For Each Feuille In ActiveWorkbook.Sheets
    If Feuille.Name <> "Feuil2" Then Feuille.Select Replace:=False
Next Feuille
Encore merci et bonne journée :cool:
@ Skoobi : moi non plus je n'aime pas vraiment Select, mais comme Bryc veux faire l'impression de plusieurs feuilles dans un seul pdf, c'est une bonne méthode, associée à un PrintOut.

Re bonjour,

Si peut ne veut pas dire jamais ;),

bon week-end.
 

Mathieu Régis

XLDnaute Nouveau
Re : [VBA] Sélection de plusieurs feuilles distinctes

Bonsoir,
à tout hasard :


Code:
Sheets(Array(Feuil1.Name, Feuil2.Name, Feuil3.Name)).Select

fonctionne quelque soit le nom de la feuille

Edit : Skoobi, ta solution ne fonctionne pas chez moi :eek:
Bonjour à toutes et tous !
j'ai le même soucis que j'ai résolu par une boucle comme ci-dessous :
'Sélection des onglets semaine
Sheets(Tableau_Onglets_Semaine(0, 1)).Select
For i = 1 To UBound(Tableau_Onglets_Semaine)
Sheets(Tableau_Onglets_Semaine(i, 1)).Select Replace:=False
Next i
Sheets(Tableau_Onglets_Semaine(0, 1)).Activate
Range("A1").Select

mais y a t'il un moyen plus direct et rapide du genre :
Sheets(Array(Tableau_Onglets_Semaine)).Select
Je n'arrive pas à l'écrire avec la bonne syntaxe ??
Pour info, ma variable Tableau_Onglets_Semaine est dimensionnée à (x, 3)
et le nom des feuilles est de 0 à x, 1 !
merci à tous ceux qui me donneront la bonne syntaxe !
Cordialement
Régis
 

job75

XLDnaute Barbatruc
Bonjour Mathieu Régis, le forum,
Pour info, ma variable Tableau_Onglets_Semaine est dimensionnée à (x, 3)
Il faut transposer la 2ème colonne :
VB:
Sub Test()
ReDim Tableau_Onglets_Semaine(2, 3)
Tableau_Onglets_Semaine(0, 1) = "Feuil1"
Tableau_Onglets_Semaine(1, 1) = "Feuil3"
Tableau_Onglets_Semaine(2, 1) = "Feuil4"
Sheets(Application.Transpose(Application.Index(Tableau_Onglets_Semaine, , 2))).Select
End Sub
A+
 

Pièces jointes

  • Classeur(1).xlsm
    17.3 KB · Affichages: 11

Mathieu Régis

XLDnaute Nouveau
Bonjour Mathieu Régis, le forum,

Il faut transposer la 2ème colonne :
VB:
Sub Test()
ReDim Tableau_Onglets_Semaine(2, 3)
Tableau_Onglets_Semaine(0, 1) = "Feuil1"
Tableau_Onglets_Semaine(1, 1) = "Feuil3"
Tableau_Onglets_Semaine(2, 1) = "Feuil4"
Sheets(Application.Transpose(Application.Index(Tableau_Onglets_Semaine, , 2))).Select
End Sub
A+
Merci pour cette info mais elle ne convient pas car si je ReDim ma variable, je perds les autres valeurs !
Cordialement
 

Discussions similaires

Réponses
16
Affichages
1 K

Statistiques des forums

Discussions
312 229
Messages
2 086 423
Membres
103 206
dernier inscrit
diambote