Bonjour,
j'ai un code qui doit me permettre de trouver la ou les présences d'un verbe dans la colonne.
Pour cela j'utilise les fonctions Find et FinNext. La fonction Find s'arrete des la première valeur trouvée c'est pour cela que j'utilise la fonction FinNext pour finir la recherche (c'est ce que j'ai retenu dans mes recherches sur le site et des forums).
Ce code fonctionne un seul fois. Lors d'une seconde exécution seul la première valeur est trouvée puis sort du code.
la premiere adresse est = à l'adresse en cours, le code ne passe donc pas dans la boucle FindNext.
D'ou peut venir mon erreur?
j'ai un code qui doit me permettre de trouver la ou les présences d'un verbe dans la colonne.
Pour cela j'utilise les fonctions Find et FinNext. La fonction Find s'arrete des la première valeur trouvée c'est pour cela que j'utilise la fonction FinNext pour finir la recherche (c'est ce que j'ai retenu dans mes recherches sur le site et des forums).
Ce code fonctionne un seul fois. Lors d'une seconde exécution seul la première valeur est trouvée puis sort du code.
la premiere adresse est = à l'adresse en cours, le code ne passe donc pas dans la boucle FindNext.
D'ou peut venir mon erreur?
Code:
Sub RechercheNom()
Dim NomSaisi As String, NomSaisiSa As String, NomSaisiNew As String, RechNom As String, TrouveNom As Range
Dim Inc As Integer, CellTrouve As String, Mot As String, Rep As Integer
Dim FirstAddress As String
Dim TabVerbe(10, 1) As String, X As Integer, Y As Integer, IncTab As Integer, VarTab As String
X = 0
Y = 0
'Affichage du InputBox pour saisie
NomSaisi = TextBox2.Value
'MsgBox "Mot saisi: " & NomSaisi
NomSaisiSa = SansAccents(NomSaisi) 'Sauvegarde de la saisie du verbe sans accent
NomSaisiNew = NomSaisi & NomSaisiSa 'Concaténation du verbe avec et sans accent
'Sortie si pas de verbe saisi
If NomSaisi = " " Then
Exit Sub
End If
With Sheets("Feuil3")
'Recherche du verbe de la cellue E5 jusqu'a la derniere cellule non vide de la colonne E (valeur 5 de Cells)
Set TrouveNom = .Range("E5:E" & .Cells(.Rows.Count, "E").End(xlUp).Row).Find(What:=NomSaisiSa, after:=.Range("E5"), LookIn:=xlValues, lookAt:=xlPart, searchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True)
'Sauvegarde du verbe Italien a l'adresse trouvée
Mot = .Range(TrouveNom.Address).Offset(0, 3)
'Test si verbe est non trouvé, si non trouvé sortie du Sous Programme
If Mot = " " Then
MsgBox "Verbe incorrect ou non reconnu"
Exit Sub
End If
'Sauvegarde 1er valeur verbes Francais et Italien
RechNom = TrouveNom.Offset(0, 1).Value
TabVerbe(X, 0) = RechNom
TabVerbe(X, 1) = Mot
MsgBox " Mot trouvé fonction FIND= " & Mot
'Sauvegarde de la 1ere adresse de la colonne
If Not TrouveNom Is Nothing Then
FirstAddress = TrouveNom.Address
MsgBox "Premiere Adresse= " & FirstAddress
'Boucle pour trouver l'existance des verbes Francais identiques dans la colonne, puis remplissage du tableau
Do
Set TrouveNom = Sheets("Feuil3").Range("E5:E65536").FindNext(after:=TrouveNom)
MsgBox "Adresse boucle SET FINDNEXT suivante adresse= " & TrouveNom.Address
MsgBox " adresse cellule de la Feuil3= " & TrouveNom
'Test si nouvelle adresse est différente de la premiere adresse du verbe trouvé
If TrouveNom.Address <> FirstAddress Then
MsgBox "Adresse boucle DO suivante adresse= " & TrouveNom.Address
X = X + 1
RechNom = TrouveNom.Offset(0, 1).Value
Mot = Sheets("Feuil3").Range(TrouveNom.Address).Offset(0, 3)
TabVerbe(X, 0) = RechNom
TabVerbe(X, 1) = Mot
Else 'Test pour ne par récupérer la 1er valeur du tableau en fin de boucle
End If
MsgBox " Mot trouvé fonction FIND NEXT= " & Mot
Loop While Not TrouveNom Is Nothing And TrouveNom.Address <> FirstAddress
End If
End With
'Test si la recherche n'est pas valide
If IsEmpty(TrouveNom.Value) Then
MsgBox "Verbe(s) non trouvé(s) ou mal orthographié(s)"
Else
'Test si tableau est vide
On Error Resume Next
'VarTab va prendre la valeur Empty si le tableau est vide.
VarTab = UBound(TabVerbe)
On Error GoTo 0
If IsEmpty(VarTab) Then MsgBox "Le tableau est vide"
End If
ListBox24.Clear
'Configuration de la ListBox22
ListBox24.ColumnCount = 2
ListBox24.ColumnWidths = "4,5 cm; 2 cm"
ListBox24.Font.Size = 7
'Affichage des vebes trouvés dans les 2 colonnes de la listBox24
For IncTab = 0 To 9
If TabVerbe(IncTab, 1) <> "" Then
ListBox24.AddItem
ListBox24.List(ListBox24.ListCount - 1, 0) = TabVerbe(IncTab, 0)
ListBox24.List(ListBox24.ListCount - 1, 1) = TabVerbe(IncTab, 1)
Else
End If
Next IncTab
'Efface le tableau
Erase TabVerbe
End Sub