[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 -
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 :
voila le code pour remplir la colonne par l'equipe :
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
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:
- [VBA] Jointure de deux Bases de Données!SOS!!
- Fuite données maif - Guide
- Nombre de jours entre deux dates excel - Guide
- Supprimer les données de navigation - Guide
- Deux ecran pc - Guide
- Base de registre - Guide
1 réponse
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
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
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.