Filtre automatique dans Macro mais du type "colonne contient"
Le
mclain

Sub Sorti_FOR1()
'
'
'
Range("C3").Select
Selection.Copy
Sheets("Sorti Formation").Select
Selection.AutoFilter Field:=20, Criteria1:=Sheets("Analyse").Range("E12=
").Value, Operator:=xlAnd
End Sub
Voila, mon problème, mon champ de filtre en colonne 20, comporte plusi=
eurs type d'info du genre :
12345 - Formation xxx
12345 - Formation wxc
12365 - Formation utyu
or avec cette formule, si je sélectionne mon critère dans mon TDB=
, cellule E12, si je tape 12345 le résultat du filtre est vide car =
je veux qu'il recherche en fait CONTIENT 12345
je voudrais que le contenu de la cellule E12 soit interpretée comme =
="*E12*" pour finalement affichée les valeurs recherchées
Du coup, je me pose une autre question :
Peut-on ne pas afficher le critère de filtre dans la liste obtenue pou=
r ne pas défiltrer le résulat ?
Sachant que j'ai ajouté d'autres filtres selon les résultas que j=
e veux obtenir ?
MichD, j'avais adapté cette macro que tu m'avais crées :)
Merci d'avance !
Mclain
'
'
'
Range("C3").Select
Selection.Copy
Sheets("Sorti Formation").Select
Selection.AutoFilter Field:=20, Criteria1:=Sheets("Analyse").Range("E12=
").Value, Operator:=xlAnd
End Sub
Voila, mon problème, mon champ de filtre en colonne 20, comporte plusi=
eurs type d'info du genre :
12345 - Formation xxx
12345 - Formation wxc
12365 - Formation utyu
or avec cette formule, si je sélectionne mon critère dans mon TDB=
, cellule E12, si je tape 12345 le résultat du filtre est vide car =
je veux qu'il recherche en fait CONTIENT 12345
je voudrais que le contenu de la cellule E12 soit interpretée comme =
="*E12*" pour finalement affichée les valeurs recherchées
Du coup, je me pose une autre question :
Peut-on ne pas afficher le critère de filtre dans la liste obtenue pou=
r ne pas défiltrer le résulat ?
Sachant que j'ai ajouté d'autres filtres selon les résultas que j=
e veux obtenir ?
MichD, j'avais adapté cette macro que tu m'avais crées :)
Merci d'avance !
Mclain
Voici ce que j'ai compris:
Dans cette cellule, tu veux saisir seulement la partie numérique comme
critère. Exemmple : 12345 et obtenir toutes les formations débutant par
ce nombre.
Dans le code suivant, remplace "Range("A1:A10") par l'étendue de la
plage de cellule sur laquelle tu effectues le filtre. Je suppose que ta
plage a au moins 20 colonnes puisque ton critère est basé sur la colonne 20.
'--------------------------------
Sub test()
Dim Crit As String
Crit = Sheets("Analyse").Range("E20").Value & "*"
With Sheets("Sorti Formation")
.Range("A1:A10").AutoFilter Field:=1, Criteria1:=Crit
End With
End Sub
'--------------------------------
Au lieu d'actionner le code par un bouton, inscrit le code suivant dans
le module de la feuille "Analyse" - clic droit sur l'onglet de la
feuille et utilise la commande "Visionner le code". Copie le code dans
la page blanche. Dès que tu saisiras un code numérique et que tu
valideras le contenu de la cellule E12 de la feuille analyse, le filtre
s'appliquera automatiquement sur la "Sorti formation".
Comme l'autre procédure, tu dois adapter la plage A1:A10 pour celle de
ton application.
'-------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Crit As String
If Target.Address = Range("E12").Address Then
Crit = Target.Value & "*"
With Sheets("Sorti Formation")
.Range("A1:A10").AutoFilter Field:=1, Criteria1:=Crit
End With
End If
End Sub
'-------------------------------
MichD
Le 30/12/19 à 17:47, a écrit :
Je ne comprends pas cette question.
Si tu peux, utilise ce site "Cjoint.com" et publie ton classeur. Je n'ai
pas besoin de toutes tes données (ces données peuvent être fictives),
mais je veux voir la disposition des données de ton classeur.
Donne un exemple de ce que tu veux obtenir comme résultat, où ce
résultat doit s'afficher.
MichD