(Excel) Deplacement de feuilles pose pb

Deplacement de feuilles pose pb (Excel) - VB/VBA/VBS - Programmation

Marsh Posté le 25-06-2009 à 09:27:21    

Bonjour,
 
Premièrement désolé pour ce titre si peu représentatif de mon problème mais difficile de le décrire succinctement, surtout avec si peu de caractères^^
 
Bon donc voici ma question:
 
CONTEXTE
Je travail sur un classeur Excel construit de la sorte:
- 1 feuille principale, fixe, sur laquelle sont placés 3 boutons, chacun affecté a une macro (2 lancent un userform)
- les autres feuilles vont et viennent, et ne possèdent ni bouton ni ligne de code
 
PROBLEME
J'ai besoin de déplacer les feuilles secondaires de mon classeur (celles qui vont et qui viennent) vers un classeur temporaire (clic droit-> déplacer-> nouveau classeur ou via une macro .move).
Mais lorsque je fait ça, je remarque que les boutons de ma première feuille ne lancent plus les macros associées!
plus précisément, si une macro "Macro1" était affectée au bouton, après déplacement des feuilles vers un classeur "NewClasseur" c'est la macro "NewClasseur!Macro1" qui se retrouve appelée par le bouton.
Évidemment cette macro n'est pas trouvé, et je dois manuellement réaffecté la bonne macro a chaque bouton :s
 
PRECISION
Cela fait un certain temps que je travail sur ce classeur, et je n'avait jamais remarqué ce pb. il est apparu a la même période que le reformatage de mon ordi du boulot (et donc réinstallation d'excel 2007). Je me dit que c'est peut être un problème d'options mais j'ai rien trouvé...
 
Je tiens a préciser que j'ai cherché pas mal sur le net mais je n'ai rien trouvé de comparable a ce pb, d'ou mon post (1er soit dit en passant)
 
J'espere que j'ai été compréhensible et que qqun pourra m'aider :)
 
Merci

Reply

Marsh Posté le 25-06-2009 à 09:27:21   

Reply

Marsh Posté le 25-06-2009 à 10:06:28    

L'idéal selon moi, c'est que tu donnes un vrai à ta macro au lieu de l'appeler Macro1, ça évite les confusions, et c'est plus clair pour toi lorsque tu codes tout ça (ou pour une personne qui ferait de la maintenance sur ce code)
De la même manière, lorsque tu appelles ta macro, tu dois pouvoir lui indiquer le nom du classeur (effectue ça quand tu as plusieurs classeurs ouverts histoire qu'il ne "simplifie" pas le nom tout seul, chose possible peut être si un seul classeur est ouvert à ce moment là)
 
(ben sinon, je trouve que ton titre est bcp plus clair que la majorité de ceux qu'on voit !)


Message édité par Ptit loup le 25-06-2009 à 10:06:38
Reply

Marsh Posté le 26-06-2009 à 09:12:55    

Evidemment le nom "maro1" n'(etait que pour l'exemple, je donne des noms explicites a mes macros, le pb ne vient pas de la...
 
ensuite quand je lie une macro a un bouton, meme si je rentre le nom du classeur avant le nom de la macro, cela ne change rien et c'est le nom du nouveau classeur qui remplace le nom du bon classeur (celui qui contient les macros)
 
d'autres idées?
 
merci

Reply

Marsh Posté le 26-06-2009 à 09:44:31    

Je me demande si je n'ai pas déjà eu le souci il y a assez longtemps avec les noms de macros qui perdaient le nom du classeur...
Le souci, c'est que je ne sais plus si
- j'ai résolu ce point
- comment je l'ai résolu si c'est le cas :/
 
Essaie à tout hasard en encadrant ton nom par des guillemets... ?

Reply

Marsh Posté le 26-06-2009 à 12:17:04    

Ptit loup a écrit :

Essaie à tout hasard en encadrant ton nom par des guillemets... ?


Tu veux dire dans la fenêtre qui s'ouvre quand je clique droit sur le bouton puis "affecter une macro" ?
Si c'est le cas les guillemets ne passent pas
 
et dans la declaration de ma macro, je ne peut pas mettre un nom du style "MonClasseurPrincipal.xlsm!MaMacro" comme c'est écrit dans cette fameuse fenêtre
 
Je désespère, je doit a chaque fois copier les feuilles dans un nouveau classeur puis les supprimer dans mon classeur principal pour contourner ce problème...
et pour le nombre de manip autant dire que la perte de temps est pénalisante, sans parler du fait qu'il n'est pas optimal d'automatiser cette façon de faire
 
Need help :s

Reply

Marsh Posté le 26-06-2009 à 14:24:36    

Bonjour,
Comment copies-tu les feuilles?
Il faut aussi faire attention à qui est le classeur actif (attention à l'utilisation de Activeworkbook, parfois on a des surprises, mieux vaut utiliser workbook(name) c'est plus sûr.

Reply

Marsh Posté le 26-06-2009 à 14:44:59    

je copie les feuilles de deux manières, qui donnent le même résultat:
- soit je selectionne toutes les feuilles qui m'interessent (toutes sauf ma feuille principale), puis clic-droit\deplacer ou copier\nouveauclasseur
- soit via une macro du style worksheets(tableau_de_feuille).move
 
me dites pas que ca vient de la macro car avec du clic-droit ca fait pareil^^
 
et il n'est aucunement question de classeur actif ou autre car si j'utilise la methode clic-droit, a aucun moment je ne passe par du code pour que le pb survienne
 
des que je deplace les feuilles, les boutons de mon premier classeur sont associés a des macro (fictives) du nouveau classeur
(je repete que ces macros associées ne bougent pas, n'apparaissent a aucun endroit dans le nouveau classeur et n'ont pas changé de nom dans le classeur principal)

Reply

Marsh Posté le 29-06-2009 à 10:00:22    

Bon j'ai essayé sur mon pc perso chez moi, avec le meme classeur et le meme code, et il n'y a aucun problème!
ca confirme ce que je pensai, ca doit venir d'un reglage d'excel...
 
Personne ne peut m'aider? j'ai fouillé les options mais j'ai rien trouvé..
 
Merci :)

Reply

Marsh Posté le 28-12-2009 à 10:39:26    

bonjour
j'ai le même pb, avez vous trouvé une solution ?

Reply

Marsh Posté le 28-12-2009 à 15:20:06    

Bonjour,
 
j'ai en effet réussi à reproduire le problème sous Excel 2007.
C'est tout simplement ahurissant!
 
Je pense que la solution la plus simple est de réaffecter les macros à tes boutons en fin de procédure
 

Code :
  1. Sub Test()
  2.     Sheets(Array("Feuil2", "Feuil3", "Feuil4" )).Move
  3.     Windows("ClasseurTest.xls" ).Activate
  4.     Sheets("Feuil1" ).Shapes("Button 1" ).OnAction = "Test"
  5.     MsgBox "OK"
  6. End Sub

Reply

Marsh Posté le 28-12-2009 à 15:20:06   

Reply

Marsh Posté le 29-12-2009 à 22:09:18    

Bonjour,
 

Citation :

j'ai en effet réussi à reproduire le problème sous Excel 2007.
C'est tout simplement ahurissant!


 
'm'étonne pas de ce  :kaola: d'Excel 2007!
 
Et, question ptêt bête, tu peux pas la mettre dans le classeur général, type Perso.xls?
 
Ca résoudrait tout

Reply

Marsh Posté le 31-12-2009 à 15:30:39    

En effet, ça fonctionne en la mettant dans perso.xls.
 
Après ça dépend de l'utilisation que l'on veut en faire: pour distribuer un programme, c'est lourd!!

Reply

Marsh Posté le 22-01-2012 à 21:05:20    

RING3R a écrit :

Evidemment le nom "maro1" n'(etait que pour l'exemple, je donne des noms explicites a mes macros, le pb ne vient pas de la...
 
ensuite quand je lie une macro a un bouton, meme si je rentre le nom du classeur avant le nom de la macro, cela ne change rien et c'est le nom du nouveau classeur qui remplace le nom du bon classeur (celui qui contient les macros)
 
d'autres idées?
 
merci


Bonjour,
 
Je confirme, j'utilise depuis 10 ans cette méthode et je n'ai jamais rencontré ce probleme mais depuis excel 2007 je rencontre le même événement que vous.
Solution trouvée (amis inacceptable philosophiquement). Si tu fais ActiveSheet.Copy  
et que tu fais ensuite sheets("X" ).delete tu n'as plus le problème  
 
Je sais c'est moche mais ça marche (merci Jérémy)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed