VBA Lien entre 2 feuilles excel

Fermé
tzehani Messages postés 11 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 31 octobre 2010 - 16 juil. 2007 à 14:25
m@rina Messages postés 20077 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 25 avril 2024 - 17 juil. 2007 à 12:22
Bonjour à tous
J'ai un problème et je n'arrive pas à trouver la solution

Voici mon problème

En fait j'ai une feuille1 excel qui contient une colonne A avec des projets et une colonne B avec des codes projets ( codes associés à chaque projets de manière unique)

J'ai une feuille2 excel qui contient une colonne A avec des projets et une colonne B avec des informations inutiles, Mon but est de remplacer la colonne B de la feuille2 par les codes de la feuille 1 ( bien sur les codes doivent être associés aux projets comme en feuille1)

Je travaille sur VBA 5

Merci beaucoup de votre aide
A voir également:

4 réponses

m@rina Messages postés 20077 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 25 avril 2024 11 272
16 juil. 2007 à 21:01
Bonsoir,

Le principe est le même que ce soit avec deux feuilles ou deux fichiers.
Dans ta formule, au lieu de mettre BASE, tu mettras nom_du_fichierxls!BASE

Cela va créer un lien vers le premier fichier. Si tu ne souhaites pas garder ce lien, c'est possible : tu sélectionnes ta colonne, tu la copies, et dans le menu Edition, collage Spécial, tu choisis "Coller les valeurs".

m@rina
2
m@rina Messages postés 20077 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 25 avril 2024 11 272
16 juil. 2007 à 17:59
Bonjour tzehani,

Si j'ai bien compris ton problème, la fonction RECHERCHEV devrait te convenir.

Nomme ton premier tableau (BASE par exemple)

En B2 de ta 2e feuille, mets la formule suivante :

=RECHERCHEV(A1;BASE;2;FAUX)

Tu positionnes ensuite le curseur à l'intersection en bas à droite de ta cellule B2 de façon à ce que le curseur prennent l'aspect d'un + noir, et tu double cliques pour remplir la colonne entière.

m@rina
1
tzehani Messages postés 11 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 31 octobre 2010
16 juil. 2007 à 20:19
merci infiniment pour ta réponse
mais au fait je me suis un peu trompé ce ne sont pas deux feuilles
mais deux fichiers excels indépendants

je peux pas les mettre dans le meme fichier dans deux feuilles differentes a cause des mises à jour et du fait qu un des deux fichiers est exporté sinon
ta fonction répond bien à ce que je souhaitais

pouvez vous m'indiquer comment faire la même chose mais sur deux fichiers différents un qui se nomme projetstatiques.xls et l'autre juillet07.xls et c le juillet07 que je veux changer


merci encore
0
m@rina Messages postés 20077 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 25 avril 2024 11 272
17 juil. 2007 à 12:22
Bonjour !

Quand je vois ta macro, je dis Houla !!!!

Range("B600" & m) : c'est quoi ça ?... "B600", je comprends mais le & m...

Par ailleur, si tu veux mettre une formule dans ta cellule, il lui dire que c'est une formule.
Ensuite, le VBA ne connaît que les formules en anglais (enfin, dans les versions récentes).

Il faut faire une boucle pour remplir chaque cellule de ta plage. Ce peut être quelque chose comme ça pour mettre la formule dans toutes les cellules de la plage B1:B600

Sub tzehani()
For Each c In Worksheets("monclasseur").Range("B1:B600").Cells
    c.FormulaR1C1 = "=VLOOKUP(RC[-2],employésstatiques.xls!base,2,FALSE)"
Next
End Sub


m@rina
1
tzehani Messages postés 11 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 31 octobre 2010
17 juil. 2007 à 10:11
Merci beaucoup de tes conseils je vois que ca marche très bien, mais avec vba j'ai encore des difficultés
j'ai déclaré mon fichier excel employésstatiques comme suit :

Dim employésstatiquesxls As Excel.Application

et dans Visual Basic de mon fichier que je veux changer, ca ne veut pas marcher, il n'accepte pas les points virgule comme séparateur, j'ai du mettre des virgules ;

For m = 2 To Nol
Range("B600" & m) = RECHERCHEV("A600" & m, employésstatiquesxls!BASE, 2, FAUX)
m = m + 1
Next

Mon message d'erreur est le suivant :
ERREUR DE COMPILATION :
Nombre d'arguments incorrects ou affectation de propriété incorrecte

il me surligne employésstatiques

je débute à peine en VB
Merci encore pour ton aide c'est très gentil
0