Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1373 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  créer une macro recherche sur excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

créer une macro recherche sur excel

n°2079043
gaara35
Posté le 30-05-2011 à 10:21:24  profilanswer
 

Bonjour,  
 
Depuis plusieurs jours je fais des recherches pour trouver comment faire cette macro sans rien trouver (ou sans rien comprendre car je n'y connais pas grand chose).
Voila:  
 
Dans toute la colonne E de ma feuille excel, je souhaite rechercher par exemple le mot "risques" et aller directement sur la première cellule ou le mot risque est présent (sachant qu'il n'y a qu'un seul mot par cellule). L'objectif final étant d'avoir un bouton nommé "risques" qui m'ammène directement sur la cellule recherchée en cliquant dessus, je sais faire le bouton mais pas le détail de la macro.
 
Merci d'avance de votre aide.
 
<config>Windows 7 / Internet Explorer 8.0</config>

mood
Publicité
Posté le 30-05-2011 à 10:21:24  profilanswer
 

n°2079058
olivthill
Posté le 30-05-2011 à 11:01:05  profilanswer
 

Voici une macro (que j'ai créée et testée) :

Public Sub aller_mot(mot_a_trouver As String)
    Application.ScreenUpdating = False   ' pour aller plus vite
    Set ma_feuille = ThisWorkbook.Sheets("Feuil1" )
    col_no = 1 ' pour la colonne A (A = 1)
    lg_no = 1  ' à partir de la première ligne
    flag_trouve = False
    Do While Not IsEmpty(ma_feuille.Cells(lg_no, col_no))
        If (ma_feuille.Cells(lg_no, col_no).Value = mot_a_trouver) Then
           ma_feuille.Cells(lg_no, col_no).Select
           flag_trouve = True
           Exit Do
        End If
        lg_no = lg_no + 1
    Loop
    If (flag_trouve = False) Then
       MsgBox ("Mot " & mot_a_trouver & " non trouvé !" )
    End If
    Application.ScreenUpdating = True   ' Remet le comportement initial
End Sub

n°2079077
gaara35
Posté le 30-05-2011 à 12:17:46  profilanswer
 

il me met argument non facultatif ça veut dire quoi  ?
voilà ce que j'ai rentré, est bon ?
 
Sub(RISQUES As String)
    Application.ScreenUpdating = False
    Set ma_feuille = ThisWorkbook.Sheets("Feuil1" )
    col_no = 5
    lg_no = 1
    flag_trouve = False
    Do While Not IsEmpty(ma_feuille.Cells(lg_no, col_no))
        If (ma_feuille.Cells(lg_no, col_no).Value = RISQUES) Then
           ma_feuille.Cells(lg_no, col_no).Select
           flag_trouve = True
           Exit Do
        End If
        lg_no = lg_no + 1
    Loop
    If (flag_trouve = False) Then
       MsgBox ("Mot " & RISQUES & " non trouvé !" )
    End If
    Application.ScreenUpdating = True
End Sub

n°2079123
olivthill
Posté le 30-05-2011 à 14:15:38  profilanswer
 

Le mot "argument", dans la phrase "argument non facultatif", signifie "paramètre". C'est une mauvaise traduction de l'anglais vers le français, où le mot "argument" signifie autre chose.
Autrement dit, Excel voudrait que le paramètre soit correctement renseigné.
Mais, je vois que, dans la nouvelle version, le nom de la subroutine a disparu, et c'est peut-être la raison du problème.
Au lieu de

Sub(RISQUES As String)


Ecrire

Sub un_nom(RISQUES As String)


N.B. Par convention, on utilise les noms tout en majuscules pour des constantes, pas pour des variable, donc au lieu de RISQUES, il serait mieux d'écrire Risques, ou même mot_a_trouver comme je le suggérais.
 

n°2080629
carlou20
Posté le 06-06-2011 à 12:19:51  profilanswer
 

Bonjour,
 
Pourriez-vous m'aider, je galère :
 
Je souhaiterais créer une recherche dans excel.
J'ai un linting avec des noms et je souhaiterais créer un bouton "recherche" qui ferai apparaitre une boite de dialogue qui permettrait de saisir n'importe quel nom, et une recherche s'effecturait dans ma feuille excel, en sachant qu'il peut y avoir plusieurs noms identiques. Je souhaiterais que le curseur pointe chaque cellule où il y a marqué le nom recherché.
 
Merci pour votre aide... je galère avec des bouquins et je ne trouve pas.

n°2080813
kiki29
Posté le 06-06-2011 à 19:15:42  profilanswer
 

gaara35 : Salut,pourquoi ne pas utiliser un filtre automatique ?


Message édité par kiki29 le 07-06-2011 à 02:45:31

---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html
n°2081609
SupJ
Posté le 09-06-2011 à 16:39:33  profilanswer
 

Oyé
 
Besoin d'aide, et en même temps ca devrait repondre a la question initiale  :o  
 
Voici la macro qui permet de faire une recherche sur toute les feuilles
Voici ma question : La macro me permet de faire une recherche mais seulement sur 1 mot par cellule, ce qui fait que si j'ai une phrase complete, il ne voit rien du tout et me dit qu'il ne trouve donc pas le mot, je suis clair  :heink:  
En gros si je cherche le mot "chien" il me trouvera pas le mot si dans ma cellule il est écrit "le chien dort"
 
Est ce qu'un expert peut me dire comment résoudre cela ?
 
Merci
 
 
Option Explicit
Sub TrouverMotChoix()
Dim Mot As String
Dim Ws As Object
Dim Nbre As Long
Dim Cycle As Long
Dim Trouvé As Variant
Dim CellAddress As Variant
Dim MyValue As String
 
'Définition de la variable à rechercher
Mot = InputBox("Saisir la valeur à chercher.", Title:="Recherche" )
'Vérification si existante
If Mot = "" Then Exit Sub
For Each Ws In Worksheets
Nbre = Nbre + Application.CountIf(Ws.UsedRange, "=" & Mot)
Next Ws
'Message en cas de mot inexistant
If Nbre = 0 Then
MyValue = MsgBox(" La valeur " & Mot & " n'est pas enregistrée ", vbOKOnly, " Message " )
Else
Cycle = 0
'Recherche et arrêt sur les cellules contenant le Mot
For Each Ws In Worksheets
With Ws
.Activate
Set Trouvé = .Cells.Find(What:=Mot, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart)
If Not Trouvé Is Nothing Then
CellAddress = Trouvé.Address
Do
Cycle = Cycle + 1
Trouvé.Activate
If Nbre = 1 Then
MyValue = MsgBox(" La valeur " & Mot & " est enregistrée 1 seule fois ", vbOKOnly, " Message " )
Exit Sub
End If
If Cycle = Nbre Then
MyValue = MsgBox(" La valeur " & Mot & " sélectionnée est la dernière !", vbOKOnly, "Message" )
Sheets("sheet1" ).Activate
Range("A1" ).Select
Exit Sub
Else
MyValue = MsgBox(" La valeur " & Mot & " sélectionnée est la " & Cycle & " sur " & Nbre & " existantes. " & vbLf & _
" Voulez vous continuer la recherche ? ", vbYesNo, "Message" )
If MyValue = vbNo Then Exit For
Set Trouvé = .Cells.FindNext(After:=Trouvé)
End If
Loop While Not Trouvé Is Nothing And Trouvé.Address <> CellAddress
End If
End With
Next Ws
End If
End Sub


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  créer une macro recherche sur excel

 

Sujets relatifs
Comment creer un fichier de BDD ?Meilleur vendeur sous Excel !
Problème incompatibilité type Excel VBA (Help, Stagiaire en détresse!)recherche php
VBA EXCEL : copier coller des valeurs automatiquementComparer 2 feuilles Excel VBA
[Excel-VBA] Rajouter Série .newseriesVBA Lien Catia - Excel / ou comment créer une liaison vers un classeur
Recherche de testeurs pour SFR Widget 
Plus de sujets relatifs à : créer une macro recherche sur excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR