Concaténer des noms d'onglets

Le
RENAUD Eric
Bonjour,
Je balaye une plage de cellules de U1 à Ux, cellules contenant des noms
d'onglets (Ass. Modules, Ass.baio, Ass.Cont )
Je souhaite concaténer ces valeurs dans une variable (NomFeuille) pour
l'exploiter ensuite avec la commande :

Sheets(Array(NomFeuille)).Select
au lieu de
Sheets(Array("Ass. Modules", "Ass.baio", "Ass.Cont")).Select
car le nombre de noms de feuilles varie.

Lorsque j'écris le contenu de ma variable NomFeuille avec Debug.Print, je
lis

"Ass. Modules","Ass.baio","Ass.Cont"
et cela semble correct mais ça ne passe pas avec
Sheets(Array(NomFeuille)).Select


Sub SelectionMultiOnglets()
Dim NomFeuille As String
Dim C As Variant
Sheets("Données").Select
Range("U1:U3").Select
' U1 = Ass. Modules
' U2 =Ass.baio
' U3=Ass.Cont
For Each C In Selection
NomFeuille = IIf(NomFeuille = "", """" & C.Value & """", NomFeuille
& "," & """" & C.Value & """")
Next C
Debug.Print NomFeuille
' Je souhaite en balayant ma plage U1:U3 (qui peut varier jusqu'à Ux)
Sheets(Array(NomFeuille)).Select ' ça ne ramène pas les doubles
quotes)
' Résultat souhaité
'Sheets(Array("Ass. Modules", "Ass.baio", "Ass.Cont")).Select
End Sub


Comme solution de secours, je pourrais dire sélectionne de la feuille 3 (1
et 2 ne sont pas concernés) à la dernière feuille mais là aussi je sèche
D'avance merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #5082111
Admettons que tes noms de feuilles soient en A1:A3
'--------------------------
Sub test()
Dim Toto()
Toto = Application.Transpose(Range("A1:A3").Value)
Sheets(Toto).Select
End Sub
'--------------------------

si tes données sont en ligne comme ceci :
'--------------------------
Sub test()
Dim Toto()
Toto = Application.Transpose(Application.Transpose(Range("A1:C1").Value))
Sheets(Toto).Select
End Sub
'--------------------------




"RENAUD Eric"
Bonjour,
Je balaye une plage de cellules de U1 à Ux, cellules contenant des noms
d'onglets (Ass. Modules, Ass.baio, Ass.Cont ...)
Je souhaite concaténer ces valeurs dans une variable (NomFeuille) pour
l'exploiter ensuite avec la commande :

Sheets(Array(NomFeuille)).Select
au lieu de
Sheets(Array("Ass. Modules", "Ass.baio", "Ass.Cont")).Select
car le nombre de noms de feuilles varie.

Lorsque j'écris le contenu de ma variable NomFeuille avec Debug.Print, je
lis

"Ass. Modules","Ass.baio","Ass.Cont"
et cela semble correct mais ça ne passe pas avec
Sheets(Array(NomFeuille)).Select


Sub SelectionMultiOnglets()
Dim NomFeuille As String
Dim C As Variant
Sheets("Données").Select
Range("U1:U3").Select
' U1 = Ass. Modules
' U2 =Ass.baio
' U3=Ass.Cont
For Each C In Selection
NomFeuille = IIf(NomFeuille = "", """" & C.Value & """", NomFeuille
& "," & """" & C.Value & """")
Next C
Debug.Print NomFeuille
' Je souhaite en balayant ma plage U1:U3 (qui peut varier jusqu'à Ux)
Sheets(Array(NomFeuille)).Select ' ça ne ramène pas les doubles
quotes)
' Résultat souhaité
'Sheets(Array("Ass. Modules", "Ass.baio", "Ass.Cont")).Select
End Sub


Comme solution de secours, je pourrais dire sélectionne de la feuille 3 (1
et 2 ne sont pas concernés) à la dernière feuille mais là aussi je sèche
D'avance merci
Tatanka
Le #5082081
Salut Éric,

Si chaque cellule de la plage U1:Ux contient un nom
de feuille valide et s'il n'y a absolument rien sous Ux,
alors esaie ceci :

Sub Sélection_Feuilles()
Dim Feuilles()
Dim plage As Range
Set plage = Sheets("Données").Range([u1], [u65000].End(xlUp))
Feuilles = Application.Transpose(plage.Value)
Sheets(Feuilles).Select
End Sub

Serge

"RENAUD Eric"
Bonjour,
Je balaye une plage de cellules de U1 à Ux, cellules contenant des noms d'onglets (Ass. Modules, Ass.baio, Ass.Cont ...)
Je souhaite concaténer ces valeurs dans une variable (NomFeuille) pour l'exploiter ensuite avec la commande :

Sheets(Array(NomFeuille)).Select
au lieu de
Sheets(Array("Ass. Modules", "Ass.baio", "Ass.Cont")).Select
car le nombre de noms de feuilles varie.

Lorsque j'écris le contenu de ma variable NomFeuille avec Debug.Print, je lis

"Ass. Modules","Ass.baio","Ass.Cont"
et cela semble correct mais ça ne passe pas avec
Sheets(Array(NomFeuille)).Select


Sub SelectionMultiOnglets()
Dim NomFeuille As String
Dim C As Variant
Sheets("Données").Select
Range("U1:U3").Select
' U1 = Ass. Modules
' U2 =Ass.baio
' U3=Ass.Cont
For Each C In Selection
NomFeuille = IIf(NomFeuille = "", """" & C.Value & """", NomFeuille & "," & """" & C.Value & """")
Next C
Debug.Print NomFeuille
' Je souhaite en balayant ma plage U1:U3 (qui peut varier jusqu'à Ux)
Sheets(Array(NomFeuille)).Select ' ça ne ramène pas les doubles quotes)
' Résultat souhaité
'Sheets(Array("Ass. Modules", "Ass.baio", "Ass.Cont")).Select
End Sub


Comme solution de secours, je pourrais dire sélectionne de la feuille 3 (1 et 2 ne sont pas concernés) à la dernière feuille mais
là aussi je sèche
D'avance merci



RENAUD Eric
Le #5082061
Bonjour,
Merci à tous les deux, c'est parfait

"RENAUD Eric"
Bonjour,
Je balaye une plage de cellules de U1 à Ux, cellules contenant des noms
d'onglets (Ass. Modules, Ass.baio, Ass.Cont ...)
Je souhaite concaténer ces valeurs dans une variable (NomFeuille) pour
l'exploiter ensuite avec la commande :

Sheets(Array(NomFeuille)).Select
au lieu de
Sheets(Array("Ass. Modules", "Ass.baio", "Ass.Cont")).Select
car le nombre de noms de feuilles varie.

Lorsque j'écris le contenu de ma variable NomFeuille avec Debug.Print, je
lis

"Ass. Modules","Ass.baio","Ass.Cont"
et cela semble correct mais ça ne passe pas avec
Sheets(Array(NomFeuille)).Select


Sub SelectionMultiOnglets()
Dim NomFeuille As String
Dim C As Variant
Sheets("Données").Select
Range("U1:U3").Select
' U1 = Ass. Modules
' U2 =Ass.baio
' U3=Ass.Cont
For Each C In Selection
NomFeuille = IIf(NomFeuille = "", """" & C.Value & """", NomFeuille
& "," & """" & C.Value & """")
Next C
Debug.Print NomFeuille
' Je souhaite en balayant ma plage U1:U3 (qui peut varier jusqu'à Ux)
Sheets(Array(NomFeuille)).Select ' ça ne ramène pas les doubles
quotes)
' Résultat souhaité
'Sheets(Array("Ass. Modules", "Ass.baio", "Ass.Cont")).Select
End Sub


Comme solution de secours, je pourrais dire sélectionne de la feuille 3 (1
et 2 ne sont pas concernés) à la dernière feuille mais là aussi je sèche
D'avance merci



Tatanka
Le #5082051
Salut Éric

Petite modif :

Sub Sélection_Feuilles()
Dim Feuilles()
Dim plage As Range
Set F = Sheets("Données")
Set plage = F.Range(F.[u1], F.[u65000].End(xlUp))
Feuilles = Application.Transpose(plage.Value)
Sheets(Feuilles).Select
End Sub

Serge


"Tatanka"
Salut Éric,

Si chaque cellule de la plage U1:Ux contient un nom
de feuille valide et s'il n'y a absolument rien sous Ux,
alors esaie ceci :

Sub Sélection_Feuilles()
Dim Feuilles()
Dim plage As Range
Set plage = Sheets("Données").Range([u1], [u65000].End(xlUp))
Feuilles = Application.Transpose(plage.Value)
Sheets(Feuilles).Select
End Sub

Serge

"RENAUD Eric"
Bonjour,
Je balaye une plage de cellules de U1 à Ux, cellules contenant des noms d'onglets (Ass. Modules, Ass.baio, Ass.Cont ...)
Je souhaite concaténer ces valeurs dans une variable (NomFeuille) pour l'exploiter ensuite avec la commande :

Sheets(Array(NomFeuille)).Select
au lieu de
Sheets(Array("Ass. Modules", "Ass.baio", "Ass.Cont")).Select
car le nombre de noms de feuilles varie.

Lorsque j'écris le contenu de ma variable NomFeuille avec Debug.Print, je lis

"Ass. Modules","Ass.baio","Ass.Cont"
et cela semble correct mais ça ne passe pas avec
Sheets(Array(NomFeuille)).Select


Sub SelectionMultiOnglets()
Dim NomFeuille As String
Dim C As Variant
Sheets("Données").Select
Range("U1:U3").Select
' U1 = Ass. Modules
' U2 =Ass.baio
' U3=Ass.Cont
For Each C In Selection
NomFeuille = IIf(NomFeuille = "", """" & C.Value & """", NomFeuille & "," & """" & C.Value & """")
Next C
Debug.Print NomFeuille
' Je souhaite en balayant ma plage U1:U3 (qui peut varier jusqu'à Ux)
Sheets(Array(NomFeuille)).Select ' ça ne ramène pas les doubles quotes)
' Résultat souhaité
'Sheets(Array("Ass. Modules", "Ass.baio", "Ass.Cont")).Select
End Sub


Comme solution de secours, je pourrais dire sélectionne de la feuille 3 (1 et 2 ne sont pas concernés) à la dernière feuille mais
là aussi je sèche
D'avance merci







MichDenis
Le #5082031
Un truc de même sans variable est aussi bon :

Sheets(Application.Transpose(Range("A1:A3").Value)).Select

Et pour ton code s'exécute bien peu importe la feuille active

Tu ajoutes le nom de la feuille où est ta plage
Sheets(Application.Transpose(Range("Feuil1!A1:A3").Value)).Select




"RENAUD Eric"
Bonjour,
Merci à tous les deux, c'est parfait

"RENAUD Eric"
Bonjour,
Je balaye une plage de cellules de U1 à Ux, cellules contenant des noms
d'onglets (Ass. Modules, Ass.baio, Ass.Cont ...)
Je souhaite concaténer ces valeurs dans une variable (NomFeuille) pour
l'exploiter ensuite avec la commande :

Sheets(Array(NomFeuille)).Select
au lieu de
Sheets(Array("Ass. Modules", "Ass.baio", "Ass.Cont")).Select
car le nombre de noms de feuilles varie.

Lorsque j'écris le contenu de ma variable NomFeuille avec Debug.Print, je
lis

"Ass. Modules","Ass.baio","Ass.Cont"
et cela semble correct mais ça ne passe pas avec
Sheets(Array(NomFeuille)).Select


Sub SelectionMultiOnglets()
Dim NomFeuille As String
Dim C As Variant
Sheets("Données").Select
Range("U1:U3").Select
' U1 = Ass. Modules
' U2 =Ass.baio
' U3=Ass.Cont
For Each C In Selection
NomFeuille = IIf(NomFeuille = "", """" & C.Value & """", NomFeuille
& "," & """" & C.Value & """")
Next C
Debug.Print NomFeuille
' Je souhaite en balayant ma plage U1:U3 (qui peut varier jusqu'à Ux)
Sheets(Array(NomFeuille)).Select ' ça ne ramène pas les doubles
quotes)
' Résultat souhaité
'Sheets(Array("Ass. Modules", "Ass.baio", "Ass.Cont")).Select
End Sub


Comme solution de secours, je pourrais dire sélectionne de la feuille 3 (1
et 2 ne sont pas concernés) à la dernière feuille mais là aussi je sèche
D'avance merci



MichDenis
Le #5082011
Et une dernière variante,

Si tu as donné à ta plage un NOM (menu insertion nom)

Ceci au cas où un usager puisse modifier le nom de l'onglet de la feuille !
Sheets(Application.Transpose(Range("NOM_PLage").Value)).Select



"MichDenis" %23QVQ%
Un truc de même sans variable est aussi bon :

Sheets(Application.Transpose(Range("A1:A3").Value)).Select

Et pour ton code s'exécute bien peu importe la feuille active

Tu ajoutes le nom de la feuille où est ta plage
Sheets(Application.Transpose(Range("Feuil1!A1:A3").Value)).Select




"RENAUD Eric"
Bonjour,
Merci à tous les deux, c'est parfait

"RENAUD Eric"
Bonjour,
Je balaye une plage de cellules de U1 à Ux, cellules contenant des noms
d'onglets (Ass. Modules, Ass.baio, Ass.Cont ...)
Je souhaite concaténer ces valeurs dans une variable (NomFeuille) pour
l'exploiter ensuite avec la commande :

Sheets(Array(NomFeuille)).Select
au lieu de
Sheets(Array("Ass. Modules", "Ass.baio", "Ass.Cont")).Select
car le nombre de noms de feuilles varie.

Lorsque j'écris le contenu de ma variable NomFeuille avec Debug.Print, je
lis

"Ass. Modules","Ass.baio","Ass.Cont"
et cela semble correct mais ça ne passe pas avec
Sheets(Array(NomFeuille)).Select


Sub SelectionMultiOnglets()
Dim NomFeuille As String
Dim C As Variant
Sheets("Données").Select
Range("U1:U3").Select
' U1 = Ass. Modules
' U2 =Ass.baio
' U3=Ass.Cont
For Each C In Selection
NomFeuille = IIf(NomFeuille = "", """" & C.Value & """", NomFeuille
& "," & """" & C.Value & """")
Next C
Debug.Print NomFeuille
' Je souhaite en balayant ma plage U1:U3 (qui peut varier jusqu'à Ux)
Sheets(Array(NomFeuille)).Select ' ça ne ramène pas les doubles
quotes)
' Résultat souhaité
'Sheets(Array("Ass. Modules", "Ass.baio", "Ass.Cont")).Select
End Sub


Comme solution de secours, je pourrais dire sélectionne de la feuille 3 (1
et 2 ne sont pas concernés) à la dernière feuille mais là aussi je sèche
D'avance merci



Publicité
Poster une réponse
Anonyme