formule vba

D

damien

Guest
bonjour

serait'il possible de transformer cette formule
=SI(E16=0;'';INDEX(liste!$A:$G;EQUIV(E16;liste!$A:$A;);EQUIV('nom';liste!$A1:$G1;)))

en visual basic.

merci
 

Domic

XLDnaute Nouveau
Bonsoir Damien, Le forum,

celà peux donner quelque chose comme celà :

Code:
Private Sub CommandButton1_Click()

With Worksheets('liste').Range('A1:G1')
    Set cherché = .Find(what:='nom', LookIn:=xlValues)
    colonne = cherché.Column
End With

With Worksheets('liste').Range('A1:A65535')
    Set cherché = .Find(what:=Worksheets('Feuil1').Range('E16'), LookIn:=xlValues)
    If cherché Is Nothing Then
        ActiveCell.Value = ''
        Exit Sub
    Else
    ligne = cherché.Row
    End If
End With

ActiveCell.Value = Worksheets('liste').Cells(ligne, colonne)

End Sub

Ce code te permet de mettre dans la cellule active de la feuil1 le résultat de la recherche.
[file name=formule_en_vba.zip size=10579]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/formule_en_vba.zip[/file]
 

Pièces jointes

  • formule_en_vba.zip
    10.3 KB · Affichages: 16

CBernardT

XLDnaute Barbatruc
Bonsoir Damien, Domic et le Forum,

J'ai concocté la macro suivante en considérant que la valeur trouvée dans le tableau est placée dans la cellule active :

Sub Valeur()
With Sheets('Feuil1')
If .Range('E16') = 0 Then ActiveCell = ''
ActiveCell = Application.Index(Sheets('LISTE').Range('A:G'), _
Application.Match(.Range('E16').Value, Sheets('LISTE').Range('A:A'), 0), _
Application.Match('Nom', Sheets('LISTE').Range('A1:G1'), 0))
End With
End Sub

Cordialement

Bernard

Message édité par: CBernardT, à: 18/12/2005 18:20
 

Statistiques des forums

Discussions
300 793
Messages
1 987 229
Membres
209 742
dernier inscrit
Ben33100