Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Forum Excel


Réponse
 
LinkBack Outils de la discussion
Vieux 13/08/2007, 12h37   #1 (permalink)
XLDnaute Nouveau
 
Date d'inscription: juillet 2007
Messages: 13
Par défaut Filtre élaboré ne filtre pas

Bonjour le forum.
J'utlise un filtre élaboré dans une macro. Il y a deux semaines il fonctionnait..maintenant il ne fonctionne plus..strange!!
Je ne comprends pas le souci.
La seule modification que j'ai apporté est que j'ai rajouté une colonne dans ma Database. Est ce que cela change quelque chose?
Merci de votre aide.

Je vous joints le code:

Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 2 And Target.Column = 3 Then
Sheets("Bilan").Range("Critères").Calculate
Worksheets("Bilan").Range("Database") _
.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sheets("Bilan").Range("Critères"), _
CopyToRange:=Range("A7:E7"), Unique:=False
Chouchounette est déconnecté   Réponse avec citation
ANNONCES
Vieux 14/08/2007, 23h16   #2 (permalink)
XLDnaute Occasionel
 
Avatar de Kotov
 
Date d'inscription: avril 2005
Localisation: Orléans
Version Excel : Excel 2007 (PC)
Messages: 424
Par défaut Re : Filtre élaboré ne filtre pas

Bonsoir Chouchounette,

L'idéal serait de joindre ton fichier (épures-le toutefois des éventuelles données confidentielles qu'il pourrait contenir)

Bonne soirée
Kotov
Kotov est déconnecté   Réponse avec citation
Vieux 14/08/2007, 23h50   #3 (permalink)
XLDnaute Barbatruc
 
Avatar de Robert
 
Date d'inscription: février 2005
Localisation: Sète
Version Excel : Excel 2003 (PC)
Messages: 2 903
Par défaut Re : Filtre élaboré ne filtre pas

Bonsoir Chouchounette, Kotov, bonsoir le forum,

D'accord avec Kotov pour un fichier exemple mais les quelques lignes de code que tu nous montres indiquent déjà que le nombre de colonne est pris en compte. Donc rien de très étonnant à ce que ça ne fonctionne plus si tu as rajouté une colonne.

ton code commentée :

l'événement Change se produit chaque fois qu'il y a un changement dans une cellule (édition, effacement, etc...)
Sub Worksheet_Change(ByVal Target As Range)

si le changement à lieu dans la ligne 2 et la colonne 3 (soit C2) alors
si tu as rajouté une colonne ça peut ne plus fonctionner...
If Target.Row = 2 And Target.Column = 3 Then
c'est ici que tu dois modifier pour adapter à l'ajout de la colonne

la plage nommée "Critères"de l'onglet "Bilan" est recalculée
Sheets("Bilan").Range("Critères").Calculate

code pour le filtre élaboré de l'onglet "Bilan" sur la plage nommé "Database"
Worksheets("Bilan").Range("Database") _
.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sheets("Bilan").Range("Critères"), _
CopyToRange:=Range("A7:E7"), Unique:=False
__________________
À plus

Robert

Dernière modification par Robert ; 14/08/2007 à 23h53.
Robert est déconnecté   Réponse avec citation
Vieux 16/08/2007, 16h34   #4 (permalink)
XLDnaute Nouveau
 
Date d'inscription: juillet 2007
Messages: 13
Par défaut Re : Filtre élaboré ne filtre pas

Bonjour le forum.
Merci Kotov de l'intérêt que tu as porté à ma question et merci Robert de tes éclaircissements.
Effectivement le problème réside dans le fait d'avoir ajouté une colonne. J'ai finalement abandonné ce filtre car ma base évolue et ce filtre ne peut pas prendre en compte les rajouts de lignes ou de colonnes.
Bonne journée à tous
Chouchounette est déconnecté   Réponse avec citation
Vieux 16/08/2007, 16h42   #5 (permalink)
XLDnaute Barbatruc
 
Avatar de bhbh
 
Date d'inscription: juin 2007
Version Excel : Excel 2003 (PC)
Messages: 3 106
Par défaut Re : Filtre élaboré ne filtre pas

Bonjour,
je cite :
ce filtre ne peut pas prendre en compte les rajouts de lignes ou de colonnes

Bien sûr que si.
Il suffit de déterminer dynamiquement ta Database
bhbh est déconnecté   Réponse avec citation
Vieux 17/08/2007, 16h09   #6 (permalink)
XLDnaute Nouveau
 
Date d'inscription: juillet 2007
Messages: 13
Par défaut Re : Filtre élaboré ne filtre pas

Bonjour à tous et à toutes.
Merci bhbh de ta remarque, mais alors comment déterminer dynamiquement ma Database?
Pour l'instant j'ai fait (Insertion>Nom>Définir) et je définis une plage "finie" de cellules que j'ai nommé Database..ce qui n'est pas dynamique.

Bonne journée!
Chouchounette est déconnecté   Réponse avec citation
Vieux 17/08/2007, 16h52   #7 (permalink)
XLDnaute Barbatruc
 
Avatar de bhbh
 
Date d'inscription: juin 2007
Version Excel : Excel 2003 (PC)
Messages: 3 106
Par défaut Re : Filtre élaboré ne filtre pas

Bonjour,
pour déterminer dynamiquement une plage de cellules comportant N colonnes et N lignes, tu fais Insertion/Nom/Définir
tu mets donc ton nom Database, et dans la case du bas (Fait Référence à
tu tapes :
=DECALER(Feuil2!$A$1;0;0;NBVAL(Feuil2!$A:$A);NBVAL (Feuil2!$1:$1))

Explications : la méthode fonction DECALER permet de définir :
- une cellule de référence (Feuil2!$A$1), où ta base débute.
- de combien de lignes tu veux la décaler vers le bas : le premier 0 (optionnel, je l'ai rajouté pour l'exemple) si tu mets 3, ta cellule de réf sera donc $A$4
- idem pour les colonnes (le deuxième 0, également optionnel)
attention pour ces deux 0, s'ils sont optionnels, les points virgule ne le sont pas
- ensuite la hauteur (nb de lignes) de ta base (NBVAL(Feuil2!$A:$A))
ici, on suppose que toutes les cellules de la ligne A seront forcément remplies dans la base, qu'il n'y aura pas de cellules vides au milieu...
- et enfin la largeur nb de colonnes) de ta base (NBVAL(Feuil2!$1:$1))
ici, on suppose que tous les en-têtes de colonnes, situées dans la ligne 1 ont une valeur. dans ton cas, si tu as mis tes critères en H1:H2 par exemple, il faut donc enlever 1 au résultat, sinon ta base aura une colonne de trop.
donc on fait NBVAL(Feuil2!$A:$A)-1

la formule finale donnera donc :

=DECALER(Feuil2!$A$1;;;NBVAL(Feuil2!$A:$A);NBVAL(F euil2!$1:$1)-1)

PS pas la peine de tout taper à la main, tu écris :
=decaler(**ici, tu cliques sur ta première cellule**;;;**3 points-virgule** puis nbval(**clique sur la colonne A**);nbval(**clique sur la première ligne(le1 à gauche)**)-1) et tu fais entrer.
J'espère avoir répondu à ton voeu
Bonne lecture

Edit : Bonjour également robert; eu des pb de connexion
Bien vu pour la méthode vba

Dernière modification par bhbh ; 17/08/2007 à 17h58.
bhbh est déconnecté   Réponse avec citation
Vieux 17/08/2007, 17h02   #8 (permalink)
XLDnaute Barbatruc
 
Avatar de Robert
 
Date d'inscription: février 2005
Localisation: Sète
Version Excel : Excel 2003 (PC)
Messages: 2 903
Par défaut Re : Filtre élaboré ne filtre pas

Bonjour le fil, bonjour le forum,

Définir la plage dynamiquement peut s'avérer relativement facile à faire du style de A1 à la dernière ligne éditée de la colonne F, ça donnerait :
Code:
Dim pl As Range
Set pl = Range("A1:F" & Range("F65536").End(xlUp).Row)
pl.Name = "Database "
Ça peut être aussi tout simplement
Code:
Activesheet.UsedRange.Name = "Database "
Mais il serait préférable que tu envoies un petit fichier exemple pour que nous puissions savoir comment la plage peut évoluer et te proposer la meilleure solution.

Édition :

Bonjour bhbh on s'est croisés. Chouchounette, tu as maintenant la version Formule et la version VBA.
__________________
À plus

Robert
Robert est déconnecté   Réponse avec citation
ANNONCES
Réponse

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui

Discussions similaires
Discussion Auteur Forum Réponses Dernier message
filtre élaboré DENIS34 Forum Excel 6 27/09/2006 16h37
Filtre élaboré Chatroc Forum Excel 10 13/04/2006 11h06
filtre élaboré pphilippe Forum Excel Downloads - Archives 12 15/10/2003 00h51
filtre élaboré lemegapro Forum Excel Downloads - Archives 1 28/03/2003 20h26
Pb filtre elaboré loulou Forum Excel Downloads - Archives 2 20/01/2003 17h19


Fuseau horaire GMT +2. Il est actuellement 19h25.


(C) 2006 Excel Downloads