Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Fonction pour rechercher des lignes dans différents onglets

man.jul

XLDnaute Nouveau
Bonjour
Dans mon fichier ci-joint, j'ai des onglets nommés par année, dans chaque année il y a les appréciations pour chaque personnes (A,B,...)
Je cherche une fonction a insérer dans l'onglet bilan qui me donnerai le bilan des notations de toutes les années d'une personne.
Concrètement, je souhaiterais que dans l'onglet bilan, quand je saisi un nom d'agent (A,B,..) dans la cellule B2; je retrouve les ligne de cet agent pour toutes les années effectuées, ici 2020 et 2021; ainsi il y aurait en A3 nom de l'année du 1er onglet (2020) avec à coté la ligne de notation de l'année 2020, en A4 il y aurait le nom de l'année du 2ème onglet (2021) avec à coté la ligne de notation de l'année 2021 et ainsi de suite avec mise à jour quand de nouveaux onglets année seront créés.
Merci par avance
 

Pièces jointes

  • Copie de EVALUATION S3.xlsx
    16.8 KB · Affichages: 5
Solution
Bonsoir man.jul,

Voyez le fichier joint et ces 2 macros dans le code de la feuille "Bilan" :
VB:
Private Sub Worksheet_Activate()
Worksheet_Change [A1] 'lance la macro
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Dim nom$, lig&, w As Worksheet, i As Variant
nom = [B2]
lig = 3 '1ère ligne de destination
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
Rows(lig & ":" & Rows.Count).Delete 'RAZ
For Each w In Worksheets
    If w.Name Like "####" Then
        i = Application.Match(nom, w.Columns(1), 0)
        If IsNumeric(i) Then
            Cells(lig, 1) = w.Name
            w.Cells(i, 1).Resize(, 11).Copy Cells(lig, 2)
            lig = lig + 1
        End If
    End If
Next...

job75

XLDnaute Barbatruc
Bonsoir man.jul,

Voyez le fichier joint et ces 2 macros dans le code de la feuille "Bilan" :
VB:
Private Sub Worksheet_Activate()
Worksheet_Change [A1] 'lance la macro
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Dim nom$, lig&, w As Worksheet, i As Variant
nom = [B2]
lig = 3 '1ère ligne de destination
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
Rows(lig & ":" & Rows.Count).Delete 'RAZ
For Each w In Worksheets
    If w.Name Like "####" Then
        i = Application.Match(nom, w.Columns(1), 0)
        If IsNumeric(i) Then
            Cells(lig, 1) = w.Name
            w.Cells(i, 1).Resize(, 11).Copy Cells(lig, 2)
            lig = lig + 1
        End If
    End If
Next
Application.EnableEvents = True 'réactive les évènements
End Sub
Elles se déclenchent quand on active la feuille ou qu'on modifie une cellule quelconque.

A+
 

Pièces jointes

  • EVALUATION S3(1).xlsm
    27.4 KB · Affichages: 5
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…