Modifier tableau suivant liste déroulante

Bonjour, j'avais clos ce sujet car je croyais le problème réglé.

Merci encore à "DAN" qui m'a solutionné rapidement la macro.

Je joins le fichier car comme demandé; dans la feuille "General"; si dans la liste déroulante je sélectionne un nom (lettre) je me retrouve avec des colonnes cachées faisant apparaitre uniquement les colonnes de la lettre sélectionnée. Par contre si 2 lettres dans la même colonne, je n'ai plus ce que j'avais demandé; c'est à dire voir uniquement l'emploi du temps de la personne représentée par sa lettre.

J'espère que la solution est possible.

Merci.

Bonsoir

J'aurais juré que vous alliez revenir sur ce point là lorsque je vous ai proposé la solution

Dans le cas de votre dernier fichier, vous pourriez montrer ce que vous voulez comme résultat avec ces deux lettres ?

Cordialement

Bonsoir, merci pour votre retour.

Je vous joins le fichier en ayant mis en ex. "R" qui se retrouve avec "P" le même jour.

Cordialement

Votre dernier fichier ne sert pas à ma question. Ce que vous montrez dans votre fichier est identique à votre premier fichier posté et à ce que le code Masque fait.

D'où ma question que voulez vous comme résultat quand vous dites "si 2 lettres dans la même colonne, je n'ai plus ce que j'avais demandé"

Si je sélectionne "R" par exemple; je veux voir uniquement son emploi du temps de la semaine (je veux voir que des "R"). Malheureusement si une autre personne est positionné le même jour; cela va apparaitre.

J'espère qu'on s'est compris

Si je sélectionne "R" par exemple; je veux voir uniquement son emploi du temps de la semaine (je veux voir que des "R").

Donc vous voulez cacher les lignes 19 à 20 qui contiennent la valeur P ?

Reprenez votre premier fichier, ligne 13 à 18 vous avez B et P sur les mêmes lignes, Ligne 19 et 20 vous avez M, B et P sur la même ligne vous voulez quoi ? C'est cela la question depuis le départ

Bonjour, vous n'y êtes pas du tout. Je ne parle pas des lignes, je parle des colonnes.

D'une année à l'autre les emplois du temps vont changer. Ce que je veux, c'est pouvoir faire un emploi du temps global des pers. désignées par une lettre et si je veux par le biais de la liste déroulante voir l'emploi du temps d'une seule pers.; je veux que ce soit réalisable.

C'est réalisable en partie grâce à votre macro, très bien faite d'ailleurs, mais malheureusement comme dit précédemment, je me retrouve dans la même colonne avec 2 lettres apparentes comme dans l'ex cité précédemment. Dans ce cas, si j'ai sélectionné "R", je ne veux pas voir le "P"

capture

Bonjour, vous n'y êtes pas du tout. Je ne parle pas des lignes, je parle des colonnes.

Ben si j'y suis. C'est vous qui ne comprenez pas ce je vous exxplique

Comment voulez-vous que j'affiche une colonne avec une seule donnée quand vous en avez deux différentes. Dans votre vue comment voulez-vous que affiche uniquement R sans P puisqu'elles sont dans la même colonne ?
Raison pour laquelle je vous parlais de lignes à cacher éventuellement mais là également vous aurez un souci

C'est pour cela que je vous ai demandé depuis le début du fil de me montrer une vue de ce que vous voulez comme résultat final sachant que l'on ne peut pas effacer les valeurs présentes. Dans votre exemple si on veut voir R on ne va pas effacer P

Peut être caché des ligne au lieu de colonnes ?

Sinon, c'est pas grave je me contenterai de ce que vous m'avez fait.

Cordialement

Cacher les lignes n'arrangera rien. Relisez mon post à 12h37. Vous aurez le même souci que pour les colonnes

La seule solution que je peux proposer est de jouer sur les couleurs.
Exemple dans votre vue, on change les couleurs de P si on ne veut voir que R.

A voir si cela convient car il ne faudra pas aller inscrire une valeur dans une cellule qui contient une valeur mais non visible à l'écran car les couleurs sont adaptées pour ne pas la voir

Ok merci. Je peux faire comme cela.

Cordialement

Re

Remplacez la macro Masque que je vous ai donnée dans l'autre fil par celle 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
    Call Colorisertableau
    If .Range("B34") = "" Then Exit Sub
    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
    Dim cel As Range
    For Each cel In .Range("C3:AU20")
        With cel
            If .EntireColumn.Hidden = False And .Value <> "" And .Value <> Range("B34") Then
                .Interior.Color = xlNone
                .Font.Color = RGB(255, 255, 255) 'xlNone
            End If
        End With
    Next cel
End With
End Sub

Si vous choisissez une valeur en B34, le code masque les colonnes et, par modification de couleurs, cache les valeurs existantes ne correspondant pas à la cellule B34.
Si vous effacez la valeur en B34, le code vous affiche toutes les colonnes et valeurs enregistrées dans votre planning.

Attention vous devez absolument avoir votre code "ColoriserTableau" qui se trouve dans votre fichier. Sans trop analyser, je l'ai revu un peu. Remplacez l'existant poar celui ci-dessous

Sub Colorisertableau()
Dim F1 As Worksheet
Dim Plage As Range, cell As Range

Application.ScreenUpdating = False
Set F1 = Worksheets("General")

With F1
    Set Plage = .Range("B3:AU20")
    For Z = 22 To 31
        For Each cell In Plage
            With cell
                If .Value = Cells(Z, 1).Value Then .Interior.Color = F1.Cells(Z, 1).Interior.Color
                If .Value = Cells(Z, 1).Value Then .Font.Color = F1.Cells(Z, 1).Font.Color
            End With
        Next cell
    Next Z
End With
Application.ScreenUpdating = True
End Sub

Cordialement

Génial; vous êtes un ange. J'espère ne pas vous avoir fait trop perdre de votre temps.

Encore, merci. Je clos le sujet.

Amitiés.

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