Mettre Formule excel en Vba

Résolu
lispo Messages postés 49 Date d'inscription dimanche 2 octobre 2005 Statut Membre Dernière intervention 1 septembre 2008 - 4 févr. 2007 à 11:09
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 - 5 févr. 2007 à 11:13
Bonjour,
je desire mettre une formule excel en Vba
ex:
Private sub Button_Click()
dim  nom as string

ma formule excel  = OFFSET(C1;MATCH(G19;C2:C20;0);1))

nom = ...
 end sub
merci d'avance

4 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
4 févr. 2007 à 21:46
L'équivalent n'existe pas vraiment sous VBA
Ta formule contient 2 choses:
1- recherche d'une valeur de la colonne G, soit G19, dans la colonne C
2- afficher la cellule voisine en D

Voici comment je procéderais
    Dim Recherche As Range
    Dim Nom
   
    ' équivalent à Match
    ' recherche la valeur en G19 dans la colonne C
    Set Recherche = Columns("C:C").Find(Range("G19"))
            ' ou Set Recherche = Range("C2:C20").Find(Range("G19"))

    If Not Recherche Is Nothing Then
        ' équivalent à Offset Excel
        Nom = Range(Recherche.Address).Offset(0, 1)  'valeur en D
        MsgBox Nom
    End If

MPi
3
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
4 févr. 2007 à 15:07
Peux-tu être plus clair ?

Où veux-tu mettre cette formule ?
    dans une cellule ? laquelle ?
    dans une plage de cellules ?  lesquelles ?
    l'utiliser dans ton code VBA ? donc créer l'équivalent ?

MPi
0
lispo Messages postés 49 Date d'inscription dimanche 2 octobre 2005 Statut Membre Dernière intervention 1 septembre 2008
4 févr. 2007 à 20:12
oui c'est crée l'équivalent en Vba
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
5 févr. 2007 à 11:13
Si je ne me trompe pas, tu peux utiliser la formule Equiv directement en VBA, en utilisant :
Worksheetfunction.match

Par contre, la formule Decaler ( ou Offset) n'existe pas, tu es donc obligé de la créer toi-même, mais ce n'est pas très compliqué.

Molenn
0
Rejoignez-nous