VBA - afficher des feuilles selon un critere

Bonjour,

Je ne sais si le sujet a déjà été évoqué et pour une question de droits, car j'ai acheté le fichier de base, je ne pourrais poster le fichier que j'ai en ma possession que je souhaite modifier.

Il s'agit d'un facturier.

Chaque facture est éditée sur une NOUVELLE FEUILLE.

CHAQUE FEUILLE PORTE AUTOMATIQUEMENT LE NOM DE LA FACTURE : F25...

J'ai d'autres feuilles servant de base pour remplir le fichier, la facture est remplie automatiquement en fonction des feuilles de base et ces dernières sont masquées par souci de facilité de lecture.

Je souhaiterais avoir une macro qui m'afficherait uniquement toutes les feuilles dont le nom commence par F25

Y aurait-il une âme charitable qui pourrait m'aider?... Cela fait 3h que je cherche et je déjante c'est horrible ;-)

J'ai essayé plusieurs combinaisons et je n'ai que des erreurs...

En vous remerciant par avance!

Bonjour,

En PJ un classeur exemple qui contient ldu code permettant de n'afficher que les feuilles dont le nom commence par "F25".

Attention cependant. Ceci est un classeur exemple libre de droits mais tu dis que ton fichier ne l'est pas. Il se peut donc qu'il soit protéger contre cet affichage ou même l'exécution de code.

Teste et dis nous.

9f25.xlsm (19.20 Ko)

bonjour BPOT29, salut Alex020181,

si on a des problèmes comme vous les décrivez, on met votre macro dans un 2eme fichier (persnlk.xlsm???) et on lance votre macro en changeant "Thisworkbook" par le nom du fichier "factureur".

Bonjour,

Voici une proposition :

Sub AfficherFactures()
    Dim ws As Worksheet

    ' Masquer toutes les feuilles
    For Each ws In ThisWorkbook.Sheets
        ws.Visible = xlSheetVeryHidden
    Next ws

    ' Afficher uniquement les feuilles dont le nom commence par "F25"
    For Each ws In ThisWorkbook.Sheets
        If Left(ws.Name, 3) = "F25" Then
            ws.Visible = xlSheetVisible
        End If
    Next ws

    ' Optionnel : Activer la première feuille trouvée
    For Each ws In ThisWorkbook.Sheets
        If ws.Visible = xlSheetVisible Then
            ws.Activate
            Exit For
        End If
    Next ws

    MsgBox "Seules les feuilles 'F25...' sont maintenant visibles.", vbInformation, "Filtrage des factures"
End Sub

Bonjour TrNizar,

Juste pour info hein pas pour te mettre à l'amende.

Y a souci avec ton code. Syntaxiquement OK mais :

  • tu commences par une boucle qui veut masquer TOUTES les feuilles. Excel va te planter car au moins une feuille doit rester visible
  • il est vrai que ce n'est pas précisé dans la demande mais ta seconde boucle pour afficher les feuilles voulues tient compte de la casse en ne prenant en compte que les feuilles dont le nom est "F25" avec une majuscule et pas "f25"
Rechercher des sujets similaires à "vba afficher feuilles critere"