Index et Equiv en VBA

Bonjour,

Après plusieurs recherches et plusieurs essais, je viens vers vous car je n'arrive pas a faire ce que je veux.

Quelqu'un serait me dire comment écrire cette formule Index et Equiv en VBA ?

=INDEX('Calcul'!A:D; EQUIV('Locataires'!L:L; 'Locataires'!L:L; 0); 4)

En vous remerciant.

Anthotho

Bonjour

L'idée est d'écrire la formule ou d'obtenir le résultat ?

Bonjour,

Cela te gêne pas ?

=EQUIV(@Locataires!L:L; Locataires!L:L; 0)

Cdlt.

Bonsoir,

Alors en fait, voici pourquoi je recherche à mettre cette formule en vba.

Dans mon fichier j'ai deux combobox et un textbox.

Ma combobox 2 et ma textbox3 sont remplies en fonction de ma combobox1.

J'ai deux bases de données,Feuil1 et Feuil2 et ma "Ref appartement" se trouve sur les deux bases de données.

J'aurais voulue faire un index et equiv pour afficher la valeur de mon loyer qui se trouve dans ma Feuil2 dans la textbox 3, en fonction des Ref appartement qui se trouve dans ma feuil1.

La macro que j'ai faites sur mon fichier, ne fonctionne pas bien.. si je sélectionne mon locataire "A" qui est dans l'appartement "AP04" la textbox affiche 100 alors qu'il devrait afficher 400.

Fichier en pièce jointe (Bidon car données confidentiels)

image

En espérant avoir réussi à expliquer ce que je veut faire ^^

Merci à vous

32combobox.xlsm (27.21 Ko)

Anthotho

Bonjour à tous,

Je dirais qu'il faut :

locataire = combobox1.value
if locataire <> "" then
    loyer = application.index(range("Tableau2[Loyer]"), application.match(locataire, range("Tableau2[Locataire]"), 0))
end if

Si vous rajoutez une colonne Loyer dans la feuil1...

Vous devriez renommer vos tableaux...

Cdlt,

Bonjour,

Renomme tes tableaux Locataires et Appartements et essaie ceci !?

Option Explicit

Dim tbl As Range, tbl2 As Range, n As Long

Private Sub UserForm_Initialize()
    Set tbl = Range("Locataires")
    Set tbl2 = Range("Appartements")
    Me.ComboBox1.List = tbl.Columns(1).Value
    Me.ComboBox2.List = tbl2.Columns(1).Value
End Sub

Private Sub ComboBox1_Change()
    If Me.ComboBox1.ListIndex = -1 Then Exit Sub
    n = Application.Match(Me.ComboBox1.Value, tbl.Columns(1), 0)
    Me.TextBox1 = Application.Index(tbl.Columns(3), n)
    Me.TextBox2 = Application.Index(tbl.Columns(4), n)
    Me.ComboBox2 = Application.Index(tbl.Columns(2), n)
End Sub

Private Sub ComboBox2_Change()
    If Me.ComboBox2.ListIndex = -1 Then Exit Sub
    n = Application.Match(Me.ComboBox2.Value, tbl2.Columns(1), 0)
    Me.TextBox3 = Application.Index(tbl2.Columns(2), n)
End Sub

Bonjour à tous,

Merci pour vos messages !

Jean-Eric, j'ai adapté ton code à mon fichier, c'est parfait !

Un grand merci pour votre aide

Anthotho

Rechercher des sujets similaires à "index equiv vba"