Reproduction automatique dans les onglets

Bonjour,

Je tiens tout d'abord à préciser que je me débrouille mais je suis loin d'être une experte sur Excel.

J'ai un tableau Récapitulatif qui contient tous les agents de mon service (environ 200 agents) et afin de gagner beaucoup de temps, j'aimerais que chaque modification effectuée sur le tableau récap (feuille 1), soit répercutée automatiquement sur les différents onglets et avec les bons agents de chaque équipe (Equipe A, Equipe B …). J'ai essayé de faire dans les onglets la formule par exemple pour la première case de l'onglet Equipe A : ='Récap'A4.

Cette formule fonctionne et lorsque je fais des modifications dans la feuille récap, tout se répercute automatiquement dans les onglets. Cependant, lorsqu'on filtre dans le tableau récap, tout bouge et les équipes sont complètement mélangées dans les différents onglets. Je recherche une formule qui me permette de rendre les onglets (Equipe A, B, C..) automatiques afin de compléter seulement le tableau Récap.

Par souci de confidentialité, je n'ai pas pu mettre l'original du tableau mais vous trouverez en PJ une reproduction qui permettra de mieux visualiser mon problème.

Je précise que je ne sais pas me servir des macros, dans l'idéal une formule serait parfait. En ce qui concerne les tableaux croisés dynamiques, nos managers ne sauront pas s'en servir alors je n'opte pas pour cette solution.

Je vous remercie par avance de votre aide et j'espère que quelqu'un pourra me trouver la solution.

Le fichier excel :

Coralie

Salut Coralie,

un premier jet VBA.

La macro (dans le module VBA de 'Recap') démarre lors d'un changement de valeur en 'Recap' [A:E]-[I:M].

Private Sub Worksheet_Change(ByVal Target As Range)
'
Dim rCelA As Range, rCelB As Range, iRow%, iRowA, iOK%
'
Application.EnableEvents = False
Application.ScreenUpdating = False
'
If Not Intersect(Target, Union(Range("A4:E" & Range("A" & Rows.Count).End(xlUp).Row), Range("I4:M" & Range("A" & Rows.Count).End(xlUp).Row))) Is Nothing Then
    iRow = Target.Row
    If Range("B" & iRow).Value <> "" And Range("C" & iRow).Value <> "" And Range("H" & iRow).Value <> "" Then
        With Worksheets(CStr(Range("H" & iRow).Value))
            Set rCelA = .Range("B:B").Find(what:=Range("B" & iRow).Value, lookat:=xlWhole, LookIn:=xlValues)
            If Not rCelA Is Nothing Then
                iOK = 1
                Set rCelB = .Range("C" & rCelA.Row & ":C" & .Range("C" & Rows.Count).End(xlUp).Row).Find(what:=Range("C" & iRow).Value, lookat:=xlWhole, LookIn:=xlValues)
                If Not rCelB Is Nothing Then
                    If .Range("B" & rCelB.Row).Value = rCelA.Value Then
                        iOK = 2
                        iRowA = rCelB.Row
                    End If
                End If
            End If
            If iOK < 2 Then iRowA = .Range("A" & Rows.Count).End(xlUp).Row + 1
            .Range("A" & iRowA & ":E" & iRowA).Value = Range("A" & iRow & ":E" & iRow).Value
            .Range("F" & iRowA & ":J" & iRowA).Value = Range("I" & iRow & ":M" & iRow).Value
            .Range("A3:J" & .Range("A" & Rows.Count).End(xlUp).Row).Sort _
                key1:=.Range("B4"), order1:=xlAscending, key2:=.Range("C4"), order2:=xlAscending, Orientation:=xlTopToBottom, Header:=xlYes
            .Columns.AutoFit
        End With
    End If
End If
'
Application.ScreenUpdating = True
Application.EnableEvents = True
'
End Sub

Á suivre, j'imagine...

A+

6coralie.xlsm (28.90 Ko)

Bonjour Curulis57,

Merci beaucoup pour ta réponse.

J'ai essayé ton macro mais cela fonctionne seulement sur le 1er onglet de mon tableau et ça me met les noms en double.

Mais je pense que cela est du au fait que je ne maitrise pas du tout les macros alors j'ai peut être mal mis mon macro. De plus, je suis incapable de le modifier pour l'adapter.

Est-ce que tu n'aurais pas une formule qui pourrait faire la même chose ?

Merci d'avance,

Coralie

Rechercher des sujets similaires à "reproduction automatique onglets"