[excel]équivalent formule en vba?

cs_Liro Messages postés 159 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 30 septembre 2011 - 26 juil. 2007 à 19:56
logan77 Messages postés 3 Date d'inscription dimanche 27 février 2005 Statut Membre Dernière intervention 18 novembre 2008 - 18 nov. 2008 à 20:40
Bonjour,

Je cherche à faire par macro l'équivalent de la formule recherchev (ou vlookup) sans mettre dans la cellule la formule.
Sur la base de mes faibles connaissances en vba je mettrai la formule puis copie/collage spécial valeur.
Y a-t-il plus simple ou plus élégant?

Merci
Liro

8 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
26 juil. 2007 à 20:15
Tu peux faire ta propre fonction.. Mais tout dépends de tes données, où se trouvent-elles ?
Quel est le lien avec d'autres données ? (car recherchev cherche la valeur dans une colonne, et donne la valeur d'une autre colonne de la même ligne)

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
0
cs_Liro Messages postés 159 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 30 septembre 2011
26 juil. 2007 à 21:36
En fait je vais chercher une désignation dans un autre fichier à partir d'une référence.
Habituellement je mets une formule du type recherchev dans toute la colonne mais là je voudrais que ce soit transparent pour l'utilisateur (pas de formule).
Je vais donc mettre une inputbox pour récupérer la réf de l'article puis je complèterai la désignation.

Liro
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
27 juil. 2007 à 00:52
Tu pourrais inscrire la formule dans toute la colonne à partir de VBA et la copier en valeur une fois que c'est fait. Si tu utilises Application.ScreenUpdating = False avant et le remets à True après, ça restera transparent pour l'utilisateur.

Autrement, tu devras utiliser Find pour trouver la valeur de départ, puis Offset pour trouver la valeur recherchée.

Si tu connais déjà la formule à inscrire, j'opterais pour la première option...

MPi
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
27 juil. 2007 à 20:32
Petite question : Pourquoi veux-tu que ça soit transparent pour ton utilisateur ? Une formule, c'est tellement plus simple.


Je ne vois que deux raisons :
 - Tu as peur que ton utilisateur fasse une bêtise et supprime ou modifie la formule
 - Tu pointes sur un fichier/onglet, et tu ne veux pas que l'utilisateur le voit, le sache
Dans les deux cas, il y a une solution toute simple, tu verrouilles la cellule et tu coche en plus la case "masquer"

A ton utilisateur, tu fournis un fichier dont la feuille est protégée (le mot de passe doit suffire, si ça te semble peu protégé avec, sache que ta macro ne le sera pas plus si ton utilisateur veut passer au travers).
Et là, dans tes cellules, impossible de supprimer la formule ou de la voir.

Molenn
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Liro Messages postés 159 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 30 septembre 2011
27 juil. 2007 à 23:22
Une formule sur quelques lignes ça va, mais une formule sur plusieurs centaines de lignes ça agrandit la taille du fichier. Deplus cette formule ne sert qu'une seule fois, quand la désignation a été associée à la référence la formule ne sert plus à rien.

Je vais donc mettre la formule dans la cellule puis copier et coller en valeur.
Merci pour votre aide!

Liro
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
27 juil. 2007 à 23:45
"

Une formule sur quelques lignes ça va, mais une formule sur plusieurs centaines de lignes"



avec une boucle, c'est vite fait (et pas plus de 10 lignes, je dirai)

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
0
cs_Liro Messages postés 159 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 30 septembre 2011
28 juil. 2007 à 11:29
J'ai oublié de préciser que je ne voulais pas modifier les valeurs sur les autres lignes et que si je mets la formule dans toute la colonne ça pourrait se produire!

Liro
0
logan77 Messages postés 3 Date d'inscription dimanche 27 février 2005 Statut Membre Dernière intervention 18 novembre 2008
18 nov. 2008 à 20:40
Bonjour,

Sauf erreur de ma part, la réponse à la question d'origine pour utiliser un vlookup :

varCalcul = application.worksheetfunction.vlookup(ici les arguments habituels)

Ne serait-ce pas aussi simple ?

A+ les batisseurs de rêve
0
Rejoignez-nous