|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() ingenieur systemes embarqués Inscription : novembre 2011 Messages : 15 ![]() |
bonjour,
Je suis débutante en VBA et c'est la première foi que je fais des liaisons entre fichier excel J'ai 2 fichiers Excel leurs 2eme feuille est un tableau de 2 colonnes et plusieurs lignes je cherche a mettre à jour le tableau du fichier1 quand je modifie le tableau du fichier2, les 2 fichiers sont enregistrés sur serveur J'ai commencé par faire un lien, sauf que ca modifie pas si j’insert une ligne entre 2 lignes existantes En plus il a suffi que je perds la communication avec le serveur que les liaisons fonctionnent plus !!! Je ne comprends pas pourquoi j'ai du les effacé puis les refaire quand je me suis reconnecté sur le serveur j'ai pensé à faire une macro (je crois que c'est plus fiable)est ce une bonne idée si oui comment faire merci |
|
|
00
|
|
|
#2 | |
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Bonjour,
Quand tu dis "tableau", tu te réfères à une plage de cellules ou à un tableau au sens XL2010 du terme (Insertion, Tableau) ?
__________________
Cordialement. Daniel Citation:
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() ingenieur systemes embarqués Inscription : novembre 2011 Messages : 15 ![]() |
Bonjour
Je parle de 2 colonnes et plusieurs ligne (nombre non défini) elle évolue l'idée est d'évoluer le 2eme fichier de la même façon (si on insert une ligne dans le 1er fichier il doit l'insérer dans le 2eme si on ajout une ligne dans le 1er fichier il faut qu'il ajoute dans le 2eme fichier ...) Il faut qu'on est a tout temps la même chose Je précise que c'est 2 colonnes c'est tout ce que j'ai dans cette feuille (c’est comme un dico des codes et leurs significations) |
|
|
00
|
|
|
#4 | |||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Bonjour,
En supposant que le fichier où l'on répercute les modifs soit "c:\temp\Fichier1.xls"; les tableaux sont tous les deux sur Feuil1 en colonne A:B commençant en cellule A1. Mets la macro suivante dans le module de Feuil1 du classeur où tu fais les modifs (Fichier2.xls) : Code :
__________________
Cordialement. Daniel Citation:
|
|||
|
00
|
|
|
#5 | ||
|
Invité de passage
![]() ingenieur systemes embarqués Inscription : novembre 2011 Messages : 15 ![]() |
j'ai un probleme !!!
l'erreur est : Erreur d'exécution 424 : Objet requis !!! j'ai fait peu de modif dans le code Code :
|
||
|
|
00
|
|
|
#6 | |||
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Je n'ai pas modifié le classeur "RAF_Gabarits.xlsx"; j'ai enregistré "RAF_template_macro.xlsx" au format XL2003 ("RAF_template_macro.xls"), la format xlsm n'étant pas admis comme type de pièce jointe. J'ai modifié le code en fonction de la disposition de tes données et j'ai mis la macro dans le module de Feuil2 :
Code :
__________________
Cordialement. Daniel Citation:
|
|||
|
00
|
|
|
#7 |
|
Invité de passage
![]() ingenieur systemes embarqués Inscription : novembre 2011 Messages : 15 ![]() |
j'ai repris ton fichier j'ai copier puis collé ton code mais j'ai toujour la meme erreur sur la ligne
Code :
If Intersect(Target, Intersect([C4].CurrentRegion, [C:D])) Is Nothing Then |
|
|
00
|
|
|
#8 | |
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Le code était DEJA dans le fichier que je t'ai retourné. Teste-le sans rien modifier.
__________________
Cordialement. Daniel Citation:
|
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Ce que Daniel a fait c'est qu'il a mis le code dans l'évènement Worksheet_Change de la feuille en question. Du coup, il va s'exécuter dès que tu vas changer une valeur dans la feuille
Ça ne marchera pas si tu essaies de lancer la macro directement car Target représente la cellule qui a été modifiée. Tu aurais d'ailleurs eu un problème de compilation si tu avais mis Option Explicit en haut du module.
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell |
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() ingenieur systemes embarqués Inscription : novembre 2011 Messages : 15 ![]() |
effectivement
ca marche mais j'ai un probleme: il mouvre le 2eme fichier ( et il faut pas dans mon cas) c'est possible |
|
|
00
|
|
|
#11 | |
|
Expert Confirmé Sénior
![]() Daniel aucune Inscription : septembre 2011 Messages : 2 004 ![]() |
Non, les deux fichiers doivent être ouverts. La macro ouvre le classeur cible uniquement si celui-ci est fermé.
__________________
Cordialement. Daniel Citation:
|
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Après rien ne t'empêche de le fermer à la fin de la macro. Tu vas juste avoir un problème de performance car il devra ouvrir-fermer un fichier du réseau à chaque fois que tu feras une modification.
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com