détecter un certain mot

jemmy1989

XLDnaute Nouveau
bonsoir
je voudrais svp savoir comment faire pour qu'à l'aide de VBA excel détecter les phrases qui contiennent un certains mot
exemple

Jack mange des pommes
à la maison jack est

comment faire pour que excel detecte qu'elle sont les adresses des phrases dans lesquels le mot "jack" existe
c'est une sorte de fonctionne recherche mais je voudrais l'utiliser dans une macro dans VBA

merci
 

Regueiro

XLDnaute Impliqué
Re : détecter un certain mot

Bonsoir
Ici une piste
VBA - Recherche de données - La méthode find

Il faut adapter le code a ta situation.

Sub Principale()
Dim Plage As Range
Dim Lignes(), i As Long
Dim Texte As String
Dim Flag As Boolean

Set Plage = Sheets("Feuil1").Range("A1:A20") 'plage de recherche
Texte = "mot" 'expression cherchée
Flag = Find_Next(Plage, Texte, Lignes()) 'appel de la fonction
If Flag Then 'si fonction retourne Vrai = expression trouvée dans la plage
For i = LBound(Lignes) To UBound(Lignes) 'restitution des lignes correspondantes
Debug.Print Lignes(i)
Next i
Else
MsgBox "L'expression : " & Texte & " n'a pas été trouvée dans la plage : " & Plage.Address
End If
End Sub

'Sources : Michel_m
'http://www.commentcamarche.net/forum/affich-31432413-importation-de-donnees-sans-doublons#9
Function Find_Next(Rng As Range, Texte As String, Tbl()) As Boolean
Dim Nbre As Integer, Lig As Long, Cptr As Long

Nbre = Application.CountIf(Rng, Texte)
If Nbre > 0 Then
ReDim Tbl(Nbre - 1)
Lig = 1
For Cptr = 0 To Nbre - 1
Lig = Rng.Find(Texte, Cells(Lig, Rng.Column), xlValues).Row
Tbl(Cptr) = Lig
Next
Else
GoTo Absent
End If
Find_Next = True
Exit Function
Absent:
Find_Next = False
End Function

@+
 

ROGER2327

XLDnaute Barbatruc
Re : détecter un certain mot

Bonjour.


Code:
Option Compare Text

Function chercheExp(t$, Plage As Range)
Const u$ = "*[- '({}),.:""]", v$ = "[- '({}),.:""]*"
Dim i&, m$, c As Range, d$()
  ReDim d(1 To Plage.Cells.Count, 0)
  If Len(t) Then
    For Each c In Plage
      m = c.Text: If m Like "*" & t & "*" Then If m Like t Or m Like u & t & v Or m Like u & t Or m Like t & v Then i = i + 1: d(i, 0) = c.Address(0, 0)
    Next
  End If
  chercheExp = d
End Function
Exemples d'utilisation dans le classeur joint.


Bonne journée.


ℝOGER2327
#8246


Dimanche 15 Clinamen 143 (Invention de la ’Pataphysique - fête Suprême Première première)
17 Germinal An CCXXIV, 0,2163h - mélèze
2016-W14-3T00:31:09Z
 

Pièces jointes

  • Cherche-mot.xlsm
    17.9 KB · Affichages: 68

jemmy1989

XLDnaute Nouveau
Re : détecter un certain mot

merci beaucoup à vous deux, j'ai prix la solution de ROGER2327 car elle a l'air plus simple, seulement quand j'ai copié coller le code dans mon fichier ça n'a pas fonctionner, au lieu d'avoir l'adresse dans les cellule a coté des phrases ou il y a le mot j'ai une erreur #NOM?
 

Pexcel

XLDnaute Junior
Salut, en général l' erreur Name apparaît lors d'une faute de frappe dans la formule ou alors :
quand j'ai copié coller le code dans mon fichier
Ton fichier n'a pas une extension xlm mais plutôt xls, ou xlsx ce qui nous emmène à une autre question...
As tu aussi copié le code de Roger dans le module01 sur le Visual basic avec une extension xlm ?
 

Discussions similaires

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87