Tableau Résultat

Je ne sais quoi dire

C'est tellement une évidence que je cherchais trop loin

Merci et bon après-midi

Merci du retour mais vous prenez quel solution ?

Bonjour Dan,

Désolé pour la réponse tardive.

J'ai mis une macro pour masquer les lignes chaque fois que la feuille s'ouvre

Bonne journée

Bonjour Dan,

En regardant le fichier avec mes collègues, ils souhaitent ajouter des objectifs par personnes ou pour l'équipe. A la base cela devait être uniquement en équipe.

Cela implique que maintenant dans la feuille "Résulats" j'ai ajouté en colonne C le nom des personnes. Il serait idéal que lorsque je sélectionne en G2

- Le nom de la personne (Exemple Daniel) -> uniquement les objectifs au nom de Daniel apparaissent
- Equipe -> uniquement les objectifs Equipe apparaissent
-Tous -> Tous les résultats apparaissent (ceux au nom de de la personne + ceux avec Equipe)

Là j'avoue, je sèche pour la solution

Excellente journée

Bonjour

Pour bien comprendre, vous voulez que les lignes dont on ne trouve pas le nom en colonne C soient masquées en fonction du choix en G2 ?

Bonjour Dan,

Exactement, sauf si il y a "tous" en G2 ou là toutes les lignes avec un objectif doivent appararaître.

Bon après-midi

Re

essayez ceci

1. Dans votre feuille Resultats, mettez ces deux codes en lieu et place

Private Sub Worksheet_Activate()
Rows("27:30").EntireRow.Hidden = True
Range("G3").Select
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("G2")) Is Nothing Then
    Call masque_Affiche
End If
End Sub

2. Dans le module, ajoutez le code ci-dessous

Sub masque_Affiche()
Dim dlg As Byte

Application.ScreenUpdating = False
With Sheets("Résultats")
    dlg = .Range("B7").CurrentRegion.Rows.Count + 1

    Select Case UCase(Range("G2"))
    Case "TOUS"
        .Rows("7:" & dlg).Hidden = False

    Case Else
        For i = 7 To dlg
            If Not UCase(.Range("B" & i)) Like "*IMPORTANT*" Then
                If .Range("C" & i).Value <> .Range("G2").Value Then
                    .Rows(i).Hidden = True
                Else: .Rows(i).Hidden = False
                End If
            End If
        Next i
    End Select
End With
Application.ScreenUpdating = True
End Sub

Pour le test, changez la valeur en G2

Crdlt

Bonjour Dan,

Un tout grand merci Il y a juste quand je mets "tous" il y a également les lignes qui n'ont pas d'objectifs qui apparaissent. Serait-ce possible de faire apparaitre uniquement les lignes avec un objectifs ?

Lorsque je mets "tous" en G2 et que je veux changer, VBA met un bug à

Case Else
For i = 7 To dlg
If Not UCase(.Range("B" & i)) Like "*IMPORTANT*" Then
If .Range("C" & i).Value <> .Range("G2").Value Then
.Rows(i).Hidden = True
Else: .Rows(i).Hidden = False

Excellente fin de journée

Lorsque je mets "tous" en G2 et que je veux changer, VBA met un bug à

Bah déjà vous avez un souci puisque c'est impossible que le code passe par cette étape si vous avez TOUS en G2...
en tout cas dans votre fichier posté je n'ai pas ce soucis

Cher Dan,

J'ai copié le code sous module 2 et lorsque je change la cellule G2, j'ai une erreur

Ben oui votre fichier n'est pas identique au précédent

Vous avez ajouté des formules en colonne C. Modifiez-les en ajoutant un sierreur pour ne pas avoir un N/A dans chaque cellule

Exemple en C11, votre formule comme ceci --> =SIERREUR(RECHERCHEV(B11;Objectifs[[TÂCHES]:[PERSONNE]];5;FAUX);"")

Bonjour Dan,

Merci beaucoup pour votre aide.

Existe-t-il un moyen pour que lorsque je mets en G" "Tous" il y a uniquement les lignes avec des objectifs qui apparaissent et pas toutes les lignes

Excellente journée

Bonjour

Existe-t-il un moyen pour que lorsque je mets en G" "Tous" il y a uniquement les lignes avec des objectifs qui apparaissent et pas toutes les lignes

Ah oui, juste vous l'aviez demandé dans votre post précédent... désolé j'ai zappé

Allez dans le module --> Sub masque_affiche -_> remplacez

Case "TOUS"   
        .Rows("7:" & dlg).Hidden = False

par ceci

Case "TOUS"
        For i = 7 To dlg
            If Not UCase(.Range("B" & i)) Like "*IMPORTANT*" Then
                If .Range("C" & i).Value = vbNullString Then
                    .Rows(i).Hidden = True
                Else: .Rows(i).Hidden = False
                End If
            End If
        Next i

Cordialement

WOUAH génial un tout grand merci

Je pense un dernier point. J'ai ajouté des lignes pour les objectifs et VBA me met les messages suivants

image image

Excellente journée

changez dim dlg as byte par dim dlg as Integer

Merci pour la modification

Ca me met toujours le même message mais plus bas.

image

Merci et très bonne journée

Vous avez dû faire une modification quelque part

Reprenez le fichier posté ici et tester sur celui là. Vous verrez que cela fonctionne

Edit : vous écrivez ceci

J'ai ajouté des lignes pour les objectifs et VBA me met les messages suivants

Qu'avez-vous modifié ?

Sinon enlevez un peu le "AS INTEGER"


RE EDIT : Il y a un truc à corriger :

Ajoutez un point devant RANGE("G2") à la ligne Select case Ucase....
La ligne comme ceci

Select Case UCase(.Range("G2"))

Je suis vraiment navré. J'ai recopié à nouveau vos codes et cela ne fonctionne toujours pas. Toujours le même message. Voici le fichier définitif

Très bonne fin de journée

Ok il y a une déclaration dim qui était à faire

Donc comme ceci

Dim dlg As Integer, i As Integer

désolé ... pour cet oubli....

Oh mon cher Dan,

Avec toute l'aide très précieuse que vous m'avez apporté, cet oubli est pinuts.

Tout à l'air de fonctionner à merveille sauf sous la feuille résultats ou je veux que la ligne 160 "Terminé" soit toujours visible comme les lignes 7, 58 & 109

Excellent journée

Rechercher des sujets similaires à "tableau resultat"