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

  • Initiateur de la discussion Initiateur de la discussion man.jul
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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...
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

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour