Bonjour à tous

Je bloque depuis quelques jours sur le problème suivant :

J'aimerai modifier un caractère "x" par un autre caractère "y" de toutes les cellules, en comportant, d'un fichier FERME. Il y a plusieurs feuilles, plusieurs lignes et colonnes, et surtout il peut y avoir plusieurs fois le même caractère dans une cellule.

La première ligne de chaque feuille n'est pas identique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub modifie_fichier_ferme_interieur_cellules()
Dim cnn, Feuille, i  
 
  Set cnn = New ADODB.Connection
  cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};ReadOnly=0;DBQ=" & _
      ThisWorkbook.Path & "\" & "fichiercible"
 
'Boucle sur les feuilles
For i = 1 To 5  ' 5 étant un exemple de nbfeuilles
Feuille = "Feuil" & i & "$"
 
'ligne de départ d'idée, mais qui fonctionne pas sur un fichier fermé
    Cells.Replace What:="x", Replacement:="y", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
 
Next i
 
  cnn.Close
  Set cnn = Nothing
End Sub
Je pars de ce code, mais bien sur il ne fonctionne pas. Que dois-je écrire ?

Dois-je nommer les plages, et si oui, comment ? toujours en fichier fermé

La solution que j'avais envisagé était de pointer sur chaque cellule, repérer chaque caractère "x" et modifier en "y", mais comme il y a plusieurs centaines de cellules.... Je me demandais s'il n'y avait pas quelque chose de beaucoup plus simple et plus rapide.

Cette manipulation est à exécuter plusieurs fois par mois et sur des fichiers différents.

Merci d'éclairer ma lanterne

Eric