Question VBA recherche texte

Résolu
jager57 Messages postés 27 Date d'inscription mardi 19 décembre 2000 Statut Membre Dernière intervention 22 août 2008 - 18 août 2008 à 14:10
jager57 Messages postés 27 Date d'inscription mardi 19 décembre 2000 Statut Membre Dernière intervention 22 août 2008 - 21 août 2008 à 09:30
Bonjour,je suis actuellement en stage en allemagne <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>





je dois réaliser une programmation sur vba mais je suis un débutant





je voudrais rechercher une phrase dans une colonne





ex :   si je doi rechercher le soleil brille






        si je tape sol es que cŽest possible dŽafficher toutes les phrases contenant lŽabréviation sol






 






es que quelquún peut mŽaider




merci

6 réponses

dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 2
18 août 2008 à 15:51
Salut Jager57
pourquoi 57 ,t'es de Moselle ?
Oui, il est possible de le faire mais il faut indiquer:
- l'emplacement de la cellule ou tu vas taper "sol"
- le numero de colonne où se trouve la liste de mots
- l'emplacement où tu vas afficher toutes tes phrases suivant criteres.
Pour ce faire , tu peux utiliser la méthode 'Find'.
Si tu ne sais pas comment faire ,envoie les renseignements indiqués ci-dessus
A+
3
jager57 Messages postés 27 Date d'inscription mardi 19 décembre 2000 Statut Membre Dernière intervention 22 août 2008
19 août 2008 à 08:23
Bonjour dedenet2,
oui je suis bien mosellan
merci pour votre aide mais je ne sais pas trop comment faire
je vous met un exemple de tableau
<colgroup><col style=\"WIDTH: 90pt; mso-width-source: userset; mso-width-alt: 4388\" width=\"120\" /><col style=\"WIDTH: 60pt\" width=\"80\" /></colgroup>----<?xml:namespace prefix v ns "urn:schemas-microsoft-com:vml" /??><v:shapetype id="_x0000_t201" path="m,l,21600r21600,l21600,xe" o:spt="201" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:path o:connecttype="rect" fillok="f" strokeok="f" o:extrusionok="f" shadowok="f"></v:path><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??><o:lock shapetype="t" v:ext="edit"></o:lock></v:shapetype><v:shape id="_x0000_s1025" style="MARGIN-TOP: 12pt; Z-INDEX: 1; MARGIN-LEFT: 60pt; WIDTH: 60pt; POSITION: absolute; HEIGHT: 15pt; mso-wrap-style: tight" o:insetmode="auto" strokecolor="windowText [64]" fillcolor="buttonFace [67]" o:button="t" type="#_x0000_t201"><v:fill o:detectmouseclick="t" color2="buttonFace [67]"></v:fill><o:lock v:ext="edit" rotation="t"></o:lock><v:textbox style="mso-direction-alt: auto" o:singleclick="f"></v:textbox></v:shape>, , ----
, , ----
, , ----
le soleil brille, 1, ----
le ciel est gris, 2, ----
le soleil nŽest pas la, 3, ----
le soleil est caché, 4, ----
les nuges sont gris, 5, ----
en moselle, il pleut tjrs, 6, ----
le ciel est bleu, 7

Sub test()
Dim nom As String
Dim recherche As String

nom = InputBox("nom")
Sheets("Tabelle1").Activate
recherche = WorksheetFunction.Find(nom, range("tableau"), 2)
MsgBox "Le nom" & recherche
End Sub

si quelquŽun clique sur le bouton recherche, il tape lŽabréviation sol, on doit pouvoir lui donner toutes les phrases contenant lŽabréviation sol
3
dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 2
19 août 2008 à 13:43
Bonjour,

Je te propose une solution.
je n'ai pas utiliser "Find" mais plutôt "Like".En Vba , il ya plusieurs possibités.

Voici le module:
---------------------------------------------------------------------------------------------------
Sub RecherchePhrases()
'Programme de recherche de phrases suivant critere de saisie



Dim nom, c, msg
Dim recherche As String
Dim NombrePhrasesTrouvées As Integer
NombrePhrasesTrouvées = 0




'Affichage du inputbox pour saisie

nom = Trim(Application.InputBox("Taper un nom", "Recherche"))
'N'execute pas la rechereche si on clique sur Annuler ou si aucune saisieIf nom False Or nom "" Then
  Exit Sub
End If
'Active la feuille nommé Tabelle1
 Sheets("Tabelle1").Activate
 
'Effectue la recherche dans la plage cellule nommé tableau
For Each c In Range("tableau")
    If c.Value Like "*" & nom & "*" Then
     'Incremente le nombre de phrases trouvés
      NombrePhrasesTrouvées = NombrePhrasesTrouvées + 1
     'texte trouvé suivant la saisie
       recherche = c.Value
     'fait une liste des phrases correspondantes a la saisie
       msg = msg & recherche & vbTab & vbCrLf
     End If
Next
     'Affiche tout le resultat
      MsgBox NombrePhrasesTrouvées & " phrase(s) trouvé(s)    " _
      & Chr(10) & Chr(10) & msg, vbInformation, "Resultat de " & "[" & nom & "]"
 
End Sub
-------------------------------------------------------------------------------------------------
Ceci est un module que l'on appelle avec un bouton ou autre par le code suivant
Call RecherchePhrases

Teste et donne moi des nouvelles
A++
3
dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 2
20 août 2008 à 21:09
Salut
Il faut envlever msgbox et créer un Userform sur lequel tu mets un
listbox.
N'oublie de nommer l'Userform et le listbox comme dans le code.
Voici le code.
-------------------------------------------------------------------------
Sub Bouton1_QuandClic()
Call RecherchePhrases
End Sub
Sub RecherchePhrases()
'Programme de recherche de phrases suivant critere de saisie

Dim nom, c, msg
Dim recherche As String
Dim NombrePhrasesTrouvées As Integer
NombrePhrasesTrouvées = 0

'Affichage du inputbox pour saisie
nom = Trim(Application.InputBox("Taper un nom", "Recherche"))
'N'execute pas la rechereche si on clique sur Annuler ou si aucune saisie
If nom False Or nom "" Then
Exit Sub
End If
'Active la feuille nommé Tabelle1
Sheets("Tabelle1").Activate

'Effectue la recherche dans la plage cellule nommé tableau
For Each c In Range("tableau")
If c.Value Like "*" & nom & "*" Then
'Incremente le nombre de phrases trouvés
NombrePhrasesTrouvées = NombrePhrasesTrouvées + 1
'texte trouvé suivant la saisie
recherche = c.Value
'fait une liste des phrases correspondantes a la saisie dans
'le listbox
UserFormResultat.ListBoxResultatRecherche.AddItem recherche

End If
Next
'Affiche le liste
If NombrePhrasesTrouvées > 0 Then
UserFormResultat.Caption = NombrePhrasesTrouvées & " phrase(s) trouvé(s)"
UserFormResultat.Show
Else
MsgBox "Aucun résultat !", vbInformation, "Resultat Recherche"
End If

End Sub
------------------------------------------------------------------------------
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jager57 Messages postés 27 Date d'inscription mardi 19 décembre 2000 Statut Membre Dernière intervention 22 août 2008
20 août 2008 à 13:53
Bonjour,
encore merci pour ceux que vous avez fait
mais étant donné que jŽai un tableau avec environ 1000 lignes la msg box ne peut afficher tout les résultats de la recherche. comment faire pour afficher tous les recherches possibles ?
0
jager57 Messages postés 27 Date d'inscription mardi 19 décembre 2000 Statut Membre Dernière intervention 22 août 2008
21 août 2008 à 09:30
Merci encore pour votre aide
 Excusez moi encore pour le dérangement
0
Rejoignez-nous