Ci-joint 2 classeurs avec une fonction « tri » automatisée qui fonctionne dans un classeur mais pas dans l’autre.
Je n’arrive pas à comprendre ce qui cloche, j’ai simplement recopié la macro et la feuille d’un classeur (créé avec Excel 2021) à l’autre (créé avec Excel 2019).
Est-ce parce que le classeur dans lequel j’ai fait la copie a été créé dans une version plus ancienne d’excel ? Et dans ce cas que puis-je faire pour « réparer » le problème ?
Merci de prendre le temps de jeter un œil et de m’expliquer si possible ce qui cloche.
Bonjour,
Soit vous utiliser la fonction Filtre() (de la version recente)
Soit vous utiliser la fonctionnalité Filtre Avancé mais il faut bien respecter l’entête.
Exemple ici : Année et Années ou Nom et Personnel
Cordialement
et je ne vois pas quel champ peut être erroné ou manquant.
De plus je ne comprend toujours pas pourquoi ça fonctionne dans un classeur et pas dans l’autre (dans test1 les entêtes des colonnes sont différentes mais ça fonctionne malgré tout).
Et est-ce que utiliser la fonction « Filtre » serait plus simple ?
= juste remplacer « AdvancedFilter » par « Filter » ??
Désolé pour la question « basique », mais à force de chercher j’ai trouvé tellement de façons différentes de coder que je m’y perd.
Ci-joint le fichier après modification des entêtes.
Cordialement, 20230611 - Test2 - Extraction.xlsm (180,6 Ko)
Merci.
J’ai remplacé le code du module « modfiltreavance » par le tien mais je n’ai rien changé dans Feuil3(extraction).
Ta solution fonctionne, mais elle génère un message (ci-dessous)
qu’il n’y avait pas auparavant.
Et aussi dans la zone de critère il y a 4 lignes possibles, mais la mise à jour du filtre ne se fait pas de façon systématique lorsque je rentre un critère sur les lignes 2, 3 ou 4, mais seulement lorsque je remodifie un critère sur la ligne 1. Est-ce normal ?
Le message a bien disparu , mais maintenant quel que soit le critère sélectionné, on retrouve l’ensemble du tableau à filtrer dans le résultat. Il n’y a plus de tri !
Concernant l’évènement dans Feuil3, il s’agit bien de la macro qui déclenche automatiquement le Filtre Avancé lorsqu’on sélectionne un critère ?
Pourquoi doit-on rajouter des valeurs en colonne I ? quel en est le sens ?
Mais lorsque je recopie les deux macros dans Feuil3 et dans le module « modFiltreAvance » du classeur de destination (l’original) alors je me retrouve à nouveau avec le message de départ « erreur 1004 ».
sur l’instruction « Range(« Tbl_a_filtrer »).AdvancedFilter xlFilterCopy, Range(« Critère »), Range(« Entete ») »
Le classeur « Test2 » est pourtant le même classeur simplement expurgé des données personnelles et un tableau à filtrer un peu allégé.
J’ai bien vérifié que j’avais modifié les entêtes des colonnes correctement (Personnel - Années) afin que cela sois identique à ce qui a été corrigé dans « Test2 »
Qu’est-ce qui dans votre code avait contourné ce problème au départ et qui ne fonctionne pas dans le classeur final ?
Private Sub Worksheet_Change(ByVal Target As Range)
'On teste qu'il y ai au moins 1 critère
If Target.Cells.Count > 1 Then Exit Sub
'On teste si pas de critères saisis (donc une seule ligne en-tête)
If Feuil3.Range("J1").CurrentRegion.Count > 3 Then
Call EffacePlage
Call UtilisationFiltreAvanceCopierAilleurs
Else
Call EffacePlage
End If
End Sub
RE : Cow18 20230811 - V - F - RF - test1.xlsm (229,5 Ko)
Ficher original du boulot expurgé (identités) sans autre modification, avec votre proposition => il ne se passe plus rien du tout !?? Alors que le fichier test fonctionne très bien !
RE : Jacquinot WILL-FREAD
Vous pouvez vérifier dans le fichier ci-dessus, il n’y a pas d’espace.
Dans tous les cas, ces fichiers sont des copies faites au fur et à mesure il ne devrait donc pas y avoir de différence, ce qui rend le problème encore plus difficile à comprendre, pour moi en tous cas.
J’ai utilisé les mêmes codes que l’test.
Il y avait eu 2 fautes,
1-Dans la feuille Entrée Votre tableau commence par A2 et dans le test A3
2-Sur l’entête de critère vous avez Nom à la place de Personnel
Voici la correction par rapport à ce que vous avez. (l’évènement est comme celui du test) 20230811 - V - F - RF - test1.xlsm (216,2 Ko)
Cordialement,