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

tzehani Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
tzehani Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

1 réponse

samouemouel Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   2
 
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   Statut Membre Dernière intervention  
 
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