Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

plasmadav

XLDnaute Junior
Bonjour et tous mes voeux pour cette année 9ve.


Je viens vers vous afin que vous m'aidier sur un code vba, faire une recherchev Sous VBA.

Exercice :

normalement sous excel j'aurais taper cette formule

=RECHERCHEV($A2;[TEMPLATE_PAC.xls]Sheet1!$A$9:$T$232;2;0)

Comment puis je traduire cette formule en VBA?

sachant que je dois etendre cette formule vba sur tout le tableau (colonne B à K) et (ligne 2 a 1000)

Merci de votre aide (voir fichier joint)
 

Pièces jointes

Re : RechercheV en VBA

Bonjour,
j'ai aussi quelques "problèmes" en VBA, mais le premier truc à faire, est de démarrer l'enregistreur de macro, et de taper ta formule dans la 1 ère cellule " ad hoc", ensuite tu incrémentes d'une cellule et tu arrêtes l'enregistrement.
Tu vas dans le code , et tu changes la dernière adresse de l'incémentation par la dernière de ton tableau.

Par ex : Range("F22").Select ' cellule à copier
Selection.Copy ' Excel copie
Range("I24").Select ' 1ère cellule de destiantion
ActiveSheet.Paste ' collage
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("I24:I27"), Type:=xlFillDefault ' copie de I 24 à I27.
Si tu changes I 27 par I 250 , la macro copiera la cellule/formule jusqu'à I 250

@+
 
Re : RechercheV en VBA

bonjour plasmadav
Salut LPandre
A tester:

Code:
Range("B2").formulalocal="=RECHERCHEV($A2;[TEMPLATE_PAC.xls]Sheet1!$A$9:$T$232;2;0)"
Range("B2").AutoFill Destination:=Range("B2:K2"), Type:=xlFillDefault
Range("B2:K2").AutoFill Destination:=Range("B2:K1000"), Type:=xlFillDefault
 
Re : RechercheV en VBA

Merci Pierre Jean et Lpandre.

je craind vous avoir fait travailler pour rien car la solution de copie de formule appliqué sur toutes les cellule ne me convient pas.

Car pour la colonne B effectivement je vais chercher les résultats de la colonne 2
puis pour la colonne C je vais récuperer les résultats de la colonne 3 ainsi de suite.

pardon de m'etre mal exprimé dans ma demande...

Ceci etant j'ai un débogage sur les deux code que vous m'avez remis
 
Re : RechercheV en VBA

Faut juste recopié le code autant de fois qu'il y a de colonnes à récupérer et modifier le numéro de colonne dans la formule :

"=RECHERCHEV($A2;'C:\Fidélisation\2009\Pilotage des opérations\PAC\TEMPLATE_MISE_A_JOUR_PAC\[TEMPLATE_PAC.xls]template'!$A$9:$T$232;2;0)"

Remplacer 2 par 3, puis par 4 etc.

@+
 
Re : RechercheV en VBA

Re :
j'ai modifié le code, et ajouté des commentaires qui devraient te permetre de comprendre ce que fait la macro.
Reste à toi de finir pour les colonnes 4 à .... des données que tu souhaites rappatrier.

Reviens si ça patauge encore.
Par contre envoie le texte des messages de bug pour que l'on regarde ça.
reste que tes liaisons te sont propres et que ça limite / empêche les vérifs chez moi.@
 

Pièces jointes

Re : RechercheV en VBA

Re

Le deboguage est peut-etre du au fait que tu as une version anglaise (sheet1) !

Si oui ta formule doit etre traduite

pour les colonnes ceci devrait convenir

Code:
Range("B2").FormulaLocal = "=RECHERCHEV($A2;[TEMPLATE_PAC.xls]Sheet1!$A$9:$T$232;2;0)"
Range("B2").AutoFill Destination:=Range("B2:K2"), Type:=xlFillDefault
For n = 3 To 11
 Cells(2, n).FormulaLocal = Replace(Cells(2, n).FormulaLocal, ";2;", ";" & n & ";")
Next n
Range("B2:K2").AutoFill Destination:=Range("B2:K1000"), Type:=xlFillDefault
 
Re : RechercheV en VBA

Bonjour je forum,

j'ai un problème similaire, je voudrais copier une cellule d'une feuille dans une autre feuille, sachant que la feuille de destination n'est pas toujours la meme. En pièce jointe mon fichier, que certains reconnaitront 😉

- 1ère feuille : feuille type : qui est recopiée pour créer une nouvelle feuille, le nom de la nouvelle feuille est fonction de la cellule "I4"
- Chaque feuille de machine (ici : Machine 1, Machine 2, machine 3) sert à suivre les stocks et est remplie manuellement (mon fichier doit comporter une vingtaine de feuilles)
- La feuille "commande" sert a récupérer toutes les pièces qui sont à commander en appuyant sur le bouton "commande". Le bouton "passer la commande" sert a copier les cellules dans la feuille "Pièces commandées".
- Dans la feuille "Pièces commandées", est renseigné manuellement en colonne F la quantité de pièces commandées effectivement et le nouveau stock est donc calculé.

Ce que je désire, est que le nouveau stock ainsi calculé soit automatiquement ventilé dans la bonne feuille, en cliquant sur un bouton.

Voila, j'espère avoir été assez claire
Minipuce
 

Pièces jointes

Re : RechercheV en VBA

LPandre,

En fait je viens de voir que mon fichier a été affiché, donc il y a peut être des gens qui se penchent sur mon pb.
Si d'ici 2-3 jours je n'ai pas de réponse j'essayerai d'ouvrir un autre fil.
En tout cas merci de confirmer ce que je pensais
Bonne journée
Minipuce
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
548
Réponses
3
Affichages
493
Réponses
6
Affichages
830
Réponses
37
Affichages
3 K
Réponses
1
Affichages
885
Retour