Tableau Résultat

Bonjour,

J'ai le tableau ci-joint pour les résultats. J'ai fait une macro pour cacher des lignes et elle ne fonctionne pas. Je souhaiterais que si il y a que 2 objectifs "important & Urgent" uniquement 2 lignes apparaissent dans la feuille résultat.

De plus dans la feuille "tâches", les objectifs sont mis à la suite. Comment faire pour qu'ils intègrent bien la bonne ligne dans la page "Résultats" selon la colonne A dans la feuille "Tâches" et qu'ils se mettent à la suite.

17resultat.xlsm (74.40 Ko)

Bonjour,

Je souhaiterais que si il y a que 2 objectifs "important & Urgent" uniquement 2 lignes apparaissent dans la feuille résultat

Plutôt que de mettre votre code dans la feuille Resultat, placez-le dans la feuille "Tâches"
Votre code comme ceci :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A2:A16")) Is Nothing Then
    With Sheets("Résultats")
        .Cells.EntireRow.Hidden = False
        Select Case .Range("C28").Value
            Case Is = 1: .Rows("8:12").EntireRow.Hidden = True
            Case Is = 2: .Rows("9:12").EntireRow.Hidden = True
            Case Is = 3: .Rows("10:12").EntireRow.Hidden = True
            Case Is = 4: .Rows("11:12").EntireRow.Hidden = True
        End Select
    End With
End If
End Sub

Il réagira sur base du changement dans le colonne A de la feuille Tâche

Cordialement

Bonjour Dan,

Merci pour la formule qui fonctionne bien pour une couleur. Si je veux la dupliquer pour les 2 autres couleurs, elle ne fonctionne pas

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A2:A16")) Is Nothing Then
With Sheets("Résultats")
.Cells.EntireRow.Hidden = False
Select Case .Range("C28").Value
Case Is = 0: .Rows("8:12").EntireRow.Hidden = True
Case Is = 1: .Rows("9:12").EntireRow.Hidden = True
Case Is = 2: .Rows("10:12").EntireRow.Hidden = True
Case Is = 3: .Rows("11:12").EntireRow.Hidden = True
Case Is = 4: .Rows("12").EntireRow.Hidden = True
End Select
End With

With Sheets("Résultats")
.Cells.EntireRow.Hidden = False
Select Case .Range("C29").Value
Case Is = 0: .Rows("14:18").EntireRow.Hidden = True
Case Is = 1: .Rows("15:18").EntireRow.Hidden = True
Case Is = 2: .Rows("16:18").EntireRow.Hidden = True
Case Is = 3: .Rows("17:18").EntireRow.Hidden = True
Case Is = 4: .Rows("18").EntireRow.Hidden = True
End Select
End With

End If
End Sub

Comment faire ?

D'avance un tout grand merci

Bonjour

Merci de bien vouloir utiliser les balises de code en utilisant l'icone </> dans la barre de menu lorsque vous postez un code.
J'ai corrigé dans votre post


Si je veux la dupliquer pour les 2 autres couleurs, elle ne fonctionne pas

Heu, je n'ai pas compris. Dupliquer ? et Quelle couleur ?
Ce n'est pas dans votre demande si j'ai bien relu

Rem : dans le milieu du code vous répétez ces lignes

With Sheets("Résultats")
.Cells.EntireRow.Hidden = False

Ce n'est pas bon. Vous ne devez les avoir qu'une seule fois et ce, au début du code. Donc supprimez -les ainsi que le END WITH juste avant

Bonjour,

Oui excusez-moi pour le code mal écrit.

Ca fonctionne comme je voulais merci beaucoup.

Par hasard savez-vous comment je peux indiquer que si dans la feuille "tâches" j'ai des données "importante & urgente" en "B2" et "B5", je souhaite que le texte soit repris dans la feuille "Résultat" en "B8" et "B9" et si des données "urgent mais pas important" en "B3" et "B7" que le texte soit repris dans la feuille "résultat" en "B14" et "B15"

Re

je peux indiquer que si dans la feuille "tâches" j'ai des données "importante & urgente" en "B2" et "B5",...

En B2 et B5 ? ce n'est pas A2 et A5 ?
Quel texte voulez-vous avoir en feuille Résultat

Juste une idée ... ce que vous voulez c'est que si en A2 et A5 vous avez "Importante & urgente", les données en B2 et B5 de la feuille Taches soit mentionnées en B8 et B9 dans le feuille résultat ?

exactement

Merci

Bonjour

Allez dans le code Private Sub Worksheet_Change(ByVal Target As Range), modifiez comme ceci
- En dessous du premier END SELECT, mettez ces lignes

i = 7
tache = .Range("B28")
Call remplir(i, tache)

- en dessous du 2ieme END SELECT, mettez ces lignes

i = 13
tache = .Range("B29")
Call remplir(i, tache)

- Allez dans le menu "Insertion" et cliquez sur Module
- Dans la fenêtre collez ce code

Option Explicit
Public i As Byte
Public tache As String

Sub remplir(i As Byte, tache As String)
Dim c As Range
Dim prem As String

With Feuil1.Range("A1:A16")
    Set c = .Find(tache, LookIn:=xlValues)
    If Not c Is Nothing Then
        prem = c.Address
        Do
            Sheets("Résultats").Range("B" & i + 1) = Feuil1.Cells(c.Row, 2)
            i = i + 1
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> prem
    End If
    End With
End Sub

Une fois terminé, faites vos choix dans la colonne A de la feuille Taches

NB : gardez les espaces (indentation) placés avant chaque ligne, cela permet de mieux visualiser le code

Cordialement

Bonjour Dan,

Un très grand merci pour votre aide grâce à laquelle je suis à bout touchant. Cependant, il y a encore 2 petits problèmes que je ne comprends pas.1

1) pour les cas "important & pas urgent, seul 2 lignes apparaissent sous la feuille "Résultats" alors que sous la feuille "Tâches", il y a 5 lignes

2) Le système va bien rechercher les informations de la colonne "B" de la feuille "Tâches" mais uniquement pour les tâches "important et urgent" mais pas pour les 2 autres.

Excellente journée et un tout grand merci pour le partage de votre savoir

4resultat.xlsm (80.64 Ko)

re

En premier, mais pourquoi vous mettez deux codes remplir ??
vous ne devez avoir que le code sub remplir(.....) et pas de remplir1
Donc supprimez le code remplir1 dans le module et corrigez dans le code "worksheet_change" où vous avez mis le code remplir1 au lieu de remplir

1) pour les cas "important & pas urgent, seul 2 lignes apparaissent sous la feuille "Résultats" alors que sous la feuille "Tâches", il y a 5 lignes

Non cela fonctionne bien mais le code agit sur base du choix de votre liste déroulante. Donc refaite un choix en utilisant la liste déroulante
Supprimez les données entre A15 et A19, puis remettez-le choix "important et pas urgent" dans la liste déroulante

Point 2 : même problème que le point 1 et ma remarque en première ligne

Crdlt

Un tout grand merci pour votre aide

Je viens de terminer mon fichier et je constate que les 3 derniers objectifs "A17 à A19" de la feuille tâches, ne sont pas repris sous la feuille "Résultats".

Je n'arrive pas à comprendre pourquoi ?

D'avance merci et excellente journée

2essai.xlsm (82.77 Ko)

Bonjour

Je viens de terminer mon fichier et je constate que les 3 derniers objectifs "A17 à A19" de la feuille tâches, ne sont pas repris sous la feuille "Résultats".

Logique puisque vous avez modifié votre plage de référence
Allez dans le code Private Sub Worksheet_Change(ByVal Target As Range), et là voyez que vous vous limitez à la plage A2 à A16 dans cette ligne

If Not Application.Intersect(Target, Range("A2:A16")) Is Nothing Then

Remplacez simplement A16 par A19

Cordialement

Erreur de manipulation

Merci

Bonjour Dan,

Lorsque que je rentre le degré d'urgence dans la feuille Tâches, ça met des 1 dans les cellules B13, B19 & B25 de la feuille Résultats
Je n'arrive pas à faire en sorte que cela ne se produisent pas. Cela écrase les textes de B13 6 B19.
Auriez-vous une idée ?
D'avance merci et bon après-midi

3essai.xlsm (91.42 Ko)

Bonjour,

Non cela fonctionne bien. Dans votre fichier posté remettez vos valeurs en B7, B13 et B19 puis relancez le code par le choix dans les listes déroulantes en feuille Tache.
A mon avis vous avez dû faire une mauvaise manipulation.

Par contre en y regardant, je me demande si on ne devrait pas ajouter une conditions que si vous avez un chiffre supérieur à 5 en C29 à c30, le code ne fait rien et vous affiche un message pour vous informer que vous avez plus de 5 fois la sélection dans la feuille Tache. c'est peut être cela qui a été votre souci

AH oui c'est ça, car j'ai mis un si en a23 (feuille Tâches) pour indiquer ce que vous mentionner et j'ai fais des tests.
Je veins d'essayer et c'est exactement ce que vous dites.
Comment mettre le code ?

Bon après-midi

Je veins d'essayer et c'est exactement ce que vous dites.
Comment mettre le code ?

Allez dans le code Private Sub Worksheet_Change(ByVal Target As Range), en dessous de chaque Case = 4, rajoutez ces deux lignes

            Case Is > 5
                MsgBox "Le nombre de tache " & tache & " est supérieur à 5 !", vbCritical, "Nombre tache erroné": Exit Sub

Vous recevrez un message dans ce cas et rien ne sera modifié dans la feuille Résultat
Cela devrait résoudre votre souci

Merci beaucoup

Une dernière chose et après je n'abuse plus de vos compétences.

Je souhaiterais que dans la feuille résultat les lignes 27 à 30 se masquent automatiquement lorsque je mets un degré d'urgence dans la feuilles tâches. En résumé, je souhaite que ces lignes ne soient pas visible.

Bon après-midi

Je souhaiterais que dans la feuille résultat les lignes 27 à 30 se masquent automatiquement lorsque je mets un degré d'urgence dans la feuilles tâches. En résumé, je souhaite que ces lignes ne soient pas visible.

Plus simple, pourquoi vous ne faites pas cela manuellement ?

Ou alors on les masque par code chaque fois que l'on sélectionne la feuille Resultat

Rechercher des sujets similaires à "tableau resultat"