J'ai fais la formule (un peu lourde mais qui marche très bien) suivante :
=SI(ESTNA(RECHERCHEV(saisiepuissance1;tab_pertes24Sup;2;FAUX));"";SI(saisieN
ivIsol1<=24;SI(ET(saisiepuissance1=630;saisieucc1=6);INDEX(TABLEAUX!C4:C18;9
;1);RECHERCHEV(saisiepuissance1;tab_pertes24Sup;2;FAUX));SI(ET(saisiepuissan
ce1=630;saisieucc1=6);INDEX(TABLEAUX!G4:G18;9;1);RECHERCHEV(saisiepuissance1
;tab_pertes24Sup;6;FAUX))))
Lorsque je l'enregistre avec l'enregistreur de macro, j'obtiens
systematiquement une formule éronnée (pas toujours la même !) de ce genre :
Pourquoi ? Comment y remédier si cela est possible ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonsoir Dimi,
Si tu remplaces la ligne de code générée par l'enregistreur de macro par quelque chose ressemblant à ceci :
Dim A As String
A = Range("A1").Formula
La variable A devrait contenir le texte de la fonction écrite en A1. Non ?
P.S. Tu ne dois pas oublier que le nombre de caractères possibles dans une formule lorsqu'on l'a saisie directement dans une cellule est de 256. Si tu saisis ta formule dans la barre de formule, tu auras droit à 1024 caractères. La barrière du 256 caractères semble être le facteur qui limite l'enregistreur macro.
Salutations!
"Domi" a écrit dans le message de news:% Bonsoir à tous,
J'ai fais la formule (un peu lourde mais qui marche très bien) suivante : =SI(ESTNA(RECHERCHEV(saisiepuissance1;tab_pertes24Sup;2;FAUX));"";SI(saisieN ivIsol1<$;SI(ET(saisiepuissance1c0;saisieucc1=6);INDEX(TABLEAUX!C4:C18;9 ;1);RECHERCHEV(saisiepuissance1;tab_pertes24Sup;2;FAUX));SI(ET(saisiepuissan ce1c0;saisieucc1=6);INDEX(TABLEAUX!G4:G18;9;1);RECHERCHEV(saisiepuissance1 ;tab_pertes24Sup;6;FAUX))))
Lorsque je l'enregistre avec l'enregistreur de macro, j'obtiens systematiquement une formule éronnée (pas toujours la même !) de ce genre : Pourquoi ? Comment y remédier si cela est possible ?
Si tu remplaces la ligne de code générée par l'enregistreur de macro par quelque chose ressemblant à ceci :
Dim A As String
A = Range("A1").Formula
La variable A devrait contenir le texte de la fonction écrite en A1. Non ?
P.S. Tu ne dois pas oublier que le nombre de caractères possibles dans une formule lorsqu'on l'a saisie directement dans
une cellule est de 256. Si tu saisis ta formule dans la barre de formule, tu auras droit à 1024 caractères. La barrière
du 256 caractères semble être le facteur qui limite l'enregistreur macro.
Salutations!
"Domi" <scrat83@free.fr> a écrit dans le message de news:%23ZP3nPBoEHA.132@TK2MSFTNGP14.phx.gbl...
Bonsoir à tous,
J'ai fais la formule (un peu lourde mais qui marche très bien) suivante :
=SI(ESTNA(RECHERCHEV(saisiepuissance1;tab_pertes24Sup;2;FAUX));"";SI(saisieN
ivIsol1<$;SI(ET(saisiepuissance1c0;saisieucc1=6);INDEX(TABLEAUX!C4:C18;9
;1);RECHERCHEV(saisiepuissance1;tab_pertes24Sup;2;FAUX));SI(ET(saisiepuissan
ce1c0;saisieucc1=6);INDEX(TABLEAUX!G4:G18;9;1);RECHERCHEV(saisiepuissance1
;tab_pertes24Sup;6;FAUX))))
Lorsque je l'enregistre avec l'enregistreur de macro, j'obtiens
systematiquement une formule éronnée (pas toujours la même !) de ce genre :
Pourquoi ? Comment y remédier si cela est possible ?
Si tu remplaces la ligne de code générée par l'enregistreur de macro par quelque chose ressemblant à ceci :
Dim A As String
A = Range("A1").Formula
La variable A devrait contenir le texte de la fonction écrite en A1. Non ?
P.S. Tu ne dois pas oublier que le nombre de caractères possibles dans une formule lorsqu'on l'a saisie directement dans une cellule est de 256. Si tu saisis ta formule dans la barre de formule, tu auras droit à 1024 caractères. La barrière du 256 caractères semble être le facteur qui limite l'enregistreur macro.
Salutations!
"Domi" a écrit dans le message de news:% Bonsoir à tous,
J'ai fais la formule (un peu lourde mais qui marche très bien) suivante : =SI(ESTNA(RECHERCHEV(saisiepuissance1;tab_pertes24Sup;2;FAUX));"";SI(saisieN ivIsol1<$;SI(ET(saisiepuissance1c0;saisieucc1=6);INDEX(TABLEAUX!C4:C18;9 ;1);RECHERCHEV(saisiepuissance1;tab_pertes24Sup;2;FAUX));SI(ET(saisiepuissan ce1c0;saisieucc1=6);INDEX(TABLEAUX!G4:G18;9;1);RECHERCHEV(saisiepuissance1 ;tab_pertes24Sup;6;FAUX))))
Lorsque je l'enregistre avec l'enregistreur de macro, j'obtiens systematiquement une formule éronnée (pas toujours la même !) de ce genre : Pourquoi ? Comment y remédier si cela est possible ?
Et oui bien sûr, 256 caractères.... Je ne comprends pas bien l'idée de la variable... Mon objectif c'est de copier cette formule dans une plage via une macro quelque chose du genre : With Range..... .FormulaR1C1 = "ma grosse formule..." .Value = .Value End With Merci Domi
"michdenis" a écrit dans le message de news:
Bonsoir Dimi,
Si tu remplaces la ligne de code générée par l'enregistreur de macro par quelque chose ressemblant à ceci :
Dim A As String
A = Range("A1").Formula
La variable A devrait contenir le texte de la fonction écrite en A1. Non ?
P.S. Tu ne dois pas oublier que le nombre de caractères possibles dans une formule lorsqu'on l'a saisie directement dans
une cellule est de 256. Si tu saisis ta formule dans la barre de formule, tu auras droit à 1024 caractères. La barrière
du 256 caractères semble être le facteur qui limite l'enregistreur macro.
Salutations!
"Domi" a écrit dans le message de news:%
Bonsoir à tous,
J'ai fais la formule (un peu lourde mais qui marche très bien) suivante :
Et oui bien sûr, 256 caractères....
Je ne comprends pas bien l'idée de la variable...
Mon objectif c'est de copier cette formule dans une plage via une macro
quelque chose du genre :
With Range.....
.FormulaR1C1 = "ma grosse formule..."
.Value = .Value
End With
Merci
Domi
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:eiSOHqCoEHA.2612@TK2MSFTNGP15.phx.gbl...
Bonsoir Dimi,
Si tu remplaces la ligne de code générée par l'enregistreur de macro par
quelque chose ressemblant à ceci :
Dim A As String
A = Range("A1").Formula
La variable A devrait contenir le texte de la fonction écrite en A1. Non ?
P.S. Tu ne dois pas oublier que le nombre de caractères possibles dans une
formule lorsqu'on l'a saisie directement dans
une cellule est de 256. Si tu saisis ta formule dans la barre de formule,
tu auras droit à 1024 caractères. La barrière
du 256 caractères semble être le facteur qui limite l'enregistreur macro.
Salutations!
"Domi" <scrat83@free.fr> a écrit dans le message de
news:%23ZP3nPBoEHA.132@TK2MSFTNGP14.phx.gbl...
Bonsoir à tous,
J'ai fais la formule (un peu lourde mais qui marche très bien) suivante :
Et oui bien sûr, 256 caractères.... Je ne comprends pas bien l'idée de la variable... Mon objectif c'est de copier cette formule dans une plage via une macro quelque chose du genre : With Range..... .FormulaR1C1 = "ma grosse formule..." .Value = .Value End With Merci Domi
"michdenis" a écrit dans le message de news:
Bonsoir Dimi,
Si tu remplaces la ligne de code générée par l'enregistreur de macro par quelque chose ressemblant à ceci :
Dim A As String
A = Range("A1").Formula
La variable A devrait contenir le texte de la fonction écrite en A1. Non ?
P.S. Tu ne dois pas oublier que le nombre de caractères possibles dans une formule lorsqu'on l'a saisie directement dans
une cellule est de 256. Si tu saisis ta formule dans la barre de formule, tu auras droit à 1024 caractères. La barrière
du 256 caractères semble être le facteur qui limite l'enregistreur macro.
Salutations!
"Domi" a écrit dans le message de news:%
Bonsoir à tous,
J'ai fais la formule (un peu lourde mais qui marche très bien) suivante :
Si tu utilises la propriété "Formula" ou "formulalocal" de l'objet "Range", tu ne devrais pas rencontrer aucun problème tant et aussi longtemps que le texte de la formule ne dépasse pas 1024 caractères.
Salutations!
P.S. L'idée de la variable n'était là que pour illustrer le fait que tu pouvais très bien récupérer une formule très longue ( mois de 1024 caractères) inscrite dans une cellule d'une feuille de calcul en VBA ... la variable te permet de calculer la longueur de la chaîne de caractères de la formule en utilisant ceci :
Msgbox Len(a) pour faire référence à l'exemple de mon message précédent.
"Domi" a écrit dans le message de news: Et oui bien sûr, 256 caractères.... Je ne comprends pas bien l'idée de la variable... Mon objectif c'est de copier cette formule dans une plage via une macro quelque chose du genre : With Range..... .FormulaR1C1 = "ma grosse formule..." .Value = .Value End With Merci Domi
"michdenis" a écrit dans le message de news:
Bonsoir Dimi,
Si tu remplaces la ligne de code générée par l'enregistreur de macro par quelque chose ressemblant à ceci :
Dim A As String
A = Range("A1").Formula
La variable A devrait contenir le texte de la fonction écrite en A1. Non ?
P.S. Tu ne dois pas oublier que le nombre de caractères possibles dans une formule lorsqu'on l'a saisie directement dans
une cellule est de 256. Si tu saisis ta formule dans la barre de formule, tu auras droit à 1024 caractères. La barrière
du 256 caractères semble être le facteur qui limite l'enregistreur macro.
Salutations!
"Domi" a écrit dans le message de news:%
Bonsoir à tous,
J'ai fais la formule (un peu lourde mais qui marche très bien) suivante :
Si tu utilises la propriété "Formula" ou "formulalocal" de l'objet "Range", tu ne devrais pas rencontrer aucun problème
tant et aussi longtemps que le texte de la formule ne dépasse pas 1024 caractères.
Salutations!
P.S. L'idée de la variable n'était là que pour illustrer le fait que tu pouvais très bien récupérer une formule très
longue ( mois de 1024 caractères) inscrite dans une cellule d'une feuille de calcul en VBA ... la variable te permet de
calculer la longueur de la chaîne de caractères de la formule en utilisant ceci :
Msgbox Len(a) pour faire référence à l'exemple de mon message précédent.
"Domi" <scrat83@free.fr> a écrit dans le message de news:ejJkAfFoEHA.2300@TK2MSFTNGP10.phx.gbl...
Et oui bien sûr, 256 caractères....
Je ne comprends pas bien l'idée de la variable...
Mon objectif c'est de copier cette formule dans une plage via une macro
quelque chose du genre :
With Range.....
.FormulaR1C1 = "ma grosse formule..."
.Value = .Value
End With
Merci
Domi
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:eiSOHqCoEHA.2612@TK2MSFTNGP15.phx.gbl...
Bonsoir Dimi,
Si tu remplaces la ligne de code générée par l'enregistreur de macro par
quelque chose ressemblant à ceci :
Dim A As String
A = Range("A1").Formula
La variable A devrait contenir le texte de la fonction écrite en A1. Non ?
P.S. Tu ne dois pas oublier que le nombre de caractères possibles dans une
formule lorsqu'on l'a saisie directement dans
une cellule est de 256. Si tu saisis ta formule dans la barre de formule,
tu auras droit à 1024 caractères. La barrière
du 256 caractères semble être le facteur qui limite l'enregistreur macro.
Salutations!
"Domi" <scrat83@free.fr> a écrit dans le message de
news:%23ZP3nPBoEHA.132@TK2MSFTNGP14.phx.gbl...
Bonsoir à tous,
J'ai fais la formule (un peu lourde mais qui marche très bien) suivante :
Si tu utilises la propriété "Formula" ou "formulalocal" de l'objet "Range", tu ne devrais pas rencontrer aucun problème tant et aussi longtemps que le texte de la formule ne dépasse pas 1024 caractères.
Salutations!
P.S. L'idée de la variable n'était là que pour illustrer le fait que tu pouvais très bien récupérer une formule très longue ( mois de 1024 caractères) inscrite dans une cellule d'une feuille de calcul en VBA ... la variable te permet de calculer la longueur de la chaîne de caractères de la formule en utilisant ceci :
Msgbox Len(a) pour faire référence à l'exemple de mon message précédent.
"Domi" a écrit dans le message de news: Et oui bien sûr, 256 caractères.... Je ne comprends pas bien l'idée de la variable... Mon objectif c'est de copier cette formule dans une plage via une macro quelque chose du genre : With Range..... .FormulaR1C1 = "ma grosse formule..." .Value = .Value End With Merci Domi
"michdenis" a écrit dans le message de news:
Bonsoir Dimi,
Si tu remplaces la ligne de code générée par l'enregistreur de macro par quelque chose ressemblant à ceci :
Dim A As String
A = Range("A1").Formula
La variable A devrait contenir le texte de la fonction écrite en A1. Non ?
P.S. Tu ne dois pas oublier que le nombre de caractères possibles dans une formule lorsqu'on l'a saisie directement dans
une cellule est de 256. Si tu saisis ta formule dans la barre de formule, tu auras droit à 1024 caractères. La barrière
du 256 caractères semble être le facteur qui limite l'enregistreur macro.
Salutations!
"Domi" a écrit dans le message de news:%
Bonsoir à tous,
J'ai fais la formule (un peu lourde mais qui marche très bien) suivante :