Moteur de recherche multicritères

Re-,

Oupsss, mea culpa, mea maxima culpa....

Dans l'évènement de feuille (clic droit sur le nom de l'onglet "Moteur de recherche", "Visualiser le code")

Il faut également rajouter cette condition :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("T_Crit"), Target) Is Nothing Then
    If Target.ListObject.HeaderRowRange(Target.Column - Target.ListObject.Range.Column + 1) = "Matière active / Variété" Then
        Select Case Range("T_Crit").ListObject.DataBodyRange(1, 4)
            Case "Désherbage", "Gestion maladies", "Gestion ravageurs", "Variétés", "Implantation / conduite"
                UserForm1.Show
...
...

Désolé...

Trop fort merci :)

Ok ça marche bien mais petite remarque quand tu lances une recherche quand la macro a fini de tourner et si la cellule G6 est remplie alors la liste déroulante de la case E6 de la feuille moteur de recherche s'ouvre .. ça fait bizarre. Par contre c'est vraiment chouette quand on clique sur G6 et que ça s'ouvre cette liste déroulante case E6 pour intuitivement guider l'utilisateur vers le choix d'une thématique adéquate : "désherbage", "gestion maladie", gestion ravageurs" ou "implantation / conduite"

Re-,

Tu peux me donner le code de l'évènement qu'il y a dans ton fichier?

Est-ce le même que dans le 4_1? (notamment la commande "End", comme indiqué en commentaire)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("T_Crit"), Target) Is Nothing Then
    If Target.ListObject.HeaderRowRange(Target.Column - Target.ListObject.Range.Column + 1) = "Matière active / Variété" Then
        Select Case Range("T_Crit").ListObject.DataBodyRange(1, 4)
            Case "Désherbage", "Gestion maladies", "Gestion ravageurs", "Variétés", "Implantation / conduite"
                UserForm1.Show
            Case Else
                Range("T_Crit").ListObject.DataBodyRange(1, 4).Select
        End Select
        End 'Est-ce que cette commande est présente?
    End If
    DoEvents
    CreateObject("wscript.shell").SendKeys "%{DOWN}"
End If
End Sub

Si c'est le même, quelle configuration exacte, pour avoir le déroulé de la cellule E6?

Yes il y a bien un END

Par exemple tu ouvre v4-1 tu click sur E6, tu cliques sur désherbage, tu cliques sur G6, tu cliques sur bentazone, tu cliques sur validé et hop ça t'ouvre la liste déroulante en E6

Re-,

Ok, la sélection de cette cellule se fait lors de l'appui sur le "Ok" de l'USF.

Modifie ainsi le code du bouton "CommandButton1" pour voir

Private Sub CommandButton1_Click()
Dim I As Integer, J As Integer
With Feuil1.Range("T_Crit").ListObject
    .DataBodyRange(1, 6) = Me.ListBox1.Value
    Application.EnableEvents = False 'rajout de cette ligne
    .DataBodyRange(1, 4).Select
    Application.EnableEvents = True 'rajout de cette ligne (impératif)
End With
Unload Me
End Sub

Ca marche :) merci !!

Hello,

J'ai bien rempli la BDD et ça fonctionne bien, c'est génial !

Petite question : sur l'onglet BDD, il n'est pas possible de compléter les colonnes "matière active" tant que l'une des thématiques : "désherbage", gestion ravageurs" ou "gestion maladies" n'est pas choisie dans la colonne "Thèmatique" de l'onglet BDD.

Pour les colonnes "variété" de l'onglet BDD la liste déroulante est toujours "ouverte" peu importe s'il y a une thématique choisie ou non. Est-il possible de la bloquer pour l'"ouvrir" uniquement quand la thématique "Variétés" ou "Implantation / conduite" est choisie dans la colonne "Thèmatique" ?

Merci :)

Egalement quand j'essai de changer la faute d'orthographe sur Thèmatique = Thématique en cellule E5 de l'onglet "Moteur de recherche", cellule C1 de l'onglet "BDD" et cellule E1 de l'onglet "Listes" la macro Bug. Ca semble provenir de PowerQuery, j'arrive à y accéder et je change la aussi par la bonne orthographe mais ça ne marche pas quand même :/

Enfin quand l'USF s'ouvre bizarrement il à tendance à s'ouvrir sur mon deuxième écran et en plus les boutons validé et supprimer sont systématique cachés. Il me faut bouger l'USF avec la souris pour que les boutons de l'USF apparaissent (cf photo ci-dessous)

image

Désolé ça fait quelques améliorations à apporter. Je ne m'en rend compte qu'à l'usage

Hello,

Pour la fôte d'orthographe, il faut corriger dans la requête "Thème" (remplacer T_Crit[Thèmatique]{0} par T_Crit[Thématique]{0})

image

Pour l'affichage de l'USF dans le 2ème écran, je ne sais quoi te dire (tout comme la "disparition" des boutons...)

Positionner un USF à un endroit spécifique n'est pas si simple qu'il n'y parait... (sur un autre forum, quelques posts en parlent, et les solutions apportées impliquent des "usines à gaz"... Je ne pourrais donc t'aider pour cette gêne...

Ok merci pour ton retour.

Pour la faute c'est bien ce que j'ai tenté mais ça bug la macro

Re-,

J'ai enlevé le mot de passe de l'onglet "Recherche", corrigé la faute, ainsi que dans l'onglet "BDD"

Puis modifié la requête "Thème", ensuite, remis le mdp, et tout fonctionne...

Ok j'ai réussi sauf quand j'essaie de changer le nom thèmatique sous l'onglet Listes c'est lui pose problème

Ok,

Il faut déprotéger l'onglet "Recherche", sélectionner la cellule E6, puis ruban "Données", "Validation des données".

Il suffit de modifier le deuxième "Thèmatique", car le Tableau se nomme "Thèmatique", et le titre aussi.

Je ne pense pas qu'il soit utile de renommer le tableau, donc en remplaçant le thèmatique entre crochets, ça devrait le faire

image

Re-,

Ah si, il faut également modifier, dans la requête "Thèmatique"

image

Si tu veux également rectifier le nom du Tableau, il faudra donc remplacer dans la validation de données et dans cette requête

Re-,

J'avais oublié de modifier le code, pour le thème "Implantation/conduite"...

Dans la requête "Thèmatique", remplace

= List.FirstN(Excel.CurrentWorkbook(){[Name="Thématique"]}[Content][Thématique],6)

par

= List.RemoveRange(List.FirstN(Excel.CurrentWorkbook(){[Name="Thématique"]}[Content][Thématique],6),4)

ça fonctionne !! enfin une idée pour "bloquer" les colonnes variétés de l'onglet BDD ? Après je ne t'embête plus normalement !! merci mille fois

= List.RemoveRange(List.FirstN(Excel.CurrentWorkbook(){[Name="Thématique"]}[Content][Thématique],6),4) me provoque un erreur

MAJ : C'est bon finalement ça marche je suis juste allé modifier le nom thèmatique par thématique dans le gestionnaire des noms de l'onglet Listes !

Rechercher des sujets similaires à "moteur recherche multicriteres"