Sub test()
Dim laShape As Shape, celluleCentre As Range, centreT As Double, centreL As Double, i As Long
Dim nbColAffichees As Long, nbLigAffichees As Long, decalageCol As Long, decalageLig As Long
Dim numOf As String, laFeuille As Worksheet, trouve As Boolean
'récupérer le numéro d'OF à rechercher
numOf = InputBox("Numéro d'OF à rechercher :", "Rechercher")
trouve = False
'boucler sur chaque feuille du classeur
For Each laFeuille In ThisWorkbook.Sheets
'boucler sur toutes les formes de la feuille
For Each laShape In laFeuille.Shapes
If laShape.TextFrame.Characters.Text Like "*" & numOf & "*" Then trouve = True
If trouve Then Exit For
Next laShape
If trouve Then Exit For
Next laFeuille
'si aucune forme contenant le numéro d'of n'a été trouvée, quitter la macro
If laShape Is Nothing Then Exit Sub
'activer la feuille et sélectionner la forme
laFeuille.Activate
laShape.Select
'centrer la forme à l'écran
'calculer les "coordonnées" du centre de la forme
centreT = laShape.Top + laShape.Height / 2
centreL = laShape.Left + laShape.Width / 2
'calculer la cellule correspondante aux "coordonnées"
Set celluleCentre = Sheets("Feuil1").Range("A1")
While celluleCentre.Offset(0, 1).Left < centreL
Set celluleCentre = celluleCentre.Offset(0, 1)
Wend
While celluleCentre.Offset(1, 0).Top < centreT
Set celluleCentre = celluleCentre.Offset(1, 0)
Wend
'vériffier le nombre de lignes et colonnes affichées
nbColAffichees = ActiveWindow.VisibleRange.Columns.Count
nbLigAffichees = ActiveWindow.VisibleRange.Rows.Count
'calculer la cellule (colonne et ligne) à afficher en haut à droite
decalageCol = IIf(celluleCentre.Column - CInt(nbColAffichees / 2) + 1 < 1, 1, celluleCentre.Column - CInt(nbColAffichees / 2) + 1)
decalageLig = IIf(celluleCentre.Row - CInt(nbLigAffichees / 2) + 1 < 1, 1, celluleCentre.Row - CInt(nbLigAffichees / 2) + 1)
'positionner la fenêtre (bugge depuis VBE, la macro doit être lancée depuis le excel)
ActiveWindow.ScrollColumn = decalageCol
ActiveWindow.ScrollRow = decalageLig
End Sub