range.replace

Le
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:ú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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
LSteph
Le #5393501
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


MichDenis
Le #5393481
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"
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
LSteph
Le #5393471
..é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


Modeste
Le #5393451
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)))

LSteph
Le #5393421
;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)))





MichDenis
Le #5393411
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"
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)))

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

--
@+
;o)))
LSteph
Le #5393381
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


LSteph
Le #5393371
..
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"
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




Modeste
Le #5393361
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)))

Publicité
Poster une réponse
Anonyme