Question VBA recherche texte [Résolu]

Signaler
Messages postés
27
Date d'inscription
mardi 19 décembre 2000
Statut
Membre
Dernière intervention
22 août 2008
-
Messages postés
27
Date d'inscription
mardi 19 décembre 2000
Statut
Membre
Dernière intervention
22 août 2008
-
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

Messages postés
372
Date d'inscription
vendredi 27 juillet 2007
Statut
Membre
Dernière intervention
22 juillet 2013
1
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+
Messages postés
27
Date d'inscription
mardi 19 décembre 2000
Statut
Membre
Dernière intervention
22 août 2008

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
Messages postés
372
Date d'inscription
vendredi 27 juillet 2007
Statut
Membre
Dernière intervention
22 juillet 2013
1
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++
Messages postés
372
Date d'inscription
vendredi 27 juillet 2007
Statut
Membre
Dernière intervention
22 juillet 2013
1
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
------------------------------------------------------------------------------
Messages postés
27
Date d'inscription
mardi 19 décembre 2000
Statut
Membre
Dernière intervention
22 août 2008

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 ?
Messages postés
27
Date d'inscription
mardi 19 décembre 2000
Statut
Membre
Dernière intervention
22 août 2008

Merci encore pour votre aide
 Excusez moi encore pour le dérangement