Sélection rapide de plusieurs onglets

Je travaille en ce moment sur un classeur permettant la gestion du stock de petit matériel de l'entreprise où je suis en stage.

J'ai tout regroupé en un seul classeur. Il y a 3 types de feuilles : Matériels, Personnel et Fournisseurs. Le souci est que le classeur contient plus de 200 feuilles.

J'aimerai trouver un moyen rapide de sélectionner chaque type de feuilles d'un coup, dans le but de les imprimer rapidement. J'ai pensé à faire une macro mais je n'ai aucune notion de Visual Basic.

Toute aide serait la bienvenue

Bonjour

Pour ce genre de Macro, l'éditeur de macro est un bon outil.

Tu fais "Outil" "Macro' "Nouvelle macro", tu lui donne un nom, et à partir du moment ou tu valides, Excel enregistre tout ce que tu fais et écrit le code de la macro.

Tu sélectionnes donc les onglets concernés par le premier choix, et quant tu as terminé, tu reviens sur "Outil" "Macro" et "Arrêter l'enregistrement".

Tu refais la même opération pour les autres séries d'onglet. (une macro par série)

Tu crées des boutons et tu leur affecte les macros.

Cordialement

J'ai réussi du moins sur la "technique" mais j'ai un souci un peu embêtant.

Sur les petites sélections ça marche nickel , en revanche sur les sélections importantes, je reçois un message d'erreur dans Visual Basic "Procédure trop grande". La taille doit être inférieure à 64ko. On me demande dans l'aide de fractionner la procédure, ce que je ne veux pas faire.

Y-a-t-il une solution ?

Bonjour

sans le voir le code ou ton fichier avec l'explication de ce que tu veux faire, c'est pas facile de te proposer quelque chose.

Montre le code en question.

A te relire

Dan

Bonjour

En attendant mieux, une solution semi-manuelle qui peut aiderconsiste à utiliser VBA pour classer les onglets par ordre alpha puis de cliquer droit sur la barre de défilement rapide des onglets (à gauche des noms d'onglets) et sélectionner dans la liste le dernier onglet de la lettre correspondante, et, en maintenant la touche Majuscule enfoncée de revenir sur le < ou I< de la même barre de défilement rapide pour sélectionner le premier.

https://www.excel-pratique.com/~files/doc2/Classer_Onglets.xls

Cordialement

La sélection du matériel posait problème et j'ai finalement divisé en 3 morceaux. Ca me convient même si j'aurai préféré une sélection unique.

Je serai quand même curieux de savoir comment alléger la macro de sorte qu'elle fonctionne.

Bonjour

Rien que sur la Feuille 2, il existe 4089 noms d'onglets. La pluspart sont répétés en moyenne 40 fois, preuve que la sélection manuelle lors de l'enregistrement n'est pas pratique.

VBA n'est pas dans mes spécialités et mes solutions tiennent surtout de la "bidouille" et, ce n'est que parce que personne ne répond (pas de solution miracle peut-être) que je m'avance.

L'inconnue est que je ne sais pas qu'elle est la longueur maxi d'un code toléré par vba

En dehors des 2 ou 3 lignes de code pour sélectionner les fichiers, si j'étais confronté à ton problème, avec mon peu de connaissances:

1) j'utiliserais ce code qui liste les feuilles d'un classeur dans une colonne, après avoir créé une Feuille et l'avoir nommée Liste des Feuilles et je classerais cette liste en alpha, pour regrouper les fichiers sous leur lettre générique.

2) Dans la colonne B de cette Feuille, j'entrerais une formule du style

=CAR(34)&A2&CAR(34) que j"incrémenterais jusqu'au bas, puis je ferais un Copier-Collage-Spécial- Valeur de cette colonne

3) Je copierais cette colonne et la collerais dans une Feuille Word

4) j'utiliserais la propriété des Tableaux Word et je le transformerais en Texte "Séparé par des virgules" pour obtenir un texte en ligne conforme au code vba

5) Je recopierais la partie de ce texte (Lettre générique qui m'intéresse) et la collerais dans ma macro (pour éviter les doublons de noms d'onglets)

Je sais, c'est bidouille, mais rationnel.

Le Code pour lister les onglets après avoir créé une feuille nommée Liste des Feuilles:(Auteur Joss)

Sub ListeFeuilles()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set ArrFeuil = Sheets("Liste des feuilles")
ArrFeuil.Cells(1, 1).Value = "Tableau des feuilles"
For i = 2 To ActiveWorkbook.Sheets.Count
ArrFeuil.Cells(i, 1).Value = Sheets(i).Name
Next i
Application.DisplayAlerts = True
Alerte = True
Application.ScreenUpdating = True
End Sub

Bon courage, tout de même. Si j'avais eu le fichier (avec des feuilles blanches) j'aurais essayé par curiosité.

Cordialement

Bonsoir à tous,

Bonsoir Amadéus,

Sans voir ton fichier, à ta place, je commencerai par me demander pourquoi 200 feuilles !

et je pressents qu'avec une base de données, toutes ces feuilles seraient inutiles.

Envoie une feuille pour voir.

Amicalement

Claude.

Rechercher des sujets similaires à "selection rapide onglets"