Mais, si FeuilleA contient des boutons d'appel à des macros, ceux de la
nouvelle feuille font appel aux macros du classeur source.
Y a-t-il un moyen d'adapter aussi le module source ?
Nota: C'est un pur hasard, mais si je pose cette question, c'est pour
essayer de contourner le problème posé par Bernard à 10H56: je n'ai jamais
pu
trouver de solution qui marche (même sur ce forum, qui pourtant ...). pour
la mise à jour des macros dans des PC d'utilisateurs.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
anonymousA
Bonjour,
qu'est ce que tu appelles adapter le module source ?. Les boutons sont copiés avec leurs propriétés, donc y compris avec ce qui va appeler la macro pour laquellle ils sont faits. Il est exact que les modules auxquels ces boutons font références ne sont pas exportés avec la feuille ( sauf si dans le module de feuille pour un bouton de la BO controles la macro associée appartient au module de feuille copiée). Sinon, il faut exporter le ou les modules considérés puis les importer dans le classeur 2 puis ensuite s'il s'agit de boutons de la BO Formulaires changer l'appel à la macro pour l'associer au module importé en modifiant la propriété Onaction de ces boutons.Ce n'est pas forcément très difficile mais ca nécéssite de la rigueur et un certain nombre de lignes de code.
A+
Bonjour,
qu'est ce que tu appelles adapter le module source ?. Les boutons sont
copiés avec leurs propriétés, donc y compris avec ce qui va appeler
la macro pour laquellle ils sont faits. Il est exact que les modules
auxquels ces boutons font références ne sont pas exportés avec la
feuille ( sauf si dans le module de feuille pour un bouton de la BO
controles la macro associée appartient au module de feuille copiée).
Sinon, il faut exporter le ou les modules considérés puis les
importer dans le classeur 2 puis ensuite s'il s'agit de boutons de la
BO Formulaires changer l'appel à la macro pour l'associer au module
importé en modifiant la propriété Onaction de ces boutons.Ce n'est
pas forcément très difficile mais ca nécéssite de la rigueur et un
certain nombre de lignes de code.
qu'est ce que tu appelles adapter le module source ?. Les boutons sont copiés avec leurs propriétés, donc y compris avec ce qui va appeler la macro pour laquellle ils sont faits. Il est exact que les modules auxquels ces boutons font références ne sont pas exportés avec la feuille ( sauf si dans le module de feuille pour un bouton de la BO controles la macro associée appartient au module de feuille copiée). Sinon, il faut exporter le ou les modules considérés puis les importer dans le classeur 2 puis ensuite s'il s'agit de boutons de la BO Formulaires changer l'appel à la macro pour l'associer au module importé en modifiant la propriété Onaction de ces boutons.Ce n'est pas forcément très difficile mais ca nécéssite de la rigueur et un certain nombre de lignes de code.
A+
Michel Gaboly
Bonjour Papy Jean,
Voici un exemple :
On remplace la liaison vers le classeur source par une liaison vers le cl asseur dans lequel la feuill a été copiée.
Sub Macro2() Dim Liste Sheets("Feuil1").Select Sheets("Feuil1").Copy Liste = ActiveWorkbook.LinkSources ActiveWorkbook.ChangeLink Liste(1), ActiveWorkbook.Name End Sub
Bien évidemment, cela n'est pas possible si le classeur destination com pore déjà des liaisons - à consever - vers le classeur source.
Toutefois, cela doit répondre à ta question dans 90% des cas.
D'autre part, les liaisons sont dangereuses ;-)) comme chacun sait, et à éviter autant que possible.
Bonjour !
Soient 2 classeurs: Classeur1.xls et Classeur2.xls Pour copier la feuille FeuilleA de Classeur 1 vers Classeur2, on peut f aire:
Mais, si FeuilleA contient des boutons d'appel à des macros, ceux de la nouvelle feuille font appel aux macros du classeur source.
Y a-t-il un moyen d'adapter aussi le module source ?
Nota: C'est un pur hasard, mais si je pose cette question, c'est pour essayer de contourner le problème posé par Bernard à 10H56: je n' ai jamais pu trouver de solution qui marche (même sur ce forum, qui pourtant ...). pour la mise à jour des macros dans des PC d'utilisateurs.
Salut à Tous Papy Jean
-- Cordialement,
Michel Gaboly www.gaboly.com
Bonjour Papy Jean,
Voici un exemple :
On remplace la liaison vers le classeur source par une liaison vers le cl asseur dans lequel la feuill a été copiée.
Sub Macro2()
Dim Liste
Sheets("Feuil1").Select
Sheets("Feuil1").Copy
Liste = ActiveWorkbook.LinkSources
ActiveWorkbook.ChangeLink Liste(1), ActiveWorkbook.Name
End Sub
Bien évidemment, cela n'est pas possible si le classeur destination com pore déjà des liaisons - à consever - vers le
classeur source.
Toutefois, cela doit répondre à ta question dans 90% des cas.
D'autre part, les liaisons sont dangereuses ;-)) comme chacun sait, et à éviter autant que possible.
Bonjour !
Soient 2 classeurs: Classeur1.xls et Classeur2.xls
Pour copier la feuille FeuilleA de Classeur 1 vers Classeur2, on peut f aire:
Mais, si FeuilleA contient des boutons d'appel à des macros, ceux de la
nouvelle feuille font appel aux macros du classeur source.
Y a-t-il un moyen d'adapter aussi le module source ?
Nota: C'est un pur hasard, mais si je pose cette question, c'est pour
essayer de contourner le problème posé par Bernard à 10H56: je n' ai jamais
pu
trouver de solution qui marche (même sur ce forum, qui pourtant ...). pour
la mise à jour des macros dans des PC d'utilisateurs.
On remplace la liaison vers le classeur source par une liaison vers le cl asseur dans lequel la feuill a été copiée.
Sub Macro2() Dim Liste Sheets("Feuil1").Select Sheets("Feuil1").Copy Liste = ActiveWorkbook.LinkSources ActiveWorkbook.ChangeLink Liste(1), ActiveWorkbook.Name End Sub
Bien évidemment, cela n'est pas possible si le classeur destination com pore déjà des liaisons - à consever - vers le classeur source.
Toutefois, cela doit répondre à ta question dans 90% des cas.
D'autre part, les liaisons sont dangereuses ;-)) comme chacun sait, et à éviter autant que possible.
Bonjour !
Soient 2 classeurs: Classeur1.xls et Classeur2.xls Pour copier la feuille FeuilleA de Classeur 1 vers Classeur2, on peut f aire:
Mais, si FeuilleA contient des boutons d'appel à des macros, ceux de la nouvelle feuille font appel aux macros du classeur source.
Y a-t-il un moyen d'adapter aussi le module source ?
Nota: C'est un pur hasard, mais si je pose cette question, c'est pour essayer de contourner le problème posé par Bernard à 10H56: je n' ai jamais pu trouver de solution qui marche (même sur ce forum, qui pourtant ...). pour la mise à jour des macros dans des PC d'utilisateurs.