VBA pour sélectionner des feuilles à partir d'une cellule remplie "Oui/Non"

oxygo

XLDnaute Nouveau
Bonjour à tous

Ce que je souhaite faire est simple mais après des heures de recherche et d'essai aucunes de mes macro ne fonctionnent.

J'ai un classeur avec 30 feuilles (onglets),
Dans la première feuille j'ai un sommaire de mes 30 feuilles avec lien hypertexte pour naviguer plus facilement.
Mon sommaire reprend exactement le nom de mes feuilles, sous la forme d'une colonne. Il y a une une deuxième colonne où je remplie Oui ou Non (en face de mes noms de feuilles) et je souhaiterais que lorsque que je lance ma macro, les feuilles Oui soient automatiquement sélectionnées, au lieu de faire CTRL et cliquer sur chacune des feuilles...

Si quelqu'un pouvait m'aider :)
 
G

Guest

Guest
Re : VBA pour sélectionner des feuilles à partir d'une cellule remplie "Oui/Non"

Bonjour,

Ce pourrait-être :

Code:
Sub selSheets()
    Dim c As Range 'cellule parcourue
    Dim j As Integer 'index de tableau
    Dim Feuilles() As String 'Tableau des noms de feuille à sélectionner
    With Feuil1
        'parcourir les cellules de la colonne A
        For Each c In .Range("A1:A" & .Cells(Rows.Count, 1).End(xlUp).Row)
            'Si la cellule de droite contient oui
            If LCase(c(1, 2)) = "oui" Then
                'redimensionner le tableau et ajouter le nom de la feuille
                ReDim Preserve Feuilles(0 To j)
                Feuilles(j) = c
                j = j + 1
            End If
        Next
        
    End With
    If j > 0 Then Sheets(Feuilles).Select
End Sub

A+
 
Dernière modification par un modérateur:

Pierrot93

XLDnaute Barbatruc
Re : VBA pour sélectionner des feuilles à partir d'une cellule remplie "Oui/Non"

Bonsoir oxygo, Hasco:)

c'est fait, comme c'est une autre approche alors je donne...
Code:
Option Explicit
Sub test()
Dim c As Range, b As Boolean
b = True
For Each c In Range("A1:A30")
    If LCase(c.Offset(0, 1).Value) = "oui" Then Sheets(c.Value).Select b: b = False
Next c
End Sub

bonne soirée
@+
 

oxygo

XLDnaute Nouveau
Re : VBA pour sélectionner des feuilles à partir d'une cellule remplie "Oui/Non"

Bonsoir à vous,

J'ai testé vos deux solutions sur un fichier simple pour commencer et les deux fonctionnent. Je vais tester ensuite ça sur mon gros fichier et voir si j'arrive à m'en sortir, le plus dur c'est d'adapter et comprendre le VBA savoir où il faut modifier quelques choses.

J'en profite pour vous demander (afin de rejoindre mon autre poste), une fois que j'ai mes feuilles de sélectionnées, es-ce que je peux faire une seconde macro pour imprimer en PDF ma sélection mais dans un SEUL pdf, ma VBA actuelle me fait un pdf par feuille ou juste un pdf pour la dernière feuille et rien pour les autres (et du coup ma pagination saute), j'ai un mal de chien à les compiler...

Je voudrais distinguer ça en deux boutons : Le premier lance la macro sélection, je peux donc ensuite faire des modifs etc et le second bouton m'imprime en pdf ma sélection vous voyez ce que je veux dire :p ? Enfin si vous voyez c'est du bonus ^^
 

Discussions similaires

Statistiques des forums

Discussions
312 333
Messages
2 087 371
Membres
103 528
dernier inscrit
maro