RechercheV en VBA

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

  • TEMPLATE_PAC.zip
    3.3 KB · Affichages: 26
  • PAC_T1.zip
    37.3 KB · Affichages: 26

LPandre

XLDnaute Impliqué
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

@+
 

pierrejean

XLDnaute Barbatruc
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
 

LPandre

XLDnaute Impliqué
Re : RechercheV en VBA

Re :
(Salut Pierre Jean :) )

inutile après le boulot de Pierre Jean , mais comme j'ai bossé dessus... ( mais j'ai pas vérifié car les liasons ne sont pas les mêmes sur mon poste) :


@+
 

Pièces jointes

  • PAC_T1LP.zip
    32.6 KB · Affichages: 27

plasmadav

XLDnaute Junior
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
 

LPandre

XLDnaute Impliqué
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.

@+
 

LPandre

XLDnaute Impliqué
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

  • PAC_T1LP2.zip
    33.3 KB · Affichages: 34

pierrejean

XLDnaute Barbatruc
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
 

minipuce

XLDnaute Occasionnel
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

  • ventilation de données.zip
    30 KB · Affichages: 30
  • ventilation de données.zip
    30 KB · Affichages: 29
  • ventilation de données.zip
    30 KB · Affichages: 30

minipuce

XLDnaute Occasionnel
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
 

Discussions similaires

Réponses
3
Affichages
324
Réponses
3
Affichages
253
Réponses
6
Affichages
571

Statistiques des forums

Discussions
312 836
Messages
2 092 655
Membres
105 479
dernier inscrit
chaussadas.renaud