ah ok mais non,
les boutons c'est du texte dans une colonne, (milles excuses si je t'ai enduits d'erreur)
Dans la colonne G de la feuille1 (DFI) j'ai 10000 lignes avec tout le journal des erreurs de mon système. Certains sont plus critique que d'autres.
Je recherche donc dans cette colonne tout ce qui commence par shutdown ou tout ce qui commence Botton pressed KC:01
Ce qui est bizarre c'est qu'avec cette boucle il me les trouve bien tous , mais quand je veux les copier pour les mettre dans la feuille de synthèse et faire un lien hyperlink je suis obligé de définir chacun des noms recherchés avec le bon espace, si il est en majuscule ou en minuscule, si il y a un espace ou deux ......
For Each Nom In Array("Power button event received", "startup COMPLETED", "RFM", "RTF", "RSX", "RTV", "MDM", "ButtonPressed")
Cells.Select
With Application.ReplaceFormat.Interior
.PatternColorIndex = xlAutomatic
.Color = 52000
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Selection.Replace What:=Nom, Replacement:=Nom, LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=True
Next
Et donc , comme quoi le fait d'écrire fait du bien la boucle qui ne marche pas comme je le voudrais c'est celle là
For Each Nom In Array( "Power button event received, opening shutdowndlg", "startup COMPLETED: SW: ", "RestartApplication initiated", "RestartApplication requested by language change", "startup INITIATED ", "SHUTDOWN STARTED", "CRASH - Unhandled exception:")
Application.ScreenUpdating = False
Set oShSource = Worksheets("DFI")
Set oShDest = Worksheets("Synthèse")
iLue = 2
iEcr = oShDest.Range("A" & Rows.Count).End(xlUp).Row + 1
bFin = False
While Not bFin
If oShSource.Range("A" & iLue).Value = "" Then
bFin = True
Else
If oShSource.Range("G" & iLue).Text = Nom Then
oShSource.Rows(iLue).Copy
oShDest.Range("A" & iEcr).PasteSpecial xlPasteAll
Application.CutCopyMode = False
With oShDest
.Hyperlinks.Add .Range("A" & iEcr), "", "'DFI'!G" & iLue
End With
iEcr = iEcr + 1
iLue = iLue + 1
Else
'ligne suivante
iLue = iLue + 1
End If
End If
Wend
Next
Je dois surement ajouter un truc du style : MatchCase:=False, SearchFormat:=False,
Non ?