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
Oui! voilà celui là il fonctionne bien et selon
le principe voulu, reste quand même que c'est agaçant que l'enregistreur
plante la dessus !

Bonne fin desoirée

lSteph

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 :

Aprés re-verification cela marche, mais il ne faut pas préciser xlformulas

Sub Macro2()
Range("A19:A21").Select
Selection.Replace What:="SUM", Replacement:="STDEV", LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse
End Sub




--
--
@+
;o)))
Avatar
LSteph
;o))
Re a...vec ferveur ;o)))
dis, cette fois c'est deux métros...!
MD a déjà traversé trois fois l'ocean.
Tu me diras on a pas encore revu Misange.

@+

lSteph

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

Aprés re-verification cela marche, mais il ne faut pas préciser xlformulas

Sub Macro2()
Range("A19:A21").Select
Selection.Replace What:="SUM", Replacement:="STDEV", LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse
End Sub




--
--
@+
;o)))




Avatar
Misange
ben voui ben voui...
average et pas moyenne

c'était vraiment mais alors vraiment devant mon nez sans que je le voie !
Ah la la ...
heureusement que vous zetiez là tous

merci merci :-)
Misange qui a vraiment cherché midi à 14h...

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® Misange avec ferveur ;o))) vous nous disiez :

Misange qui a vraiment cherché midi à 14h...


heu .... 22:54 !!!!
et l'otre qui me dit que j'ai loupé deux métros ...
:o)))

@+
;o)))

Avatar
lSteph
Et bien oui! Mon cheR... avec ferveuR
;o)))))

En fait tu en a loupé trois
Celui-ci était avant,

4. LSteph
Afficher le profil
..évidemment dans .formula ce sera AVERAGE ou STDEV et j'y suis pas
encore!

auquel tu ajoutes qu'il faut causer english

..après celui de MD atteri avant le mien mais qu'y ne s'y voyait pas
encore puis le suivant où
MD nous répète que Lookin n'y va pas (ce que je venais juste de faire
observer...
mais on s'est croisé
Là dessus avec ferveur ..vous nous disiez
Aprés re-verification cela marche, mais il ne faut pas préciser xlformu las


Pas grave ce fût ...un plaisiR

Bonne journée tout de même!
@+

;-)

--
L'otre (Stéphane)

Et celui-ci
et l'otre qui me dit que j'ai loupé deux métros ...
:o)))

@+
;o)))


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

..après celui de MD atteri avant le mien mais qu'y ne s'y voyait pas
encore puis le suivant
mais on s'est croisé
Pas grave ce fût ...un plaisiR


le coupable c'est PEBCAK(*)
;o)))
et http://cjoint.com/?lAkBGAQT4Z

regarder le PC, la télé, le forum, réfléchir, tester, penser à faire F5
tout ça un dimanche soir ...
pffffiouuu...

(*) Problem Exist Between Chair And Keyboard

@+
;o)))

Avatar
lSteph
:o))))
c'est ce que je dis toujours "in camembert" à ma collègue,
mais en fait
te bile pas , chez moi aussi,
il y a de nombreux soucis parfois entre la chair et le keyboard!

@bientôt

lSteph

On 26 nov, 10:35, "Modeste" wrote:
Bonsour(R) lSteph avec ferveur ;o))) vous nous disiez :

..après celui de MD atteri avant le mien mais qu'y ne s'y voyait pas
encore puis le suivant
mais on s'est croisé
Pas grave ce fût ...un plaisiR


le coupable c'est PEBCAK(*)
;o)))
ethttp://cjoint.com/?lAkBGAQT4Z

regarder le PC, la télé, le forum, réfléchir, tester, penser à f aire F5
tout ça un dimanche soir ...
pffffiouuu...

(*) Problem Exist Between Chair And Keyboard

@+
;o)))



Avatar
MichDenis
| 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.

Pourquoi cet effet de chose ?

Habituellement, le paramètre : "LookIn:=xlformulas ou xlValues" fait référence à
la propriété "Formula" ou "Value" de l'objet "Range" selon la constante retenue
pour définir le paramètre LookIn. Ce dernier indique à la fonction, s'il doit regarder dans
la chaîne de caractères que retourne l'une ou l'autre des propriétés "Value" ou "Formula".

Lorsque l'on a des data dans une cellule, la propriété "Value" ou "Formula" d'un objet
"Range" retourne exactement la même chaîne de caractère
x = Range("A1").Formula = Range("A1").Value
(j'exclus les cellules contenant des dates naturellement)


Si la cellule contient une formule,
Range("A1").Formula retourne la chaîne de caractère de la formule.
Il ne ferait aucun sens de vouloir remplacer le résultat en tout ou en partie de la formule
(c'est ce que retourne la propriété "Value") qu'affiche la cellule en voulant utiliser
la méthode "Replace". Conséquence, lorsqu'une cellule contient une formule,
le paramètre à appliquer doit être "xlformulas"

Conclusion : La constante XlFormulas couvre tous les cas de figure, que la cellule
contienne des data ou des formules... en conséquence pas besoin de donner le choix
à l'usager de le définir ce paramètre ...ce choix n'existe pas... d'où l'absence du
paramètre dans cette méthode.



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

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
Misange
pffft !
superbe démo, j'archive Denis
merci ;-)
Misange

| 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.

Pourquoi cet effet de chose ?

Habituellement, le paramètre : "LookIn:=xlformulas ou xlValues" fait référence à
la propriété "Formula" ou "Value" de l'objet "Range" selon la constante retenue
pour définir le paramètre LookIn. Ce dernier indique à la fonction, s'il doit regarder dans
la chaîne de caractères que retourne l'une ou l'autre des propriétés "Value" ou "Formula".

Lorsque l'on a des data dans une cellule, la propriété "Value" ou "Formula" d'un objet
"Range" retourne exactement la même chaîne de caractère
x = Range("A1").Formula = Range("A1").Value
(j'exclus les cellules contenant des dates naturellement)


Si la cellule contient une formule,
Range("A1").Formula retourne la chaîne de caractère de la formule.
Il ne ferait aucun sens de vouloir remplacer le résultat en tout ou en partie de la formule
(c'est ce que retourne la propriété "Value") qu'affiche la cellule en voulant utiliser
la méthode "Replace". Conséquence, lorsqu'une cellule contient une formule,
le paramètre à appliquer doit être "xlformulas"

Conclusion : La constante XlFormulas couvre tous les cas de figure, que la cellule
contienne des data ou des formules... en conséquence pas besoin de donner le choix
à l'usager de le définir ce paramètre ...ce choix n'existe pas... d'où l'absence du
paramètre dans cette méthode.



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

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)))







1 2 3