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 :
Le seul souci, c'est quand la routine tombe sur une feuille graphique, elle s'arrête...
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
Si quelqu'un connaît l'astuce pour 'sauter' les feuilles graphiques, je suis preneur.
Merci par avance.
Conciliator
Partager