Bouton recherche

13intervention.xlsm (31.36 Ko)

Bonjour à tous,

J'ai créer un document que je vous mets ci-joint (document test celui-ci).

Je suis en apprentissage BTS maintenance des systèmes, et ce document peut me permettre d'améliorer l'organisation.

Je débute la "programmation" sur excel, j'ai réaliser 2 maccroc pour créer une nouvelle demande d'intervention, ainsi que pour la valider et qu'elle passe dans mon historique.

Cela fait 2 jours que je recherche comment mettre en place un bouton recherche qui permettrait de filtrer mon historique pour rechercher une pannes similaires sans parcourir tout mon tableau.

J'ai réussi ce matin à faire un petit quelque chose (feuille "histo"). Problème que je rencontre c'est qu'il faut que ma recherche commence par le premier mot en correspondance de ma cellule or je voudrais que dès qu'il y a 1 mots similaire, la case apparaisse.

Ensuite dans le document test que j'ai réalisé, mes recherches apparaissent dans une autre colonne, je voudrais qu'il apparaisse en supprimant toute les lignes qui ne correspondent pas à mes critères de recherches et qu'il me reste que les lignes intéressante selon ma recherche suivant mon tableau de base.

Dans mon ancienne entreprise où j'ai effectué mes stages, j'avais quelque chose de similaire, mais ce n'est pas moi qui l'ai conçu et donc je me base de mes souvenirs pour reproduire un peu la même chose. Je ne sais absolument pas comment étais faites les formules, les maccrocs etc...

Si vous pouvais m'aider à améliorer mes compétences sur Excel je vous en remercirai infiniment. :)

J'espère avoir étais assez compréhensible sinon n'hésitez pas à me demander des informations.

Bonjour

un essai (sub en module 1):

Sub Recherche()

    Dim c As Range
    Dim i As Integer
    Dim derlig8 As Long
    Dim derlig15 As Long
   i = 11
   derlig8 = Cells(Rows.Count, 8).End(xlUp).Row
   Range([O11], Cells((Cells(Rows.Count, 15).End(xlUp).Row) + 1, 15)).ClearContents
        For Each c In Range(Cells(i, 8), Cells(derlig8, 8))
            derlig15 = Cells(Rows.Count, 15).End(xlUp).Row
            Set c = Worksheets(2).Range(Cells(i, 8), Cells(derlig8, 8)).Find([E5].Value, LookIn:=xlValues)
            If c Is Nothing Then Exit For
            Cells(derlig15 + 1, 15) = Cells(c.Row, 8).Value
            i = c.Row + 1
            Next

End Sub
10intervention.xlsm (31.17 Ko)

Merci Numéro 2 de ta réponse et de ton programme que tu m'as développer cela m'a fait comprendre certaine chose.

Néanmoins je me suis mal exprimer. Je veux que mon programme exécute la même fonction que la recherche en mode filtration, j'ai donc créer une macro qui est dans le document ci-joint (fichier-tes) "intervention" n'est pas le bon mais j'arrive pas à le supprimer, je mets le code ici ci jamais.

Sub Recherche()
'
' Recherche Macro
'

'
    Range("E5:H7").Select
    ActiveCell.FormulaR1C1 = "hs"
    Range("E8").Select
    ActiveSheet.Range("$A$10:$J$40").AutoFilter Field:=8, Criteria1:= _
        "Disjoncteur hs"
End Sub

C'est le code que la macro m'a créer automatiquement, je comprends son fonctionnement. Le problème est que je n'arrive pas à trouver ce qu'il faut que je mette à la place de "hs" pour que selon le mot que j'écris la recherche varie. Par exemple je recherche "HS" ça va filtrer tout le temps "HS" mais si je mets "Changement" je veux que sa me filtre juste les lignes où se trouve le mot "changement" si quelqu'un pourrait me donner l'astuce pour que je comprenne ce serai hyper sympa. Il faut que le mot varie, mais je sais pas quel code me permet de dire que mon mot varie.

Merci de vos retours.

8fichier-tes.xlsm (44.97 Ko)
4intervention.xlsm (43.32 Ko)

Re

Comprend pas trop l'objectif final donc pas sur d'avoir la bonne solution mais un autre essai:

Sub Recherche()
    ActiveSheet.Range("$A$10:$J$40").AutoFilter Field:=8, Criteria1:="*" & [E5].Value & "*"
End Sub

Encore une fois merci de ta réponse Numéro 2,

Je m'explique en effet mal, si tu regarde mon document, j'ai filtrer mes titres de mon tableaux. En ouvrant ce filtre on peut taper un mot clé qui va nous filtrer les lignes par rapport au mot clé. Ce que je veux c'est automatisé cela en tapant le mot clé dans une cellule et non aller chercher dans le filtre etc...

J'ai essayé le code que tu m'as passé car j'ai modifié mon code de départ. Mais quand je veux lancer la macro il me dit qu'il y a une incompatibilité de type.

Sub Recherche()
'
' Recherche Macro
'

'
    Range("E5:H7").Select 'selectionne la case défini pour rechercher
    ActiveCell.FormulaR1C1 = [E5:H7].Value 'rentrer un mot quelconque
    ActiveSheet.Range("$A$10:$J$42").AutoFilter Field:=8, Criteria1:="*" & [E5:H7].Value & "*" 'selon le mot de recherche renter plus haut, trouver les lignes correspondante

End Sub
6fichier-tes.xlsm (44.14 Ko)

Pourquoi ne pas juste essayer mon code ?

Tu rentre ta valeur dans ta cellule E5 (E5:H7 si tu souhaite rester en cellule fusionné, ça revient au même pour la macro) et puis tu lance la macro (rajoute la au bouton si tu le souhaite)

Sub Recherche()
    ActiveSheet.Range("$A$10:$J$40").AutoFilter Field:=8, Criteria1:="*" & [E5].Value & "*"
End Sub

J'ai essayé juste avec ton code comme tu me l'as prescrit, cela me met quand même "incompatibilité de type"

Chez moi ça marche donc essaye avec ce fichier

7fichier-tes.xlsm (41.54 Ko)

Je confirme que cela correspond bien à ma recherche, je ne sais pas pourquoi sa ne fonctionne pas au début mais j'ai résolu le soucis. Je chercherai plus tard pourquoi sa merdais.

Je te remercie énormément. Je vais mettre sa sur mon document au boulot, le chef va être content :)

Rechercher des sujets similaires à "bouton recherche"