OVH Cloud OVH Cloud

VBA : Inx/Equiv dans un USerform...

6 réponses
Avatar
Domi
Bonjour à tous,

J'ai une feuille nommée : "Base", la colonne A contient des numéros, plage
nommée : "BaseAfNum"
Soit un userform avec 2 textbox (Textbox1 et Textbox2)
Dans le Textbox1, je saisie un n° (appartenant à BaseAfNum)
Quelle syntaxe utiliser pour afficher dans le TextBox2 la valeur figurant
dans la colonne X pour le n° qui figure ddans le TextBox1 ? (ce que je sais
faire habituellment avec Index/equiv dans une feuille...)
Quelque chose dans ce genre... mais qui marche !
'TextBox2.Value = Index(Range("X11:X1000"), Match(TextBox1.Value,
Range("BaseAfNum"), 0))

Merci
Domi

6 réponses

Avatar
Clém
Bonjour Domi,
si la matrice va aussi de 11 à 1000
peut-être:

Textbox2=Range("X11:X1000").cells(Textbox1)


"Domi" a écrit dans le message de news:
%
Bonjour à tous,

J'ai une feuille nommée : "Base", la colonne A contient des numéros, plage
nommée : "BaseAfNum"
Soit un userform avec 2 textbox (Textbox1 et Textbox2)
Dans le Textbox1, je saisie un n° (appartenant à BaseAfNum)
Quelle syntaxe utiliser pour afficher dans le TextBox2 la valeur figurant
dans la colonne X pour le n° qui figure ddans le TextBox1 ? (ce que je
sais
faire habituellment avec Index/equiv dans une feuille...)
Quelque chose dans ce genre... mais qui marche !
'TextBox2.Value = Index(Range("X11:X1000"), Match(TextBox1.Value,
Range("BaseAfNum"), 0))

Merci
Domi





Avatar
Domi
Hélas ça ne marche pas, j'ai fait cela pour tester :

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1.Value = "Ref Base 932"
TextBox2 = Range("X11:X1010").Cells(TextBox1)
End Sub

Je veux recuperer dans Textbox2 la valeur qui figure dans la colonne X de la
feuille Base sur la ligne de Ref Base 932".

où "Ref Base 932" est un element de la plage BaseAfNum sur la feuille Base
(plage A11:A1010)
Dans ta proposition, comment le code sait-il sur quelle feuille aller
chercher "Ref Base 932" .
J'ai esayé TextBox2 = Worksheets("Base").Range("X11:X1010").Cells(TextBox1),
ça n'est pas mieux !
J'ai une erreur 13 : Incompatibilité de type...dans tous les cas

Merci
Domi





"Clém" a écrit dans le message de
news:4246b2c2$0$28311$
Bonjour Domi,
si la matrice va aussi de 11 à 1000
peut-être:

Textbox2=Range("X11:X1000").cells(Textbox1)


"Domi" a écrit dans le message de news:
%
Bonjour à tous,

J'ai une feuille nommée : "Base", la colonne A contient des numéros,
plage


nommée : "BaseAfNum"
Soit un userform avec 2 textbox (Textbox1 et Textbox2)
Dans le Textbox1, je saisie un n° (appartenant à BaseAfNum)
Quelle syntaxe utiliser pour afficher dans le TextBox2 la valeur
figurant


dans la colonne X pour le n° qui figure ddans le TextBox1 ? (ce que je
sais
faire habituellment avec Index/equiv dans une feuille...)
Quelque chose dans ce genre... mais qui marche !
'TextBox2.Value = Index(Range("X11:X1000"), Match(TextBox1.Value,
Range("BaseAfNum"), 0))

Merci
Domi









Avatar
LSteph
Bonsoir,
essaye depuis une autre feuille du classeur de nommer ta plage par exemple
maRef
et si textbox1 renvoie bien un nombre entier correspondant à la position de
la cellule dans RefBase932

TextBox2 = Range("maRef").Cells(TextBox1)

'lSteph

"Domi" a écrit dans le message de news:
u%
Hélas ça ne marche pas, j'ai fait cela pour tester :

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1.Value = "Ref Base 932"
TextBox2 = Range("X11:X1010").Cells(TextBox1)
End Sub

Je veux recuperer dans Textbox2 la valeur qui figure dans la colonne X de
la
feuille Base sur la ligne de Ref Base 932".

où "Ref Base 932" est un element de la plage BaseAfNum sur la feuille Base
(plage A11:A1010)
Dans ta proposition, comment le code sait-il sur quelle feuille aller
chercher "Ref Base 932" .
J'ai esayé TextBox2 =
Worksheets("Base").Range("X11:X1010").Cells(TextBox1),
ça n'est pas mieux !
J'ai une erreur 13 : Incompatibilité de type...dans tous les cas

Merci
Domi





"Clém" a écrit dans le message de
news:4246b2c2$0$28311$
Bonjour Domi,
si la matrice va aussi de 11 à 1000
peut-être:

Textbox2=Range("X11:X1000").cells(Textbox1)


"Domi" a écrit dans le message de news:
%
Bonjour à tous,

J'ai une feuille nommée : "Base", la colonne A contient des numéros,
plage


nommée : "BaseAfNum"
Soit un userform avec 2 textbox (Textbox1 et Textbox2)
Dans le Textbox1, je saisie un n° (appartenant à BaseAfNum)
Quelle syntaxe utiliser pour afficher dans le TextBox2 la valeur
figurant


dans la colonne X pour le n° qui figure ddans le TextBox1 ? (ce que je
sais
faire habituellment avec Index/equiv dans une feuille...)
Quelque chose dans ce genre... mais qui marche !
'TextBox2.Value = Index(Range("X11:X1000"), Match(TextBox1.Value,
Range("BaseAfNum"), 0))

Merci
Domi













Avatar
Alain CROS
Bonjour.

Nommer par exemple PlgX11X1000 la plage X11:X1000

TextBox2 = Evaluate("INDEX(PlgX11X1000,MATCH(" & TextBox1 & ",BaseAfNum,0),1)")

Alain CROS

"Domi" a écrit dans le message de news: #
Bonjour à tous,

J'ai une feuille nommée : "Base", la colonne A contient des numéros, plage
nommée : "BaseAfNum"
Soit un userform avec 2 textbox (Textbox1 et Textbox2)
Dans le Textbox1, je saisie un n° (appartenant à BaseAfNum)
Quelle syntaxe utiliser pour afficher dans le TextBox2 la valeur figurant
dans la colonne X pour le n° qui figure ddans le TextBox1 ? (ce que je sais
faire habituellment avec Index/equiv dans une feuille...)
Quelque chose dans ce genre... mais qui marche !
'TextBox2.Value = Index(Range("X11:X1000"), Match(TextBox1.Value,
Range("BaseAfNum"), 0))

Merci
Domi





Avatar
JpPradier
Bonsoir Domi

Un coup d'Evaluate() :

TextBox2.Value = Evaluate("Index(X11:X1000,Match(""" & TextBox1.Value & """,BaseAfNum,0))")

j-p
Avatar
Domi
Ouf !
cette dernière solution marche ;o)
Merci à tous.
Domi

"JpPradier" a écrit dans le message
de news:
Bonsoir Domi

Un coup d'Evaluate() :

TextBox2.Value = Evaluate("Index(X11:X1000,Match(""" & TextBox1.Value &
""",BaseAfNum,0))")


j-p