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

range.replace

22 réponses
Avatar
Misange
Hello
Je bute sur un truc qui m'agace...
Ecrivez en A4 = moyenne(A1:A3). Tirez cette formule vers la droite, en
B4 et C4.
Sélectionnez B4:C4
Lancez l'enregistreur de macro et faites un rechercher moyenne et
remplacer par ecartype en cochant de regarder dans les formules.

Ca marche très bien
Le code généré donne ça
Selection.Replace What:="moyenne", Replacement:="ecartype",
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False,
SearchFormat:=False, ReplaceFormat:=False

Vous noterez qu'à aucun moment le code généré ne précise qu'il faut
regarder dans les formules...
Et si vous essayez de rejouer cette macro, elle trouve le mot moyenne
dans les valeurs mais jamais dans les formules.

Ma question : comment faire EN VBA un recherche /remplacer dans une
formule (pas dans les valeurs de la cellule ?)

Ma gratitude à celui qui trouve ;-)

Misange

10 réponses

1 2 3
Avatar
LSteph
Bonsoir,
Oui et le pire c'est que si on essaie de mettre en +
LookIn:=xlFormulas ça bugue.

on est qd même pas obligé de boucler sur les cellules de la plage
en cherchant dans .formula

c'est effectivement agaçant.

Voilà un truc à creuser...

@+

lSteph

Hello
Je bute sur un truc qui m'agace...
Ecrivez en A4 = moyenne(A1:A3). Tirez cette formule vers la droite, en
B4 et C4.
Sélectionnez B4:C4
Lancez l'enregistreur de macro et faites un rechercher moyenne et
remplacer par ecartype en cochant de regarder dans les formules.

Ca marche très bien
Le code généré donne ça
Selection.Replace What:="moyenne", Replacement:="ecartype",
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:úlse,
SearchFormat:úlse, ReplaceFormat:úlse

Vous noterez qu'à aucun moment le code généré ne précise qu'il faut
regarder dans les formules...
Et si vous essayez de rejouer cette macro, elle trouve le mot moyenne
dans les valeurs mais jamais dans les formules.

Ma question : comment faire EN VBA un recherche /remplacer dans une
formule (pas dans les valeurs de la cellule ?)

Ma gratitude à celui qui trouve ;-)

Misange


Avatar
MichDenis
Tu dois utiliser Find.... FindNext -> exemple dans l'aide d'excel

ou ceci :

For Each cell In Range("A1:C1").Cells
cell.FormulaLocal = Replace(cell.FormulaLocal, "MOYENNE", "ECARTYPE")
Next




"Misange" a écrit dans le message de news:

Hello
Je bute sur un truc qui m'agace...
Ecrivez en A4 = moyenne(A1:A3). Tirez cette formule vers la droite, en
B4 et C4.
Sélectionnez B4:C4
Lancez l'enregistreur de macro et faites un rechercher moyenne et
remplacer par ecartype en cochant de regarder dans les formules.

Ca marche très bien
Le code généré donne ça
Selection.Replace What:="moyenne", Replacement:="ecartype",
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:úlse,
SearchFormat:úlse, ReplaceFormat:úlse

Vous noterez qu'à aucun moment le code généré ne précise qu'il faut
regarder dans les formules...
Et si vous essayez de rejouer cette macro, elle trouve le mot moyenne
dans les valeurs mais jamais dans les formules.

Ma question : comment faire EN VBA un recherche /remplacer dans une
formule (pas dans les valeurs de la cellule ?)

Ma gratitude à celui qui trouve ;-)

Misange
Avatar
LSteph
..évidemment dans .formula ce sera AVERAGE ou STDEV
et j'y suis pas encore!



Hello
Je bute sur un truc qui m'agace...
Ecrivez en A4 = moyenne(A1:A3). Tirez cette formule vers la droite, en
B4 et C4.
Sélectionnez B4:C4
Lancez l'enregistreur de macro et faites un rechercher moyenne et
remplacer par ecartype en cochant de regarder dans les formules.

Ca marche très bien
Le code généré donne ça
Selection.Replace What:="moyenne", Replacement:="ecartype",
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:úlse,
SearchFormat:úlse, ReplaceFormat:úlse

Vous noterez qu'à aucun moment le code généré ne précise qu'il faut
regarder dans les formules...
Et si vous essayez de rejouer cette macro, elle trouve le mot moyenne
dans les valeurs mais jamais dans les formules.

Ma question : comment faire EN VBA un recherche /remplacer dans une
formule (pas dans les valeurs de la cellule ?)

Ma gratitude à celui qui trouve ;-)

Misange


Avatar
Modeste
Bonsour® LSteph avec ferveur ;o))) vous nous disiez :

Oui et le pire c'est que si on essaie de mettre en +
LookIn:=xlFormulas ça bugue.
c'est effectivement agaçant.

Voilà un truc à creuser...


;o)))
il me semble que la syntaxe pour la recherche VBA dans les formules utilise les
tokens VBA
donc utilise les nom de fonctions US

Selection.Replace What:="AVERAGE", Replacement:="STDEV",LookIn:=xlformulas,
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:úlse,
SearchFormat:úlse, ReplaceFormat:úlse

@+
;o)))

Avatar
LSteph
;o))
tu arrives après la bataille,
je l'ai déjà dit!
Mais cela bugue aussi comme tu indiques,
tu penses bien que j'ai essayé et Flo aussi sans doute.

Voir ce que propose MD..

@+



Bonsour® LSteph avec ferveur ;o))) vous nous disiez :

Oui et le pire c'est que si on essaie de mettre en +
LookIn:=xlFormulas ça bugue.
c'est effectivement agaçant.

Voilà un truc à creuser...


;o)))
il me semble que la syntaxe pour la recherche VBA dans les formules utilise les
tokens VBA
donc utilise les nom de fonctions US

Selection.Replace What:="AVERAGE", Replacement:="STDEV",LookIn:=xlformulas,
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:úlse,
SearchFormat:úlse, ReplaceFormat:úlse

@+
;o)))





Avatar
MichDenis
Si tu veux utiliser ce que tu présentes, fait comme ceci .. ça devrait aller !

Range("A1:C1").Replace What:="AVERAGE", Replacement:="STDEV", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:úlse, _
SearchFormat:úlse, ReplaceFormat:úlse

Le paramètre LookIn:=xlformulas n'existe pas dans la méthode "Replace"
car il est le paramètre par défaut, le seul disponible.




"Modeste" a écrit dans le message de news:

Bonsour® LSteph avec ferveur ;o))) vous nous disiez :

Oui et le pire c'est que si on essaie de mettre en +
LookIn:=xlFormulas ça bugue.
c'est effectivement agaçant.

Voilà un truc à creuser...


;o)))
il me semble que la syntaxe pour la recherche VBA dans les formules utilise les
tokens VBA
donc utilise les nom de fonctions US

Selection.Replace What:="AVERAGE", Replacement:="STDEV",LookIn:=xlformulas,
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:úlse,
SearchFormat:úlse, ReplaceFormat:úlse

@+
;o)))

Avatar
Modeste
Bonsour® Modeste avec ferveur ;o))) vous nous disiez :
des c..... ies...
;o)))
aprés vérification, réponse nulle et non avenue

--
@+
;o)))
Avatar
LSteph
Voilà mais ça me chagrine quand même!

Dim c As Range
For Each c In Selection.Cells
c.Formula = Replace(c.Formula, "AVERAGE", "STDEV")
Next

'lSteph
Hello
Je bute sur un truc qui m'agace...
Ecrivez en A4 = moyenne(A1:A3). Tirez cette formule vers la droite, en
B4 et C4.
Sélectionnez B4:C4
Lancez l'enregistreur de macro et faites un rechercher moyenne et
remplacer par ecartype en cochant de regarder dans les formules.

Ca marche très bien
Le code généré donne ça
Selection.Replace What:="moyenne", Replacement:="ecartype",
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:úlse,
SearchFormat:úlse, ReplaceFormat:úlse

Vous noterez qu'à aucun moment le code généré ne précise qu'il faut
regarder dans les formules...
Et si vous essayez de rejouer cette macro, elle trouve le mot moyenne
dans les valeurs mais jamais dans les formules.

Ma question : comment faire EN VBA un recherche /remplacer dans une
formule (pas dans les valeurs de la cellule ?)

Ma gratitude à celui qui trouve ;-)

Misange


Avatar
LSteph
..
oui certes mais ce que j'en disais 23:26:
on est qd même pas obligé de boucler sur les cellules de la plage
en cherchant dans .formula


pour l'instant j'ai guère mieux!

Tu dois utiliser Find.... FindNext -> exemple dans l'aide d'excel

ou ceci :

For Each cell In Range("A1:C1").Cells
cell.FormulaLocal = Replace(cell.FormulaLocal, "MOYENNE", "ECARTYPE")
Next




"Misange" a écrit dans le message de news:

Hello
Je bute sur un truc qui m'agace...
Ecrivez en A4 = moyenne(A1:A3). Tirez cette formule vers la droite, en
B4 et C4.
Sélectionnez B4:C4
Lancez l'enregistreur de macro et faites un rechercher moyenne et
remplacer par ecartype en cochant de regarder dans les formules.

Ca marche très bien
Le code généré donne ça
Selection.Replace What:="moyenne", Replacement:="ecartype",
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:úlse,
SearchFormat:úlse, ReplaceFormat:úlse

Vous noterez qu'à aucun moment le code généré ne précise qu'il faut
regarder dans les formules...
Et si vous essayez de rejouer cette macro, elle trouve le mot moyenne
dans les valeurs mais jamais dans les formules.

Ma question : comment faire EN VBA un recherche /remplacer dans une
formule (pas dans les valeurs de la cellule ?)

Ma gratitude à celui qui trouve ;-)

Misange




Avatar
Modeste
Bonsour® MichDenis avec ferveur ;o))) vous nous disiez :

Le paramètre LookIn:=xlformulas n'existe pas dans la méthode "Replace"
car il est le paramètre par défaut, le seul disponible.


;o))) c'est en effet ce que je viens de constater...

à force de bidouiller je n'avais pas réussi à faire le remplacement alors que
j'avais reussi dans le test précédent.(chercher)

cette méthode (token US) m'est revenu à l'esprit car j'avais été em.....dé à une
époque (XL95) pour traduire de français à espagnol.

@+
;o)))

1 2 3