Mettre Formule excel en Vba [Résolu]

Messages postés
49
Date d'inscription
dimanche 2 octobre 2005
Dernière intervention
1 septembre 2008
- - Dernière réponse : Molenn
Messages postés
797
Date d'inscription
mardi 7 juin 2005
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
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
16
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
16
0
Merci
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
Commenter la réponse de cs_MPi
Messages postés
49
Date d'inscription
dimanche 2 octobre 2005
Dernière intervention
1 septembre 2008
0
Merci
oui c'est crée l'équivalent en Vba
Commenter la réponse de lispo
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Dernière intervention
23 février 2011
5
0
Merci
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
Commenter la réponse de Molenn

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.