VBA-Sélection toutes feuilles d'un classeur
soln_soln
Messages postés
1
Statut
Membre
-
Antoine -
Antoine -
Bonjour,
Je travaille sur un classeur Excel sur lequel je récupère des données via Report Builder; la requête créée des feuilles(le noms sont différents à chaque fois). J'ai une macro qui me prépare les feuilles (suppression feuilles vides, mise en forme...); j'ai besoin que cette macro sélectionne toutes les feuilles, quelque soit leur nom. Ce que j'ai fait marche uniquement si les feuilles portent le même nom à chaque fois :
Sheets(Array("Données", "feuille1", "feuille2", "feuille3).Select
Sheets("ALBEMA-feuille1").Activate
Quelqu'un pourrais me mettre sur la voie?
D'avance merci
Solène
Je travaille sur un classeur Excel sur lequel je récupère des données via Report Builder; la requête créée des feuilles(le noms sont différents à chaque fois). J'ai une macro qui me prépare les feuilles (suppression feuilles vides, mise en forme...); j'ai besoin que cette macro sélectionne toutes les feuilles, quelque soit leur nom. Ce que j'ai fait marche uniquement si les feuilles portent le même nom à chaque fois :
Sheets(Array("Données", "feuille1", "feuille2", "feuille3).Select
Sheets("ALBEMA-feuille1").Activate
Quelqu'un pourrais me mettre sur la voie?
D'avance merci
Solène
A voir également:
- Selectionner toutes les feuilles d'un classeur excel vba
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Trier un tableau excel - Guide
- Imprimer un classeur excel sur mac - Guide
- Selectionner toutes les photos google photo - Guide
5 réponses
Si il y a des feuilles cachées, le plus simple est de les rendre temporairement visible dans la boucle...
Sub SelectAll()
Dim TableDesFeuilles() as string
Dim i as integer
Dim S as Worksheet
i=0
For each S in MyWbook.sheets
Redim Preserve TableDesFeuilles(i)
TableDesFeuilles(i) = S.Name
i = i + 1
Next
MyWbook.sheets(TableDesFeuilles).select
End Sub
Remplace MyWbook par le nom de ton classeur si tu travaille sur plusieurs classeurs en même temps sinon ne le précise pas. il prendra le classeur actif par defaut.
Voila, ravi d'avoir pu t'aider !
Perceval Blakeney.
Dim TableDesFeuilles() as string
Dim i as integer
Dim S as Worksheet
i=0
For each S in MyWbook.sheets
Redim Preserve TableDesFeuilles(i)
TableDesFeuilles(i) = S.Name
i = i + 1
Next
MyWbook.sheets(TableDesFeuilles).select
End Sub
Remplace MyWbook par le nom de ton classeur si tu travaille sur plusieurs classeurs en même temps sinon ne le précise pas. il prendra le classeur actif par defaut.
Voila, ravi d'avoir pu t'aider !
Perceval Blakeney.
Bonjour,
Je réactive ce vieux message, car cette procédure ne fonctionne pas si le classeur comporte des feuilles cachées.
Avez vous des suggestion.
Merci
Je réactive ce vieux message, car cette procédure ne fonctionne pas si le classeur comporte des feuilles cachées.
Avez vous des suggestion.
Merci
Ou de tester l'etat des feuilles (S.Visible = true / false) dans la boucle :
Si Visible = True alors ajoute le nom au tableau (procedure donnée plus haut).
Sinon passe directement à la feuille suivante.
Si Visible = True alors ajoute le nom au tableau (procedure donnée plus haut).
Sinon passe directement à la feuille suivante.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question