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 ?)
Si tu veux... mais les fautes d'orthographe en moins ;-))
| "Misange" a écrit dans le message de news: %23SFRY% | 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 !
Si tu veux... mais les fautes d'orthographe en moins
;-))
| "Misange" <misange@devinez-ou.net> a écrit dans le message de news:
%23SFRY%23GMIHA.4196@TK2MSFTNGP04.phx.gbl...
| 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" <michdenis@hotmail.com> a écrit dans le message de news:
uRPtdh7LIHA.4684@TK2MSFTNGP06.phx.gbl...
Si tu veux utiliser ce que tu présentes, fait comme ceci .. ça devrait aller !
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" <nomail@nomail.net> a écrit dans le message de news:
OP7Jva7LIHA.4684@TK2MSFTNGP06.phx.gbl...
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
Si tu veux... mais les fautes d'orthographe en moins ;-))
| "Misange" a écrit dans le message de news: %23SFRY% | 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 !
Si tu veux... mais les fautes d'orthographe en moins ;-))
| "Misange" a écrit dans le message de news: %23SFRY% | 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 !
Si tu veux... mais les fautes d'orthographe en moins
;-))
| "Misange" <misange@devinez-ou.net> a écrit dans le message de news:
%23SFRY%23GMIHA.4196@TK2MSFTNGP04.phx.gbl...
| 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" <michdenis@hotmail.com> a écrit dans le message de news:
uRPtdh7LIHA.4684@TK2MSFTNGP06.phx.gbl...
Si tu veux utiliser ce que tu présentes, fait comme ceci .. ça devrait aller !
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" <nomail@nomail.net> a écrit dans le message de news:
OP7Jva7LIHA.4684@TK2MSFTNGP06.phx.gbl...
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
Si tu veux... mais les fautes d'orthographe en moins ;-))
| "Misange" a écrit dans le message de news: %23SFRY% | 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 !