|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Philippe infographie Inscription : décembre 2011 Messages : 5 ![]() |
Bonjour à tous,
j'ai un souci avec des liaisons entre plusieurs classeurs, voici la problématique : Donc je pars d'un classeur excel source. Pour l'instant je travaille sur le format xls, mais je vais l'enregistrer comme modèle car c'est un document type pour la saisie des données. D'ailleurs je me pose la question du format à utiliser pour l'enregistrement du modèle avec les macros ? votre avis sur ce point svp ? un fichier source (classeur A) comporte 3 feuilles : - 1 feuille pour la saisie des informations (il s'agit de sessions de formations pour une assoc, donc 1 tableau avec 1 ligne par adhérent (nom, prenom, age, sexe...) Plusieurs formules sur la feuille, permettant de "batonner" des cellules en fonction de combinaison de critères (ex : si X a plus de 21 ans et a le bac, alors il est dans la catégorie A sinon la B) 1 feuille de synthèse, dont certaines cellules affichent les valeurs cumulées pour l'ensemble des inscrits sur la feuille A, et d'autres cellules affichent des données statistiques en pourcentage issue des la feuille "saisie". 1 feuille pour l'export (le coeur du probleme). Cette feuille reprend sur une ligne unique les données de la feuille synthèse, ligne qui ordonne les données dans l'ordre du tableau destination qui sera dans la classeur AAA. J'ai une macro qui exporte (copier, collage spécial tout avec liaison) cette ligne dans le classeur AAA, donc 1 ligne par classeur source. Voici le code de la macro : Code :
J'enregistre la classeur A sous le nom classeur B, je modifie les valeurs, j'exporte vers classeur AAA. et dans mon classeur AAA j'ai bien les 2 lignes exportées, mais toutes les 2 présentent les valeurs du classeur B. et ma liaison a été renommée classeur B, la liaison vers le classeur A a disparu de la liste des liaisons. alors que je souhaitais que l'enregistrement du classeur B entraine la création d'une nouvelle liaison, en plus de l'existante dans le classeur AAA. C'est pour ce motif que je pensais que partir d'un modèle pouvait éventuellement résoudre le pb, mais ca me semble trop simple. J'espère que j'ai réussi a vous expliquer clairement le probleme. Votre avis ? merci par avance pour vos conseils... Philippe |
||
|
|
00
|
|
|
#2 |
|
Invité de passage
![]() Philippe infographie Inscription : décembre 2011 Messages : 5 ![]() |
Il me semble avoir finalement trouvé la solution à ce problème qui n'en était apparemment pas un. L'enregistrement du document source au format xlt (modele), puis la création de fichiers source a partir de ce modele génère les liaisons correspondantes.
J'ai fait plusieurs essais concluants, mais j'aimerais connaitre votre point de vue sur cette méthode. est elle 100% fiable, et est on limité en nombre de liaisons sur un classeur xls ? |
|
|
00
|
|
|
#3 | ||
![]() ![]() Alain GerardConsultant informatique Inscription : mai 2005 Messages : 3 675 ![]() |
Bonjour,
Ce qui n'est absolument pas fiable ce sont les Select, Activate et autres ActiveWorkbook. Un petit exemple de ce que pourrait être ton code sans selections: Code :
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres! Pensez aussi à voter pour les réponses qui vous ont aidés. ------------ Je dois beaucoup de mes connaissances à mes erreurs! |
||
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Philippe infographie Inscription : décembre 2011 Messages : 5 ![]() |
Bonsoir Alain,
merci pour cette proposition de code. Je débute en VBA alors ça ne m'étonne pas que je commette des erreurs de débutant ! J'aurais juste 2 questions : pourquoi les Select, Activate et autres ActiveWorkbook ne sont ils pas fiables ? Concernant ton code, cette partie m'interpelle : En effet la macro tourne sur un classeur modele xlt. Donc ensuite le fichier aura beaucoup de noms différents xls... Donc impossible de préciser ici un nom de fichier... Comment puis-je procéder ? Encore merci pour ton code et l'intérêt porté à ce post. Cordialement, Philippe |
|
|
00
|
|
|
#5 |
![]() ![]() Alain GerardConsultant informatique Inscription : mai 2005 Messages : 3 675 ![]() |
Remplace
par Le problème des Select et Activate est double: D'une part, il y aura une animation à l'écran qui n'est pas du plus heureux effet. D'autre part, si l'utisateur veut vérifier qqch pendant le déroulement de la macro et qu'il clique quelque part, toute la macro est déstabilisée.
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres! Pensez aussi à voter pour les réponses qui vous ont aidés. ------------ Je dois beaucoup de mes connaissances à mes erreurs! |
|
|
10
|
|
|
#6 | ||
|
Invité de passage
![]() Philippe infographie Inscription : décembre 2011 Messages : 5 ![]() |
Merci pour ces infos Alain.
Mais à l'éxécution de la macro, j'ain le message d'erreur suivant : erreur d'éxécution 1004 la méthode paste de la classe Worksheet a échoué Voici le code de la macro tel que je l'ai retranscrit : Code :
|
||
|
|
00
|
|
|
#7 | ||
![]() ![]() Alain GerardConsultant informatique Inscription : mai 2005 Messages : 3 675 ![]() |
Je viens de tomber sur une exception à la règle "anti Selection" mais je pense l'avoir contournée.
Peux-tu essayer ceci: Code :
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres! Pensez aussi à voter pour les réponses qui vous ont aidés. ------------ Je dois beaucoup de mes connaissances à mes erreurs! |
||
|
|
00
|
|
|
#8 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
Bonjour
Pour la dernière proposition d'Alain, remplacez la ligne 10 par celle ci Ensemble contre les Select Pour ne pas passer par le Copy/Paste Code :
__________________
Cordialement. |
||
|
|
10
|
|
|
#9 |
|
Invité de passage
![]() Philippe infographie Inscription : décembre 2011 Messages : 5 ![]() |
Bonsoir,
merci beaucoup Alain et Mercatog pour votre aide précieuse... Alain, ton code fonctionne très bien avec le correctif de Mercatog, sinon l'export était disons.. exotique !! Mercatog, merci pour ta 2e proposition de code, mais étant débutant, je ne le comprends pas alors je vais plutôt me contenter de celui d'Alain, je me sens plus à l'aise avec. J'aurais par ailleurs une question relative au fonctionnement même de ces classeurs. Le classeur de destination, ou les données sont exportées dans un tableau de synthèse, va se retrouver avec plusieurs dizaines de liaisons (environ 250) vers les classeurs sources. Les liaisons sont nécessaires, car ces fichiers sources peuvent voir leur données (uniquement les valeurs) modifiées au fil des mois. tout ça risque d'être très lourd en mémoire non ? Existe-t-il une autre méthode permettant la mise à jours des valeurs du classeur destination ? Je joins a ce post le classeur modele qui sera utilisé pour les classeurs sources, et le classeur de destination. Le modele contient des données exemple, rien de confidentiel. Un avis global sur ce travail est bienvenu ! Bonne soirée, |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com