[Résolu] Modifier Userform et module pour améliorer recherche

alienox

XLDnaute Occasionnel
Bonjour à tous,


Voilà je suis à la recherche de vos lumières, car perso moi je rame

je vous joins le fichier avec ce que j'aimerai sur une feuille excel.

en espérant trouver de l'aide

Merci d'avance
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Modifier Userform et module pour améliorer recherche

Bonjour à tous

alienox (Bienvenue sur le forum)
Voilà je suis à la recherche de ton BONJOUR dans ton message car perso moi je rame à le trouver ;)


EDITION; Bah voila, yaka demander
mais c'est plus simple dire Bonjour tout seul comme un grand, non ? ;)

Bon maintenant que les histoires de politesse sont réglées je vais pouvoir aller voir ta pièce jointe ;)
 
Dernière édition:

alienox

XLDnaute Occasionnel
Re : Modifier Userform et module pour améliorer recherche

Re

Explications:

1er:
Dans la sheet "recherche", lorsque j'appuie sur le bouton "recherche", une boite "Userform1" apparait, voir ci-contre.
Les zone textbox 2,3,4 ne fonctionnent pas???

2ème:
Toujours dans cette boite, lorsque j'appuie sur "Effacer recherche" seul les texbox sont effacés, hors il faudrait également supprimer ce qui ce trouve dans la zone "listview1"

3ème:
Dans la Sheet "Listes plantes", 1er ligne par exemple "Acérola", je voudrais que quand je clique dans la listview sur le nom de la plante après la recherche, l'image de la plante apparaisse dans une zone (voir exemple).

4ème:

Comme on peux le voir dans Sheet "listes plantes", par exemple "acérola", les colonnes B,C et D des fusions de cellules ont eu lieu, par contre dans la colonne E, F, G, plusieurs cellules (E4, E5...E11, F4, F5...F13, etc,,,) sont présente, j'aimerai que lors de la recherche sur la plante "Acérola" par ex, ce qu'il y a de présent dans les cellules des colonnes E, F, G apparaissent dans la listview, et non comme à l'heure actuelle, car pour le moment il ne prend que la première ligne (par ex E4 , F4 et G4).

5ème:
Après une recherche, une liste de plantes est trouvé, je voudrai que lorsque je clique sur une plante, les résultats de la recherche, se retranscrive dans la Sheet "résultats et impression" (voir la Sheet il y a des explications). par contre, il faudrait également que si plusieurs plantes correspondent à la recherche, une feuille de résultats soit créée pour chaque plantes dans la Sheet "résultats et impression". De plus, il faudrait qu'il me mette en couleur les cellules dans le tabeau, afin de ne pas rechercher dans celui-ci (car il n'est pas fini il reste environ 100 plantes à inscrire dans le tableau)

6ème:

Dans la listview, il faudrai t une colonne de plus afin de voir les Fiches Thérapeutiques ( en cours de création) associées aux différentes pathologies en fonction de la recherche "textbox3", avec possibilité d'y accéder par un bouton "accéder à la FT".

De même il faut crée une nouvelle "textbox", pour rechercher les FT

Merci d'avance et bon courage
 

Staple1600

XLDnaute Barbatruc
Re : Modifier Userform et module pour améliorer recherche

Re

Alienox
Pour ton point deux, tout est dit dans le commentaire du code... ;)
Code vba:
Private Sub CommandButton6_Click()
'Bouton Raz Critères
'Efface les valeurs contenues dans les textbox dont la propriété TAG est "Criteres"
Dim Ctrl
For Each Ctrl In UserForm1.Controls
If TypeName(Ctrl) = "TextBox" Then
If Ctrl.Tag = "Criteres" Then Ctrl.Value = ""
End If
Next Ctrl
End Sub





Il suffirait d'ajouter ceci, non ?
(que l'on trouve ailleurs dans le code VBA)
Code vba:
'Vidage du contenu de la listview
UserForm1.ListView1.ListItems.Clear





PS: Tu as contacté vouardouxy (a priori l'auteur du fichier) pour qu'il te file un coup de main ?
 

alienox

XLDnaute Occasionnel
Re : Modifier Userform et module pour améliorer recherche

Merci pour ta réponse,

C'est pas faux, tout est écrit, mais Comme je ne comprends pas tout dans ce langage car je suis novice en VBA...:confused:

Oui il suffirai d'ajouter ce que tu écris, mais où dans le code?

Sinon je ne connais pas l'auteur de ce code, c'est un fichier que j'ai récupéré sur le net et que j'essaie tant bien qu'mal d'adapter à mes besoins...
 

Staple1600

XLDnaute Barbatruc
Re : Modifier Userform et module pour améliorer recherche

Re

Là ou le bon sens semble l'indiquer ;)
Private Sub CommandButton6_Click()
'Bouton Raz Critères
'Efface les valeurs contenues dans les textbox dont la propriété TAG est "Criteres"
Dim Ctrl
For Each Ctrl In UserForm1.Controls
If TypeName(Ctrl) = "TextBox" Then
If Ctrl.Tag = "Criteres" Then Ctrl.Value = ""
End If
Next Ctrl
'Vidage du contenu de la listview
ListView1.ListItems.Clear
End Sub

Ceci est le code VBA présent dans l'userform et"rattaché" au bouton Effacer Recherche
 

Staple1600

XLDnaute Barbatruc
Re : Modifier Userform et module pour améliorer recherche

Re


Pour le point 1
Essaies ces modifs
(non testées by myself)
Code VBA:
'Si le contenu du textbox1 correspond aux critères et que le contenu du textbox2 et que le contenu du textbox3 etc
If C.Text Like "*" & UserForm1.TextBox1 & "*" And C.Offset(0, 1).Text Like "*" & UserForm1.TextBox2 & "*" And C.Offset(0, 3).Text Like "*" & UserForm1.TextBox3 & "*" _
And C.Offset(0, 4).Text Like "*" & UserForm1.TextBox4 & "*" Then
 

alienox

XLDnaute Occasionnel
Re : Modifier Userform et module pour améliorer recherche

Je viens de tester le point 2, effacement de la listview-----> ok çà fonctionne :)

Par contre, pour l'autre code du point 1 ----> sans succès :(

Pourrais-tu me dire dans ce code à quoi fait référence " C.Offset (0;3)" ?

Merci de ton aide
 

Staple1600

XLDnaute Barbatruc
Re : Modifier Userform et module pour améliorer recherche

Re

Cela devrait mieux fonctionner ainsi, non ?
Je te laisse trouver où sont les modifs ;)
Code:
For Each C In .Range("B4:B" & .Range("B" & Application.Rows.Count).End(xlUp).Row)
        'Critères de recherche des différents textbox
        'Si le contenu du textbox1 correspond aux critères et que le contenu du textbox2 et que le contenu du textbox3 etc
        If C.Address <> "$B$2" And C <> "" Then
        If C.Text Like "*" & UserForm1.TextBox1.Value & "*" And C.Offset(0, 4).Text Like "*" & UserForm1.TextBox2.Value & "*" And _
        C.Offset(0, 5).Text Like "*" & UserForm1.TextBox3.Value & "*" And C.Offset(0, 3).Text Like "*" & UserForm1.TextBox4.Value & "*" Then
                    'On rempli la première colonne de la listview avec la valeur de la variable
                    UserForm1.ListView1.ListItems.Add , , .Range(C.Address)
                    'On rempli les autre colonnes de la listview par le décalage D représentant l'offset 1,2,3 etc
                    For D = 1 To 9
                        UserForm1.ListView1.ListItems(UserForm1.ListView1.ListItems.Count).ListSubItems.Add , , C.Offset(0, D)
                    Next D
                    'On rempli la dernière colonne de la listview par le nom de l'onglet qui représente le métier
                    UserForm1.ListView1.ListItems(UserForm1.ListView1.ListItems.Count).ListSubItems.Add , , Sheets(F).Name
                End If
            End If
     Next C

Faire également ces modifs en début de module
Code:
Sub RechercheMETIER()


'Déclaration des variables
   Dim F, D As Long
   Dim C As Range
 

Staple1600

XLDnaute Barbatruc
Re : Modifier Userform et module pour améliorer recherche

Re


Pourrais-tu me dire dans ce code à quoi fait référence " C.Offset (0,3)" ?

Offset= Décaler
C= une cellule dans la plage de cellules sur laquelle la boucle du code fait son office ;)
Donc C.Offset(0,3) , on se décale de 0 lignes et de 3 colonnes par rapport à C
(Pour plus sur Offset : ALT+F11 puis touche F1)

PS: Tu as testé les modifs de mon précédent message ?
(Moi, oui ;) )
 

alienox

XLDnaute Occasionnel
Re : Modifier Userform et module pour améliorer recherche

Excellent, ça fonctionne à merveille, :D

Point 1: résolu
point 2: résolu

Franchement trop fort...

Par contre le point 1 est lié au point 4, car il ne recherche que sur la première cellule ( voir explication du point 4)

Merci encore
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 115
Messages
2 085 453
Membres
102 890
dernier inscrit
selkis