OVH Cloud OVH Cloud

Syntaxe VBA

21 réponses
Avatar
Patrick BASTARD
Bonsoir, toutes et tous.


Dim ColR As Byte
ColR = Cells(2, 11)

K2 =EQUIV(K1;$L1:$IV1;0)+COLONNE($L1)-1

Comment dois-je formuler :
ColR=EQUIV(K1;$L1:$IV1;0)+COLONNE($L1)-1

D'avance, Merci.
;-)

--
Bien amicordialement,
P. Bastard

10 réponses

1 2 3
Avatar
JpPradier
Bonsoir Patrick

Si j'ai compris :

ColR = Cells(2, 11).FormulaLocal

j-p
Avatar
Patrick BASTARD
Bonjour, *JpPradier*

Je me suis mal expliqué :
Je souhaite supprimer la cellule K2, qui contient la formule indiquée,
et que ma variable prenne la valeur que renvoyait cette formule.

--
Bien amicordialement,
P. Bastard


Bonsoir Patrick

Si j'ai compris :

ColR = Cells(2, 11).FormulaLocal

j-p


Avatar
JpPradier
C'est pas tres clair :

ColRÎlls(2,11).value
Cells(2,11).ClearContents

??

j-p
Avatar
Modeste
Bonsour® Patrick BASTARD avec ferveur ;o))) vous nous disiez :

Comment dois-je formuler :
ColR=EQUIV(K1;$L1:$IV1;0)+COLONNE($L1)-1


à mon avis (pas essayé) cela devrait ressembler à quelque chose d'approchant
:

evaluate("=MATCH(K1,$L1:$IV1,0)+COLUMN($L1)-1")

AV me démentira ???


--
;o)))
@+

Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI

n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr

Avatar
Patrick BASTARD
Bonsoir, *JpPradier*

C'est pas tres clair :


Je vais tenter d'éclaircir.

La cellule K2 contient une formule *=EQUIV(K1;$L1:$IV1;0)+COLONNE($L1)-1*
Cette formule i renvoie une valeur que j'affecte à la variable ColR
Je souhaite me passer de K2, et affecter directement à la variable la valeur
que renvoie cette formule.

Une affectation de valeur du genre :
ColR=EQUIV(K1;$L1:$IV1;0)+COLONNE($L1)-1
en lieu et place de :
ColR = Cells(2, 11)

Ce qui me permettra d'éviter de passer par une formule dans K2 (qui n'aura
alors plus lieu d'être).

J'ai essayé ColR = FormulaR1C1 =
"=MATCH(R[-1]C,R[-1]C12:R[-1]C256,0)+COLUMN(R[-1]C12)-1"
qui ne fonctionne pas.

Ce qui se conçoit bien s'énonce clairement, parait-il, mais ...Napoléon
n'utilisait pas VBA...
;-)

--
Bien amicordialement,
P. Bastard



ColRÎlls(2,11).value
Cells(2,11).ClearContents

??

j-p


Avatar
JpPradier
Ok J'ai pigé ;-)))
Je suis parfois long à la détente aussi ;-)))

ColR=[Match(K1;$L1:$IV1;0)]+11

Colonne($L1) donne toujours 12
et 12-1

;-))

j-p
Avatar
Patrick BASTARD
Bonsoir, *JpP*

Décidément,
ColR = [Match(K1;$L1:$IV1;0)] + 11

m'insulte et renvoie une "Erreur 13 incompatibilité de type".
:-(


--
Bien amicordialement,
P. Bastard

Ok J'ai pigé ;-)))
Je suis parfois long à la détente aussi ;-)))

ColR=[Match(K1;$L1:$IV1;0)]+11

Colonne($L1) donne toujours 12
et 12-1

;-))

j-p


Avatar
Patrick BASTARD
Bonsoir, *Modeste*

Décidément,
ColR = Evaluate("=MATCH(K1,$L1:$IV1,0)+COLUMN($L1)-1")

m'insulte et renvoie une "Erreur 13 incompatibilité de type".
:-(


--
Bien amicordialement,
P. Bastard

Bonsour® Patrick BASTARD avec ferveur ;o))) vous nous disiez :

Comment dois-je formuler :
ColR=EQUIV(K1;$L1:$IV1;0)+COLONNE($L1)-1


à mon avis (pas essayé) cela devrait ressembler à quelque chose
d'approchant



evaluate("=MATCH(K1,$L1:$IV1,0)+COLUMN($L1)-1")

AV me démentira ???



Avatar
JpPradier
Oui, moi aussi. J'ai voulu faire le malin avec le Evaluate rapide et nada :-(
En version normale mais qui fonctionne :

ColR = WorksheetFunction.Match(Range("K1").Value, Range("$L1:$IV1").Value, 0)+11

j-p
Avatar
Fredo P.
ColR = [Match(K1,L1:IV1,0)] + 11
une virgule c'est mieux
m'insulte et renvoie une "Erreur 13 incompatibilité de type".


1 2 3