Je suis microbiologiste dans un laboratoire de recherche et voici mon défi, je dois créer un système de compilation de toutes nos données d'efficacité en fonction de la recette du produit qui a été analysé.
J'ai créer un tout petit tableau pour représenter le problème; ce que je souhaite, c'est dire ''Je veux observer tous les produits dans lequel tel ingrédient est présent'', peux importe sa place dans la recette (ingrédient #1 ou #2 ou #3, etc...) et pouvoir comparer visuellement l'efficacité de ces recettes.
Le soucis c'est que je peux retrouver un même ingrédient dans les colonnes B,C,D,E,F et qu'avec un simple filtre sur une colonne, je perd les recettes dans lequel l'ingrédient se retrouve dans une autre colonne.
Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, [K1]) Is Nothing Then
If Target <> "" Then
ActiveSheet.ListObjects("Tableau178").Range.AutoFilter Field:=8, Criteria1:="<>"
Else
ActiveSheet.ListObjects("Tableau178").Range.AutoFilter Field:=8
End If
End If
End Sub
Bonjour Nicolas, et bienvenu sur XLD,
Une tentative ( peut être bancale ) en PJ.
Je crée une nouvelle colonne Présence produit. Et une cellule (K1) avec le nom ou la partie du nom recherché.
Dans cette colonne je met un X si le produit est utilisé quelque part dans la recette. Il suffit alors de filtrer sur X pour avoir la liste. Avec :
Bonjour Nicolas, et bienvenu sur XLD,
Une tentative ( peut être bancale ) en PJ.
Je crée une nouvelle colonne Présence produit. Et une cellule (K1) avec le nom ou la partie du nom recherché.
Dans cette colonne je met un X si le produit est utilisé quelque part dans la recette. Il suffit alors de filtrer sur X pour avoir la liste. Avec :
Je te remercie pour ton temps, ta solution est intéressante; j'ai deux question :
1) Est-il possible de pouvoir écrire seulement un mot clé, ou seulement quelques lettres d'un mot en K1 pour que la fonction de la colonne H effectue sa recherche ?
Exemple : pour l'ingrédient ''Acide peracétique (PAA)'', si quelqu'un écrit seulement PAA, la fonction ne marche pas parce que ''PAA'' n'est pas le premier mot du nom complet.
2) Est-il possible que la filtration en colonne H se produise instantanément après avoir entré mon mot en K1, et que la filtration s'annule toute seule en cas de cellule K1 vide ?
Je te remercie pour ton temps, j'ai quelques questions pour toi :
1) Est-il possible que la cellule de recherche se situe ailleurs que dans le tableau? Par exemple au dessus du tableau, ou un onglet à part dans lequel la personne choisirai un ingrédient qu'il veut voir, et en changeant d'onglet il voit le tableau de données associé à sa recherche.
2) Est-il possible que la recherche soit moins contraignante, dans le sens que la personne doit sélectionner avec exactitude le nom complet de l'ingrédient qu'il désire voir plutôt qu'une portion
Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, [K1]) Is Nothing Then
If Target <> "" Then
ActiveSheet.ListObjects("Tableau178").Range.AutoFilter Field:=8, Criteria1:="<>"
Else
ActiveSheet.ListObjects("Tableau178").Range.AutoFilter Field:=8
End If
End If
End Sub
Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, [K1]) Is Nothing Then
If Target <> "" Then
ActiveSheet.ListObjects("Tableau178").Range.AutoFilter Field:=8, Criteria1:="<>"
Else
ActiveSheet.ListObjects("Tableau178").Range.AutoFilter Field:=8
End If
End If
End Sub
Wow, un gros merci pour le fichier en PJ2 (VBA) !! Ça répond à mon problème de façon efficace, je vais pouvoir jouer avec ce fichier et construire ma banque de données avec !
Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, [K1]) Is Nothing Then
If Target <> "" Then
ActiveSheet.ListObjects("Tableau178").Range.AutoFilter Field:=8, Criteria1:="<>"
Else
ActiveSheet.ListObjects("Tableau178").Range.AutoFilter Field:=8
End If
End If
End Sub
J'ai commencé à construire mon fichier, je n'ai eu aucun soucis à réutiliser la fonction, par contre je n'arrive pas à reproduire le VBA dans mon fichier.
Est-il possible que ma colonne N s'auto-filtre par rapport à la recherche en B2, et ainsi de suite pour les trois autres colonnes, afin de permettre à l'utilisateur de faire une recherche complexe avec plusieurs ingrédients ?
Gros merci pour ton temps Sylvanu, après ça mon fichier sera prêt pour y compiler toutes mes données scientifiques
Bonjour tout le monde,
En PJ le filtrage sur 4 ingrédients possibles avec :
Code:
Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, [B2:B5]) Is Nothing Then
Dim Ing1, Ing2, Ing3, Ing4
Ing1 = [B2]: Ing2 = [B3]: Ing3 = [B4]: Ing4 = [B5]:
With ActiveSheet.ListObjects("Tableau1")
If Ing1 & Ing2 & Ing3 & Ing4 = "" Then ' Si pas d'ingrédients alors Suppression de tous les filtres
.Range.AutoFilter Field:=14
.Range.AutoFilter Field:=15
.Range.AutoFilter Field:=16
.Range.AutoFilter Field:=17
Else ' Sinon filtrer sur ingrédients demandés
.Range.AutoFilter Field:=14, Criteria1:="<>"
.Range.AutoFilter Field:=15, Criteria1:="<>"
.Range.AutoFilter Field:=16, Criteria1:="<>"
.Range.AutoFilter Field:=17, Criteria1:="<>"
End If
End With
End If
End Sub