Recherche qui échoue car projet pas trouvé
Bonjour à tous
Dans mon fichier (plus de 1000 ligne) je recherche des projets pour en extraire les dates des différentes activités de production.
Jusque là, pas de souci.
Mon problème est que certains petits projets ne sont pas planifiés, mais ont quand même des composants à fabriquer et lorsque je faits une recherche avec le code ci-dessous, un message d'erreur apparait.
cells.Find(What:=Projet, After:=activecell, LookIn:=xlValues, LookAt _
:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase _
:=True, SearchFormat:=False).Activate
Auriez vous une astuce pour que si le projet n'existe pas dans la liste de recherche, pouvoir passer outre le bug et passer à la ligne suivante?
Je ne voudrais pas passer par une boite de dialogue qui dirai que le projet n'existe pas et avoir à répondre OK à chaque projet.
C'est ce que j'ai pour l'instant, et c'est assez fastidieux à gérer. ( des dizaines de OK à effectuer)
Voici le code:
While cells(j, 3).Value <> ""
Projet = cells(j, 4).Value
If Projet <> cells(j, 1).Value Then
deb115 = "" 'Début de la réunion d'engagement
deb98 = "" 'Début des structures ACB
deb323 = "" 'Début des parties mobiles
deb210 = "" 'Début du câblage
deb123 = "" 'Début de la personnalisation
deb405 = "" 'Début de contrôle final
fin410 = "" 'Fin emballage
Windows("EBT2.3.txt").Activate
Columns("A:A").Select
Set exi = Selection.Find(What:=Projet, After:=activecell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=True)
If exi Is Nothing Then
CreateObject("Wscript.shell").Popup ("Le projet n° " & Projet & " est absent de MS Project"), 1, "Projet non planifié"
Else
Selection.Find(What:=Projet, After:=activecell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False).Select
While activecell = Projet
If activecell.Offset(0, 1).Value = 115 Then
deb115 = activecell.Offset(0, 2).Value
Else
If activecell.Offset(0, 1).Value = 98 Then
deb98 = activecell.Offset(0, 2).Value
Else
If activecell.Offset(0, 1).Value = 323 Then
deb323 = activecell.Offset(0, 2).Value
Else
If activecell.Offset(0, 1).Value = 210 Then
deb210 = activecell.Offset(0, 2).Value
Else
If activecell.Offset(0, 1).Value = 123 Then
deb123 = activecell.Offset(0, 2).Value
Else
If activecell.Offset(0, 1).Value = 405 Then
deb405 = activecell.Offset(0, 2).Value
Else
If activecell.Offset(0, 1).Value = 410 Then
fin410 = activecell.Offset(0, 2).Value
End If
End If
End If
End If
End If
End If
End If
activecell.Offset(1, 0).Select
Wend
End If
End If
activecell.Offset(1, 0).Select
Workbooks("Avancement OF V1.xlsm").Sheets("OF").Activate
cells(j, 14).Value = deb115
cells(j, 15).Value = deb98
cells(j, 16).Value = deb323
cells(j, 17).Value = deb210
cells(j, 18).Value = deb123
cells(j, 19).Value = deb405
cells(j, 20).Value = fin410
j = j + 1
Wend
Malgré mes recherches sur le web, je ne trouve pas la solution.
Merci pour votre aide
@+
Robert
Bonjour robert,
Essaie en remplaçant :
Set exi = Selection.Find(What:=Projet, After:=activecell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=True)
If exi Is Nothing Then
CreateObject("Wscript.shell").Popup ("Le projet n° " & Projet & " est absent de MS Project"), 1, "Projet non planifié"
Else
Selection.Find(What:=Projet, After:=activecell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False).Select
par :
Set exi = Selection.Find(What:=Projet, After:=activecell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=True)
If exi Is Nothing Then
'CreateObject("Wscript.shell").Popup ("Le projet n° " & Projet & " est absent de MS Project"), 1, "Projet non planifié"
Else
exi.Select
Bonjour à tous
Merci vba-new, c'était la solution.
ça a l'air de fonctionner. Plus de boite de dialogue à valider par OK
@+
Robert