Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Macro enregistrée "remplacer" défaillante

3 réponses
Avatar
JeNeVois
Bonjour ,

En Excel 2003 j'ai employé la fonction "Remplacer" dans "Classeur"
(sous options) et les remplacements se faisaient ,en effet, dans tout le
clsseur.

Mais si je veux répéter cette action avec la macro suivante (qui
a été enregistré lors de cette opération) :

Cells.Replace What:="AAA", Replacement:="BBB", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

les remplacements se font seulement dans la feuille active.
Quelle est donc l'instruction manquante et pourquoi celle-ci
n'a pas été prise en compte lors de l'enregistrement de la macro ?

Merci pour tout éclairage !

3 réponses

Avatar
isabelle
bonjour,

Sub Macro1()
Set ff = ActiveSheet
For Each f In Worksheets
Sheets(f.Name).Select Replace:úlse
Next
Cells.Replace What:="AAA", Replacement:="BBB", LookAt:=xlWhole, SearchOrder _
:=xlByRows, MatchCase:úlse, SearchFormat:úlse, ReplaceFormat:úlse
ff.Select
Set ff = Nothing
End Sub

isabelle


Bonjour ,

En Excel 2003 j'ai employé la fonction "Remplacer" dans "Classeur"
(sous options) et les remplacements se faisaient ,en effet, dans tout le
clsseur.

Mais si je veux répéter cette action avec la macro suivante (qui
a été enregistré lors de cette opération) :

Cells.Replace What:="AAA", Replacement:="BBB", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse

les remplacements se font seulement dans la feuille active.
Quelle est donc l'instruction manquante et pourquoi celle-ci
n'a pas été prise en compte lors de l'enregistrement de la macro ?

Merci pour tout éclairage !





Avatar
anonymousA
Bonjour,isabelle

peut-être plutot car ta méthode ne fonctionne pas sur mon Excel 2000

For Each f In Worksheets
f.Cells.Replace What:="AAA", Replacement:="BBB", LookAt:=xlWhole,
SearchOrder _
:=xlByRows, MatchCase:úlse
Next

Cordialement,

A+

bonjour,

Sub Macro1()
Set ff = ActiveSheet
For Each f In Worksheets
Sheets(f.Name).Select Replace:úlse
Next
Cells.Replace What:="AAA", Replacement:="BBB", LookAt:=xlWhole,
SearchOrder _
:=xlByRows, MatchCase:úlse, SearchFormat:úlse, ReplaceFormat:úlse
ff.Select
Set ff = Nothing
End Sub

isabelle


Bonjour ,

En Excel 2003 j'ai employé la fonction "Remplacer" dans "Classeur"
(sous options) et les remplacements se faisaient ,en effet, dans tout
le clsseur.

Mais si je veux répéter cette action avec la macro suivante (qui
a été enregistré lors de cette opération) :

Cells.Replace What:="AAA", Replacement:="BBB", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse

les remplacements se font seulement dans la feuille active.
Quelle est donc l'instruction manquante et pourquoi celle-ci
n'a pas été prise en compte lors de l'enregistrement de la macro ?

Merci pour tout éclairage !







Avatar
JeNeVois
Merci, cela fonctionne aussi bien en Excel 2003
tandis que la macro d'Isabelle n'y semble accomplir
rien de plus que la macro enregistrée,même
si l'on place le "next" après le remplacement
(avant "ff.Select"). Merci quand même :)

Une autre variante qui semble fonctionner :

For i = 1 To Sheets.Count
Sheets(i).Cells.Replace What:="AAA", Replacement:="BBB", LookAt:=xlWhole,
SearchOrder _
:=xlByRows, MatchCase:úlse
Next i

Mais celle d'anonymousA excelle en 8 caractères :)

Salutations



Bonjour,isabelle

peut-être plutot car ta méthode ne fonctionne pas sur mon Excel 2000

For Each f In Worksheets
f.Cells.Replace What:="AAA", Replacement:="BBB", LookAt:=xlWhole,
SearchOrder _
:=xlByRows, MatchCase:úlse
Next

Cordialement,

A+

bonjour,

Sub Macro1()
Set ff = ActiveSheet
For Each f In Worksheets
Sheets(f.Name).Select Replace:úlse
Next
Cells.Replace What:="AAA", Replacement:="BBB", LookAt:=xlWhole,
SearchOrder _
:=xlByRows, MatchCase:úlse, SearchFormat:úlse, ReplaceFormat:úlse
ff.Select
Set ff = Nothing
End Sub

isabelle


Bonjour ,

En Excel 2003 j'ai employé la fonction "Remplacer" dans "Classeur"
(sous options) et les remplacements se faisaient ,en effet, dans tout
le clsseur.

Mais si je veux répéter cette action avec la macro suivante (qui
a été enregistré lors de cette opération) :

Cells.Replace What:="AAA", Replacement:="BBB", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse

les remplacements se font seulement dans la feuille active.
Quelle est donc l'instruction manquante et pourquoi celle-ci
n'a pas été prise en compte lors de l'enregistrement de la macro ?

Merci pour tout éclairage !