[VBA] Jointure de deux Bases de Données!SOS!!

Fermé
tzehani Messages postés 11 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 31 octobre 2010 - 3 août 2007 à 14:28
tzehani Messages postés 11 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 31 octobre 2010 - 7 août 2007 à 09:29
Bonjour à toute la communauté

Je suis en train de faire un travail en vba et j'ai un souci de programmation.

Mon problème est le suivant :
J'ai un fichier excel nommé BD.xls qui contient 2 bases de données :

- BaseProjets : une colonne A "Projet" et une colonne B " Client", à chaque projet on lui associe son client respectif.


- BaseEmployés : une colonne D "Employé" et une colonne E "Equipe", à chaque employé, on lui associe son équipe respective.



Maintenant j'ai un autre fichier excel, appellé Autre.xls qui contient une colonne projet, une autre employé, et une derniere que je veux remplir.

Problème : Je veux remplir cette colonne par les clients qui sont associés aux projets ( c'est bon je sais faire ) mais lorsque le projet n'existe pas dans ma base de donnée et uniquement dans ce cas je veux la remplir alors par l'equipe qui est associé à l'employé. ( car la base de donnée des employés est tjs à jour)

voila le code pour remplir la colonne par les clients :

 Range("H2:H" & i).Select
    ActiveCell.FormulaR1C1 = _
    "=VLOOKUP(RC[-1], BDxls!BaseProjets, 2, False)"
    Range("H2").Select
    Selection.AutoFill Destination:=Range("H2:H" & i), Type:=xlFillDefault
    Range("H2:H" & i).Select  



voila le code pour remplir la colonne par l'equipe :

 Range("H2:H" & i).Select
    ActiveCell.FormulaR1C1 = _
    "=VLOOKUP(RC[-2], BDxls!BaseEmployés, 2, FALSE)"
    Range("H2").Select
    Selection.AutoFill Destination:=Range("H2:H" & i), Type:=xlFillDefault
    Range("H2:H" & i).Select  




il faut que je jongle avec les deux codes pour que lorsque le premier ne marche pas pour un projet donné ( cad projet inexistant ), j'utilise le deuxième mais ensuite revenir au premier code.

PS : lorque le projet est inexistant, il s affiche sur la cellule "#N/A"

Merci infiniment de votre aide

1 réponse

samouemouel Messages postés 91 Date d'inscription jeudi 2 août 2007 Statut Membre Dernière intervention 9 septembre 2009 2
3 août 2007 à 14:43
Essaye en ajoutant des conditions à l'éxécution de tes procédures :
Exemple:
If "condition" then

Range("H2:H" & i).Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-1], BDxls!BaseProjets, 2, False)"
Range("H2").Select
Selection.AutoFill Destination:=Range("H2:H" & i), Type:=xlFillDefault
Range("H2:H" & i).Select

Else Range("H2:H" & i).Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-2], BDxls!BaseEmployés, 2, FALSE)"
Range("H2").Select
Selection.AutoFill Destination:=Range("H2:H" & i), Type:=xlFillDefault
Range("H2:H" & i).Select

End if
0
tzehani Messages postés 11 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 31 octobre 2010
7 août 2007 à 09:29
C'est une bonne idée je te remercie, cependant il me restera alors un dernier petit problème,
est ce qu' on peut faire une fonction d'existence, c'est à dire si mon projet existe dans la base de données alors faire .... sinon .... sachant que la valeur cherchée c'est à dire mon projet ne se situe pas dans le même fichier où se trouve la base de données.


Merci infiniment.
0