Workbook Activate ne fonctionne que dans une feuille

Bonjour,

J'ai créé une macro excel qui après avoir cliqué sur un bouton de commande vient lister le contenu des fichiers dans un répertoire donnée. Cette macro filtre l'affichage de ces fichiers pour ne garder que ceux qui se terminant par csv et dont le nom commence par certains caractères bien précis.

Ensuite la macro crée un fichier "output.xls", puis va ouvrir le premier fichier csv de la liste, elle sélectionne la feuille du fichier csv et copie le contenu de la feuille dans le presse papier.

Ensuite la macro active le classeur "output.xls" et viens créer un onglet correspondant au nom du fichier csv ouvert.

La macro vient ensuite coller le contenu du fichier csv qui a été copié dans le presse papier dans l'onglet du fichier "output.xls" créé.

Je ferme ensuite le fichier csv et la macro fait la même chose pour le 2 ieme fichier csv, ... jusqu'au dernier fichier csv.

Le but étant de collecter tout les résultats issus des fichiers csv dans un seul fichier xls.

La macro fonctionne très bien mais je souhaite qu'elle se lance au démarrage sans avoir besoin de cliquer sur un bouton.

J'ai vu qu'il est possible d'écrire du code dans "Woorkbook" pour que le code s'éxécute au démarrage.

Seulement si je copie le code de ma macro présent dans "feuill1" et que je le colle dans "workbook", le code s'écécute bien au démarrage mais j'ai un problème car la fonction workbooks("output.xls").activate ne semble pas fonctionner.

En fait lorsque c'est toujours le workbook de mon fichier xlsm (le fichier ou ma macro est écrite) qui reste actif lorsque je veux faire un coller. Du coup lorsque je veux créé un nouvel onglet pour y coller les cellules copier, au lieu de les coller dans "output.xls", je les colle dans "Macro.xlsm"

Ma question est:

Pourquoi la fonction workbooks("output.xls").activate ne fonctionne pas lorsque le code est écrit dans "workbook" pour qu'elle se lance au démarrage alors que cette fonction fonctionne lorsque le code est écrit dans "feuill1"?

En vous remerciant pour votre aide,

Fabien

Note: j'ai fait le test de faire une commande "debug print du nom du workbook activé" suivi d'une commande "stop" et je constate que le nom du workbook activé est bien "output.xls", donc la commande semble bien fonctionner mais malgré tout ca reste Mamacro.xlsm qui est actif au lieu de output.xls.

bonjour,

merci de mettre ton classeur contenant ta macro et un fichier csv exemple.

Voici

Cliquer sur le bouton pour voir ce qui se passe. Cette macro je souhairai la lancer des le démarrage d'excel.

Merci,

Fabien

Bonjour,

voici le fichier adapté.

j'ai mis tout le code dans un module 1. Ceci nécessite de prendre la bonne habitude de qualifier tous les objets de type range (cells, range, columns, rows) d'un préfixe indiquant dans quelle feuille de quel classeur ils se trouvent.

je l'ai fait seulement où c'était absolument nécessaire pour le bon fonctionnement de la macro.

à tester, pour voir si je n'aurais pas oublié quelque chose.

l'activation de la macro à l'ouverture est mise en commentaire, à toi de l'activer quand tu le juges utile.

Merci la macro se lance bien au démarrage. Nickel.

Rechercher des sujets similaires à "workbook activate fonctionne que feuille"