Modifier tableau suivant liste déroulante

Bonjour à tous les membres, après avoir eu une première aide par rapport à la rédaction d'une macro pour ce même fichier (PJ.)

et voulant l'améliorer; voici ma question:

Est il possible à partir d'une liste déroulante de modifier la présentation d'un tableau?

c'est à dire ne laisser apparaitre dans mon tableau "General" que la même lettre que la liste déroulante.

Ex: si je choisi dans ma liste la lettre "B"; je veux voir uniquement les cellules contenant cette lettre dans ce tableau.

Est ce que cela aura une incidence avec la macro "colorer" dans cette feuille

Merci pour votre aide

Bonjour

c'est à dire ne laisser apparaitre dans mon tableau "General" que la même lettre que la liste déroulante.
si je choisi dans ma liste la lettre "B"; je veux voir uniquement les cellules contenant cette lettre dans ce tableau.

Cela pose la question suivante :
- Pouvez vous avoir des lettres différentes dans les lignes d'une même colonne
- vous voulez cacher les colonnes si la valeur est trouvée ?

Bonjour, très bonne remarque. Il se pourrait que dans la même colonne, on puisse mettre d'autres lettres puisque c'est un planning. Les lettres correspondent à une personne.

Dans les lignes également; mais jamais dans la cellule. Les colonnes non occupées une fois le résultat établi peuvent être éventuellement cachées.

Merci

Donc si je prends l'exemple de votre fichier, en choisissant B on aurait que les colonnes A et B et celles comportant la lettre B qui seraient visibles

Oui, pourquoi pas. Si c'est mieux de laisser toutes les colonnes; cela ne me gène pas. En espérant que cela ne gène en rien les raccourcis des macros.

Si c'est mieux de laisser toutes les colonnes; cela ne me gène pas

Pas compris là ? On masque bien les colonnes qui n'ont pas la valeur de la liste déroulante non ?

Ensuite reste un souci, la liste déroulante est dans la colonne T, si elle est cachée parce qu'elle contient un B par exemple, vous faites comment pour changer la lettre... ?

On peut peut être déplacer la liste déroulante dans les colonnes A et B ?

Masquer les colonnes ou effacer les cellules ne contenant pas la lettre ?

Ok dites moi où vous la mettez

Dans A34-B34

Ok. La liste déroulante étant considérée dans B34, faites ceci

- Click droite sur le nom de l'onglet General
- Choisissez l'option "Visualiser le code"
- Coller le code ci-dessous dans la fenêtre

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B34")) Is Nothing Then
    Call masque
End If
End Sub

Ensuite allez dans un module et coller le code ci- dessous

Sub masque()
Dim col As Byte
Dim i As Long
Dim F1 As Worksheet

Set F1 = Worksheets("General")

With F1
    .Cells.EntireColumn.Hidden = False 'pour reafficher toutes les colonnes
    On Error Resume Next
    For i = .Cells(2, Columns.Count).End(xlToLeft).Column To 3 Step -1
        col = .Range(.Cells(3, i), .Cells(20, i)).Find(.Range("B34").Value, LookIn:=xlValues, LookAt:=xlWhole).Column
        If col > 0 Then
            .Cells(3, i).EntireColumn.Hidden = False
        Else: .Cells(3, i).EntireColumn.Hidden = True
        End If
        col = 0
    Next i
End With
End Sub

Dès que vous changerez la valeur de la liste les colonnes ne comportant pas la valeur choisie seront masquées.

Cordialement

Je ne comprends pas dans "Aller dans un module"

J'ai créer un nouveau module, j'ai copié ce que vous m'avez dit mais rien ne se passe !!

Pas besoin de créer un nouveau module, vous pouvez coller le code dans un module existant

J'ai corrigé le code Masque --> il faut remplacer T24 par B34 dans la ligne FIND

Crdlt

Tout marche en copiant dans un module existant.

Je vous remercie pour votre patience et votre générosité.

Amitiés.

Rechercher des sujets similaires à "modifier tableau suivant liste deroulante"