Mettre Formule excel en Vba [Résolu]

Signaler
Messages postés
49
Date d'inscription
dimanche 2 octobre 2005
Statut
Membre
Dernière intervention
1 septembre 2008
-
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
-
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

Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
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
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
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
Messages postés
49
Date d'inscription
dimanche 2 octobre 2005
Statut
Membre
Dernière intervention
1 septembre 2008

oui c'est crée l'équivalent en Vba
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
5
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