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

remplacer des valeurs dans toutes les feuilles

7 réponses
Avatar
Pat rednef
Bonjour à tous,

Je bloque sur un pb qui parait simple:
en VBA
Je souhaite modifier toutes les cellules dans toutes les feuilles d'un
classeur qui ont comme valeur "XX" par la valeur "YY" et cela dans toutes les
feuilles (Nombre variable, nom de fichier variable) et de ne rien faire si la
valeur des cellules est <> "XX"
mon code ne fait que un seul remplacement par feuille, il oubli les autres
valeurs "XX" sur les feuilles..

For each quoi ? comment faire cela ?

Un grand merci d'avance à vous toutes & tous,

Excel-lente journée à vous tous,

Pat

7 réponses

Avatar
anonymousA
bonjour,

à adapter

For Each f In Worksheets
With f.Cells
Set c = .Find(What:="XX")
If Not c Is Nothing Then
firstaddress = c.Address
c.Value = "YY"
Set c = .FindNext(c)
Do While Not c Is Nothing 'c.Address <> firstaddress
c.Value = "YY"
Set c = .FindNext(c)
Loop
End If
End With
Next

A+



Bonjour à tous,

Je bloque sur un pb qui parait simple:
en VBA
Je souhaite modifier toutes les cellules dans toutes les feuilles d'un
classeur qui ont comme valeur "XX" par la valeur "YY" et cela dans toutes les
feuilles (Nombre variable, nom de fichier variable) et de ne rien faire si la
valeur des cellules est <> "XX"
mon code ne fait que un seul remplacement par feuille, il oubli les autres
valeurs "XX" sur les feuilles..

For each quoi ? comment faire cela ?

Un grand merci d'avance à vous toutes & tous,

Excel-lente journée à vous tous,

Pat


Avatar
Pat rednef
Merci c'est parfait et je viens de comprendre !!

Comment transformer ce code pour qu'il remplace "XX" ou "BB ou "CC" ou "DD"
par "YY".
Comment adaptre le code pour qu'il test ces valeurs (faire 4x le travail
fait ar la macro déjà écrite).

Bravo pour la vitesse et surtout la précision du code !

dans l'attente,

Merci

pat


bonjour,

à adapter

For Each f In Worksheets
With f.Cells
Set c = .Find(What:="XX")
If Not c Is Nothing Then
firstaddress = c.Address
c.Value = "YY"
Set c = .FindNext(c)
Do While Not c Is Nothing 'c.Address <> firstaddress
c.Value = "YY"
Set c = .FindNext(c)
Loop
End If
End With
Next

A+



Bonjour à tous,

Je bloque sur un pb qui parait simple:
en VBA
Je souhaite modifier toutes les cellules dans toutes les feuilles d'un
classeur qui ont comme valeur "XX" par la valeur "YY" et cela dans toutes les
feuilles (Nombre variable, nom de fichier variable) et de ne rien faire si la
valeur des cellules est <> "XX"
mon code ne fait que un seul remplacement par feuille, il oubli les autres
valeurs "XX" sur les feuilles..

For each quoi ? comment faire cela ?

Un grand merci d'avance à vous toutes & tous,

Excel-lente journée à vous tous,

Pat




Avatar
anonymousA
re,

tampon = Array("XX", "CC", "DD", "BB")

For I = 0 To UBound(tampon)
For Each f In Worksheets
With f.Cells
Set c = .Find(What:=tampon(I))
If Not c Is Nothing Then
c.Value = "YY"
Set c = .FindNext(c)
Do While Not c Is Nothing 'c.Address <> firstaddress
c.Value = "YY"
Set c = .FindNext(c)
Loop
End If
End With
Next
Next

A+

Merci c'est parfait et je viens de comprendre !!

Comment transformer ce code pour qu'il remplace "XX" ou "BB ou "CC" ou "DD"
par "YY".
Comment adaptre le code pour qu'il test ces valeurs (faire 4x le travail
fait ar la macro déjà écrite).

Bravo pour la vitesse et surtout la précision du code !

dans l'attente,

Merci

pat



bonjour,

à adapter

For Each f In Worksheets
With f.Cells
Set c = .Find(What:="XX")
If Not c Is Nothing Then
firstaddress = c.Address
c.Value = "YY"
Set c = .FindNext(c)
Do While Not c Is Nothing 'c.Address <> firstaddress
c.Value = "YY"
Set c = .FindNext(c)
Loop
End If
End With
Next

A+




Bonjour à tous,

Je bloque sur un pb qui parait simple:
en VBA
Je souhaite modifier toutes les cellules dans toutes les feuilles d'un
classeur qui ont comme valeur "XX" par la valeur "YY" et cela dans toutes les
feuilles (Nombre variable, nom de fichier variable) et de ne rien faire si la
valeur des cellules est <> "XX"
mon code ne fait que un seul remplacement par feuille, il oubli les autres
valeurs "XX" sur les feuilles..

For each quoi ? comment faire cela ?

Un grand merci d'avance à vous toutes & tous,

Excel-lente journée à vous tous,

Pat






Avatar
Pat rednef
Re Merci & Re Bonsoir,

C'est OK, cela fonctionne parfait MAIS.....
dans d'autres cellules il y a des noms de salariés, et si un nom possède un
CC ou un BB AU MILIEU de son nom, cette macro remplace alors le nom par "YY".
Pour aide, la fonction remplace par YY" ne doit se faire que sur les
colonnes I de chaque feuille, peut etre cela aidera, car il n'y a que des
initiales en colonne I et pas de nom.

Si le m^me traitement ne se fait que sur les différentes colonnes I, le pb
sera résolu, mais il y a peut etre différent..

Une idée nocturne,
Bien à vous tous, et à toi !
Merci encore, je vais y arriver !!

Sincèrement

Pat


re,

tampon = Array("XX", "CC", "DD", "BB")

For I = 0 To UBound(tampon)
For Each f In Worksheets
With f.Cells
Set c = .Find(What:=tampon(I))
If Not c Is Nothing Then
c.Value = "YY"
Set c = .FindNext(c)
Do While Not c Is Nothing 'c.Address <> firstaddress
c.Value = "YY"
Set c = .FindNext(c)
Loop
End If
End With
Next
Next

A+

Merci c'est parfait et je viens de comprendre !!

Comment transformer ce code pour qu'il remplace "XX" ou "BB ou "CC" ou "DD"
par "YY".
Comment adaptre le code pour qu'il test ces valeurs (faire 4x le travail
fait ar la macro déjà écrite).

Bravo pour la vitesse et surtout la précision du code !

dans l'attente,

Merci

pat



bonjour,

à adapter

For Each f In Worksheets
With f.Cells
Set c = .Find(What:="XX")
If Not c Is Nothing Then
firstaddress = c.Address
c.Value = "YY"
Set c = .FindNext(c)
Do While Not c Is Nothing 'c.Address <> firstaddress
c.Value = "YY"
Set c = .FindNext(c)
Loop
End If
End With
Next

A+




Bonjour à tous,

Je bloque sur un pb qui parait simple:
en VBA
Je souhaite modifier toutes les cellules dans toutes les feuilles d'un
classeur qui ont comme valeur "XX" par la valeur "YY" et cela dans toutes les
feuilles (Nombre variable, nom de fichier variable) et de ne rien faire si la
valeur des cellules est <> "XX"
mon code ne fait que un seul remplacement par feuille, il oubli les autres
valeurs "XX" sur les feuilles..

For each quoi ? comment faire cela ?

Un grand merci d'avance à vous toutes & tous,

Excel-lente journée à vous tous,

Pat









Avatar
anonymousA
re,

remplacer dans la proc l'instruction Set c = .Find(What:=tampon(I)) par
Set c = .Find(What:=tampon(I), Lookat:=xlWhole).

A+

Re Merci & Re Bonsoir,

C'est OK, cela fonctionne parfait MAIS.....
dans d'autres cellules il y a des noms de salariés, et si un nom possède un
CC ou un BB AU MILIEU de son nom, cette macro remplace alors le nom par "YY".
Pour aide, la fonction remplace par YY" ne doit se faire que sur les
colonnes I de chaque feuille, peut etre cela aidera, car il n'y a que des
initiales en colonne I et pas de nom.

Si le m^me traitement ne se fait que sur les différentes colonnes I, le pb
sera résolu, mais il y a peut etre différent..

Une idée nocturne,
Bien à vous tous, et à toi !
Merci encore, je vais y arriver !!

Sincèrement

Pat



re,

tampon = Array("XX", "CC", "DD", "BB")

For I = 0 To UBound(tampon)
For Each f In Worksheets
With f.Cells
Set c = .Find(What:=tampon(I))
If Not c Is Nothing Then
c.Value = "YY"
Set c = .FindNext(c)
Do While Not c Is Nothing 'c.Address <> firstaddress
c.Value = "YY"
Set c = .FindNext(c)
Loop
End If
End With
Next
Next

A+


Merci c'est parfait et je viens de comprendre !!

Comment transformer ce code pour qu'il remplace "XX" ou "BB ou "CC" ou "DD"
par "YY".
Comment adaptre le code pour qu'il test ces valeurs (faire 4x le travail
fait ar la macro déjà écrite).

Bravo pour la vitesse et surtout la précision du code !

dans l'attente,

Merci

pat




bonjour,

à adapter

For Each f In Worksheets
With f.Cells
Set c = .Find(What:="XX")
If Not c Is Nothing Then
firstaddress = c.Address
c.Value = "YY"
Set c = .FindNext(c)
Do While Not c Is Nothing 'c.Address <> firstaddress
c.Value = "YY"
Set c = .FindNext(c)
Loop
End If
End With
Next

A+





Bonjour à tous,

Je bloque sur un pb qui parait simple:
en VBA
Je souhaite modifier toutes les cellules dans toutes les feuilles d'un
classeur qui ont comme valeur "XX" par la valeur "YY" et cela dans toutes les
feuilles (Nombre variable, nom de fichier variable) et de ne rien faire si la
valeur des cellules est <> "XX"
mon code ne fait que un seul remplacement par feuille, il oubli les autres
valeurs "XX" sur les feuilles..

For each quoi ? comment faire cela ?

Un grand merci d'avance à vous toutes & tous,

Excel-lente journée à vous tous,

Pat











Avatar
isabelle
bonjour Pat,

remplace,
Set c = .Find(What:=tampon(I))

par,
Set c = .Find(What:=tampon(I), LookAt :=xlWhole)

isabelle

Re Merci & Re Bonsoir,

C'est OK, cela fonctionne parfait MAIS.....
dans d'autres cellules il y a des noms de salariés, et si un nom possède un
CC ou un BB AU MILIEU de son nom, cette macro remplace alors le nom par "YY".
Pour aide, la fonction remplace par YY" ne doit se faire que sur les
colonnes I de chaque feuille, peut etre cela aidera, car il n'y a que des
initiales en colonne I et pas de nom.

Si le m^me traitement ne se fait que sur les différentes colonnes I, le pb
sera résolu, mais il y a peut etre différent..

Une idée nocturne,
Bien à vous tous, et à toi !
Merci encore, je vais y arriver !!

Sincèrement

Pat



re,

tampon = Array("XX", "CC", "DD", "BB")

For I = 0 To UBound(tampon)
For Each f In Worksheets
With f.Cells
Set c = .Find(What:=tampon(I))
If Not c Is Nothing Then
c.Value = "YY"
Set c = .FindNext(c)
Do While Not c Is Nothing 'c.Address <> firstaddress
c.Value = "YY"
Set c = .FindNext(c)
Loop
End If
End With
Next
Next

A+


Merci c'est parfait et je viens de comprendre !!

Comment transformer ce code pour qu'il remplace "XX" ou "BB ou "CC" ou "DD"
par "YY".
Comment adaptre le code pour qu'il test ces valeurs (faire 4x le travail
fait ar la macro déjà écrite).

Bravo pour la vitesse et surtout la précision du code !

dans l'attente,

Merci

pat




bonjour,

à adapter

For Each f In Worksheets
With f.Cells
Set c = .Find(What:="XX")
If Not c Is Nothing Then
firstaddress = c.Address
c.Value = "YY"
Set c = .FindNext(c)
Do While Not c Is Nothing 'c.Address <> firstaddress
c.Value = "YY"
Set c = .FindNext(c)
Loop
End If
End With
Next

A+





Bonjour à tous,

Je bloque sur un pb qui parait simple:
en VBA
Je souhaite modifier toutes les cellules dans toutes les feuilles d'un
classeur qui ont comme valeur "XX" par la valeur "YY" et cela dans toutes les
feuilles (Nombre variable, nom de fichier variable) et de ne rien faire si la
valeur des cellules est <> "XX"
mon code ne fait que un seul remplacement par feuille, il oubli les autres
valeurs "XX" sur les feuilles..

For each quoi ? comment faire cela ?

Un grand merci d'avance à vous toutes & tous,

Excel-lente journée à vous tous,

Pat











Avatar
Pat rednef
Merci à vous deux, chacun avec la bonne réponse !

Trop fort,

bonne fin de soirée,
Au plaisir de partager régulièrement des moments avec vous sur ce super
forum !

Bravo !
Pat


bonjour Pat,

remplace,
Set c = .Find(What:=tampon(I))

par,
Set c = .Find(What:=tampon(I), LookAt :=xlWhole)

isabelle

Re Merci & Re Bonsoir,

C'est OK, cela fonctionne parfait MAIS.....
dans d'autres cellules il y a des noms de salariés, et si un nom possède un
CC ou un BB AU MILIEU de son nom, cette macro remplace alors le nom par "YY".
Pour aide, la fonction remplace par YY" ne doit se faire que sur les
colonnes I de chaque feuille, peut etre cela aidera, car il n'y a que des
initiales en colonne I et pas de nom.

Si le m^me traitement ne se fait que sur les différentes colonnes I, le pb
sera résolu, mais il y a peut etre différent..

Une idée nocturne,
Bien à vous tous, et à toi !
Merci encore, je vais y arriver !!

Sincèrement

Pat



re,

tampon = Array("XX", "CC", "DD", "BB")

For I = 0 To UBound(tampon)
For Each f In Worksheets
With f.Cells
Set c = .Find(What:=tampon(I))
If Not c Is Nothing Then
c.Value = "YY"
Set c = .FindNext(c)
Do While Not c Is Nothing 'c.Address <> firstaddress
c.Value = "YY"
Set c = .FindNext(c)
Loop
End If
End With
Next
Next

A+


Merci c'est parfait et je viens de comprendre !!

Comment transformer ce code pour qu'il remplace "XX" ou "BB ou "CC" ou "DD"
par "YY".
Comment adaptre le code pour qu'il test ces valeurs (faire 4x le travail
fait ar la macro déjà écrite).

Bravo pour la vitesse et surtout la précision du code !

dans l'attente,

Merci

pat




bonjour,

à adapter

For Each f In Worksheets
With f.Cells
Set c = .Find(What:="XX")
If Not c Is Nothing Then
firstaddress = c.Address
c.Value = "YY"
Set c = .FindNext(c)
Do While Not c Is Nothing 'c.Address <> firstaddress
c.Value = "YY"
Set c = .FindNext(c)
Loop
End If
End With
Next

A+





Bonjour à tous,

Je bloque sur un pb qui parait simple:
en VBA
Je souhaite modifier toutes les cellules dans toutes les feuilles d'un
classeur qui ont comme valeur "XX" par la valeur "YY" et cela dans toutes les
feuilles (Nombre variable, nom de fichier variable) et de ne rien faire si la
valeur des cellules est <> "XX"
mon code ne fait que un seul remplacement par feuille, il oubli les autres
valeurs "XX" sur les feuilles..

For each quoi ? comment faire cela ?

Un grand merci d'avance à vous toutes & tous,

Excel-lente journée à vous tous,

Pat