Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Filtre automatique dans Macro mais du type "colonne contient"

2 réponses
Avatar
mclain
Sub Sorti_FOR1()
'
'
'
Range("C3").Select
Selection.Copy
Sheets("Sorti Formation").Select
Selection.AutoFilter Field:=3D20, Criteria1:=3DSheets("Analyse").Range("E12=
").Value, Operator:=3DxlAnd
End Sub

Voila, mon probl=C3=A8me, 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=C3=A9lectionne mon crit=C3=A8re dans mon TDB=
, cellule E12, si je tape 12345... le r=C3=A9sultat du filtre est vide car =
je veux qu'il recherche en fait CONTIENT 12345...=20

je voudrais que le contenu de la cellule E12 soit interpret=C3=A9e comme =
=3D"*E12*" pour finalement affich=C3=A9e les valeurs recherch=C3=A9es...

Du coup, je me pose une autre question :

Peut-on ne pas afficher le crit=C3=A8re de filtre dans la liste obtenue pou=
r ne pas d=C3=A9filtrer le r=C3=A9sulat ?

Sachant que j'ai ajout=C3=A9 d'autres filtres selon les r=C3=A9sultas que j=
e veux obtenir ?


MichD, j'avais adapt=C3=A9 cette macro que tu m'avais cr=C3=A9es :)

Merci d'avance !

Mclain

2 réponses

Avatar
MichD
Bonjour,
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 :
Sub Sorti_FOR1()
'
'
'
Range("C3").Select
Selection.Copy
Sheets("Sorti Formation").Select
Selection.AutoFilter Field: , Criteria1:=Sheets("Analyse").Range("E12").Value, Operator:=xlAnd
End Sub
Voila, mon problème, mon champ de filtre en colonne 20, comporte plusieurs 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 pour ne pas défiltrer le résulat ?
Sachant que j'ai ajouté d'autres filtres selon les résultas que je veux obtenir ?
MichD, j'avais adapté cette macro que tu m'avais crées :)
Merci d'avance !
Mclain
Avatar
MichD
Peut-on ne pas afficher le critère de filtre dans la liste obtenue pour ne pas défiltrer le résulat ?
Sachant que j'ai ajouté d'autres filtres selon les résultas que je veux obtenir ?

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