Bonjour,

Comme de nombreux utilisateurs, j'ai été confronté au non fonctionnement d'un rechercher/remplacer sur toutes les feuilles d'un classeur quand on code en VBA.

Cela fonctionne bien quand on le fait en direct : on a bien un remplacement sur toutes les feuilles.

Mais dès qu'on le programme en VBA, le rechercher/remplacer ne fonctionne que sur la feuille active.

Ce problème est identifié sur plusieurs version Excel et le code "For Each Wsh In Worksheets" ne fonctionne pas.

Une façon de contourner le problème est de mettre un compteur et de faire l'opération en routine sur toutes les feuilles comme dans l'exemple ci-dessous :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
Sub nouveaux_tarifs_2019()
    Dim k As Integer, i As Integer
    Workbooks.Open Filename:="C:\Users\" & VBA.Environ("USERNAME") & "\Desktop\azerty.xlsx"
    k = Sheets.Count
    For i = 1 To k
    Sheets(i).Activate
    Cells.Replace What:="3.43", Replacement:="3.23"
    Next i
End Sub
Le seul souci, c'est quand la routine tombe sur une feuille graphique, elle s'arrête...
Si quelqu'un connaît l'astuce pour 'sauter' les feuilles graphiques, je suis preneur.
Merci par avance.
Conciliator