Bonjour,

j'ai un fichier excel qui se compose d'une liste d'individus appartenant à 6 groupes différents ainsi que de toute une série de graphiques et de tableaux.

1- J'ai créé un petit menu déroulant qui permet de sélectionner un groupe sur les 6 dans la feuille 'INDEX',
2- le nom du groupe choisi apparait dans une cellule 'CONFIG_DATAS!B2',
3- cette cellule est ensuite dupliquée dans tous les graphiques ainsi que dans tous les tableaux avec une liaison simple '=CONFIG_DATAS!B2' dans une cellule (en général A2) ou dans une zone de texte (pour les graphiques),
4- j'ai un bouton dans la feuille 'INDEX' qui lance une macro,
5- cette macro sert principalement à lancer un filtre élaboré sur la feuille 'GROUPE' sur la base du critére "nom du groupe" pour ne sélectionner que les individus appartenant à ce groupe et les copier un peu plus bas sur la feuille (ligne 1322),
6- tous les titulaires concernés sont ensuite rapatriés dans une dizaine de tableaux en liaison directe,
7- la macro effectue un autre filtre sur tous ces tableaux pour éliminer toutes les lignes vides.


Tout marche trés bien sauf qu'une fois sur 2, une liaison par ci par là ou un filtre élaboré ne se met pas à jour...

Est-ce un problème de mémoire, de macro mal défini, de limitation excel ou quoi?


Merci d'avance de votre aide.

Ci-joint, le code macro utilisé :

Sub selection_groupe()
'
Sheets("GROUPE").Select
Range("A2").Select

'le If ne sert qu'à copier directement tous les titulaires sur les lignes 1322 et suivant si l'option "TOUS GROUPES" est sélectionné
If ActiveCell.Value = ("TOUS GROUPES") Then
ActiveSheet.ShowAllData
Rows("1322:3000").Select
Selection.ClearContents
Rows("5:5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
ActiveWindow.SmallScroll Down:=17
Rows("1322:1322").Select
ActiveSheet.Paste

'sinon, on fait un filtre élaboré sur la feuille et on colle les individus concernés sur les lignes 1322 et suivant
Else
Range("A4").Select
Range("A4:N1310").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range("A1:A2"), Unique:=False
Rows("1322:3000").Select
Selection.ClearContents
Range("A4:N1310").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range _
("A1:A2"), CopyToRange:=Range("A1321:N1321"), Unique:=False
End If

'une fois fait, on fait des filtres sur toutes les feuilles qui sont en liaison avec les lignes 1322 et suivant de la feuille GROUPE pour virer les lignes vides
Sheets("DOSSIER1").Select
Range("A7:Q1313").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range("B1:B2"), Unique:=False

Sheets("DOSSIER2").Select
Range("A7:Q1313").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range("B1:B2"), Unique:=False

Sheets("DOSSIER3").Select
Range("A7:L1313").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range("B1:B2"), Unique:=False

Sheets("DOSSIER4").Select
Range("A7:Q1313").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range("B1:B2"), Unique:=False

Sheets("INDEX").Select

End Sub