Boucle sur recherche en vb

DELATRE

XLDnaute Nouveau
Bonjour,
J'ai écrit un vb. Celui-ci recherche un mot dans un champ.
Je recherche un autre mot dans le même champ.
Je recherche en tout 6 mots. Les mots présents au moins une fois s'affichent dans une box.
Tout cela fonctionne.
Mais, étant donné que j'ai une liste de 34 mots qui peut évoluer, j'ai créé une boucle.
La macro tourne sans erreur, mais les variables restent vides. J'ai mis un mouchard et des msgbox à chaque étape, mais la macro ne repaire rien.

Je ne vois pas d'où vient le soucis. Quelqu'un voit-il une erreur dans ma boucle ?
Merci
Fabien

Premier VB :

Sub TSPE2()
' Ouvrir le fichier du jour
Workbooks.Open Filename:="\\FSBITSRV\Services\DPR_SFE_SED SRV\ACTIVITES\Suivi d'activité au quotidien\Macro\Seclin du jour.xlsx"""
Windows("Seclin du jour.xlsx").Activate
ActiveWindow.WindowState = xlMaximized

'A4E3
'déclaration des variables :
Dim Trouve1 As Range, PlageDeRecherche As Range
Dim Cherché1 As String, Trouvé1 As String
Dim Liste1 As String
'on cherche le mot "A4E3"
Cherché1 = "A4E3"
'dans le 6ème champ
Set PlageDeRecherche = ActiveSheet.Columns(6)
Set Trouve1 = PlageDeRecherche.Cells.Find(what:=Cherché1, LookAt:=xlWhole)
'traitement si on ne trouve rien :
If Trouve1 Is Nothing Then
Liste1 = " "
'traitement si on trouve :
Else
Liste1 = Cherché1
End If
' MsgBox Liste1

'CERE
'déclaration des variables :
Dim Trouve2 As Range
Dim Cherché2 As String, Trouvé2 As String
Dim Liste2 As String
'on cherche le mot CERE
Cherché2 = "CERE"
'dans le 6ème champ
Set PlageDeRecherche = ActiveSheet.Columns(6)
Set Trouve2 = PlageDeRecherche.Cells.Find(what:=Cherché2, LookAt:=xlWhole)
'traitement si on ne trouve rien :
If Trouve2 Is Nothing Then
Liste2 = " "
'traitement si on trouve :
Else
Liste2 = Cherché2
End If
' FINAL
'ici, traitement pour le cas où la valeur est trouvée
MsgBox "Liste à suivre : " & Liste1 & " " & Liste2 & " " & Liste3 & " " & Liste4 & " " & Liste5 & " " & Liste6 & " " & Liste7 & " "

End Sub

VB avec boucle :

Sub TSPE()
' Ouvrir le fichier du jour
Workbooks.Open Filename:="\\FSBITSRV\Services\DPR_SFE_SED SRV\ACTIVITES\Suivi d'activité au quotidien\Macro\Seclin du jour.xlsx"""
Windows("Seclin du jour.xlsx").Activate
ActiveWindow.WindowState = xlMaximized

'déclaration des variables :
Dim PlageDeRecherche As Range
Dim Trouve(34) As Range
Dim Cherché(34) As String
Dim Trouvé(34) As String
Dim Liste(34) As String

'affectation de valeurs aux variables 'Cherché' :
Cherché1 = "A4E3"
Cherché2 = "CERE"
Cherché3 = "CEVI"
Cherché4 = "CIAC"
Cherché5 = "CIPR"
Cherché6 = "CLEP"
Cherché7 = "CNRI"
Cherché8 = "CNVC"
Cherché9 = "CNVI"
Cherché10 = "CPEL"
Cherché11 = "CRER"
Cherché12 = "CREV"
Cherché13 = "CRII"
Cherché14 = "CRPS"
Cherché15 = "CTME"
Cherché16 = "CVBG"
Cherché17 = "CVBN"
Cherché18 = "ECTC"
Cherché19 = "L12A"
Cherché20 = "L14A"
Cherché21 = "L16A"
Cherché22 = "L18A"
Cherché23 = "L20A"
Cherché24 = "L26A"
Cherché25 = "L6AN"
Cherché26 = "LCAP"
Cherché27 = "LCAU"
Cherché28 = "LCCE"
Cherché29 = "LCOM"
Cherché30 = "LPEL"
Cherché31 = "NVTP"
Cherché32 = "PR30"
Cherché33 = "RPEP"
Cherché34 = "TITR"

For i = 1 To 34

'recherche dans le sixième champ
Set PlageDeRecherche = ActiveSheet.Columns(6)
Set Trouve(i) = PlageDeRecherche.Cells.Find(what:=Cherché(i), LookAt:=xlWhole)
'Si on ne trouve rien :
If Trouve(i) Is Nothing Then
Liste(i) = " "
'Si on trouve :
Else
Liste(i) = Cherché(i)

End If
Next i

' FINAL
MsgBox "Liste des traitements SPE à suivre : " & Liste1 & " " & Liste2 & " " & Liste3 & " " & Liste4 & " " & Liste5 & " " & Liste6 & " " & Liste7 & " " & Liste8 & " "

'Fermeture du Seclin du jour
Workbooks("Seclin du jour.xlsx").Close SaveChanges:=False

End Sub
 
Dernière édition:

Discussions similaires

Réponses
16
Affichages
1 K
Réponses
8
Affichages
912

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 977
dernier inscrit
Hermet