Recherche verticale

Slt à tous,

J'essaye d'utiliser VBA Excel afin de développer un simple formulaire qui peut, à partir d'un ComboBox value, remplir 4 TextBox dans le formulaire, j'ai utilisé ce code pour le ComboBox :

Private Sub ComboBox1_Change()

Dim i As Long

i = Application.WorksheetFunction.CountA(Sheet1.Range("A:A"))

For a = 1 To 4

Me("Textbox" & a).Value = Application.WorksheetFunction.VLookup(Me.ComboBox1.Value, Sheet1.Range("A" & 2, "K" & i), a + 1, 0)

Next a

End Sub

Cela a marqué une erreur.

PS : Le tableau est de 11 Colonnes.

Salut Hajjej,

essaie comme ca:

Private Sub ComboBox1_Change()
Dim i As Long
i = Application.WorksheetFunction.CountA(Sheet1.Range("A:A"))
For a = 1 To 4
Me("Textbox" & a).Value = Application.WorksheetFunction.VLookup(Me.ComboBox1.Value, Sheet1.Range("A2:K" & i), a + 1, 0)
Next a
End Sub

Bonjour Hajjej,


Salut m3ellem1,

as-tu essayé en utilisant un Hajjej ? ou un Harry Potter ? non ? peut-être un Harrier, alors ?

le décollage vertical marche très bien, mais la recherche verticale laisse un peu à désirer !

http://blog.lefigaro.fr/londres/2010/12/le-dernier-vol-du-harrier.html

dhany

Salut Hajjej,

essaie comme ca:

Private Sub ComboBox1_Change()
Dim i As Long
i = Application.WorksheetFunction.CountA(Sheet1.Range("A:A"))
For a = 1 To 4
Me("Textbox" & a).Value = Application.WorksheetFunction.VLookup(Me.ComboBox1.Value, Sheet1.Range("A2:K" & i), a + 1, 0)
Next a
End Sub

Bonjour m3allem1,

Le problème persiste, après débogage l'erreur est dans la ligne :

i = Application.WorksheetFunction.CountA(Sheet1.Range("A:A"))

Bonsoir Hajjej, m3ellem1,

c'est très bien d'avoir indiqué la ligne où se produit l'erreur :

i = Application.WorksheetFunction.CountA(Sheet1.Range("A:A"))

si tu as un Excel français, tu devrais essayer :

i = Application.WorksheetFunction.CountA(Feuil1.Range("A:A"))

mais j'ai déjà vu un fichier où y'avait à la fois des feuilles Feuil1 et Sheet1.


note bien que ce qui précède est avec le .CodeName de la feuille, pas le .Name !

si tu veux référencer par le nom de feuille, tu dois écrire :

i = Application.WorksheetFunction.CountA(Worksheets("Feuil1").Range("A:A"))


et tu peux simplifier ainsi :

i = Application.WorksheetFunction.CountA(Worksheets("Feuil1").Columns("A"))

ou encore :

i = Application.WorksheetFunction.CountA(Worksheets("Feuil1").Columns(1))


petit complément :

ta variable a n'est pas déclarée ➯ avec Option Explicit, la compilation va bloquer !

met Option Explicit au début du module, tout en haut (1× seulement) ; et dans ta sub :

Dim i As Long, a As Byte ou Dim i&, a As Byte

dhany

Bonjour Hajjej,

j'ai vu que tu es passé hier ; si tu as lu mon post précédent, quel est ton avis ?


si ton sujet est résolu, merci de cliquer sur à droite de (coin haut droit du post)

ça permet aussi de clôturer le fil de la discussion (toi seul peut le faire, car c'est toi qui a créé ce sujet).

dhany

Bonjour,

C'est parfait,

Merci bien monsieur.

Rechercher des sujets similaires à "recherche verticale"