Activer dernier classeur Excel ouvert

Bonjour,

question simple mais je trouve pas la solution!!

Est ce que quelqu'un aurait un bout de code pour activer le dernier classeur ouvert par Excel.

En effet, je dois importer des données depuis le dernier ficher excel ouvert dont le nom change.

C'est ce qui me bloque et je veux éviter l'ordre d'ouverture.

Merci!

Bonjour,

Ta question n'est pas claire. Merci de reformuler.

A+

Bonjour

prasikall32 a écrit :

le dernier classeur ouvert par Excel

C'est le classeur actif (ActiveWorkbook)

Où est la question ?

Bien sur si j'ai compris

J'ai mon classeur de travail dans lequel je veux importer des demandes. Ce classeur de travail reste ouvert toute la journée.

J'ouvre ensuite une premiere demande à importer ; je lance la macro d'import; je ferme la demande

J'ouvre une seconde demande à importer ; je lance la macro d'import; je ferme la demande

etc etc etc

ce que je souhaite, c'est que ma macro (que je lance depuis le classeur de travail) aille chercher les infos dans le fichier de demande. Donc pour ça, je sais qu'il existe au moins 2 possibilités :

* soit donner à la macro le nom du fichier dans lequel aller chercher les infos (ce que je ne peux pas faire parce qu'aucune partie du nom du fichier n'est reproduite à chaque demande)

* soit dire à l'utilisateur : fermer ts les fichiers Excel. Ouvrir le classeur de travail (qui sera le workbook1) puis la demande (qui sera le workbook2). Je veux éviter cette solution pour plusieurs raisons.

Ma question est donc : puisque j'ouvre toujours en dernier le fichier de demande dans lequel je dois aller chercher des infos. N'y a t il pas un moyen de dire à ma macro que le bon classeur où aller piocher est le dernier qui a été ouvert ?

Merci

-- 28 Juil 2011, 21:22 --

J'ai mon classeur de travail dans lequel je veux importer des demandes. Ce classeur de travail reste ouvert toute la journée.

J'ouvre ensuite une premiere demande à importer ; je lance la macro d'import; je ferme la demande

J'ouvre une seconde demande à importer ; je lance la macro d'import; je ferme la demande

etc etc etc

ce que je souhaite, c'est que ma macro (que je lance depuis le classeur de travail) aille chercher les infos dans le fichier de demande. Donc pour ça, je sais qu'il existe au moins 2 possibilités :

* soit donner à la macro le nom du fichier dans lequel aller chercher les infos (ce que je ne peux pas faire parce qu'aucune partie du nom du fichier n'est reproduite à chaque demande)

* soit dire à l'utilisateur : fermer ts les fichiers Excel. Ouvrir le classeur de travail (qui sera le workbook1) puis la demande (qui sera le workbook2). Je veux éviter cette solution pour plusieurs raisons.

Ma question est donc : puisque j'ouvre toujours en dernier le fichier de demande dans lequel je dois aller chercher des infos. N'y a t il pas un moyen de dire à ma macro que le bon classeur où aller piocher est le dernier qui a été ouvert ?

Merci

-- 28 Juil 2011, 21:32 --

j'ai transposé le code que j'utilise pour selectionner le derniere onglet d'un classeur pour ma situation

ca me donne

Workbooks(Workbooks.Count).Activate

Je pense que ça marche et que c'était la solution!!

je testerai demain

Bonsoir

Je répète le dernier classeur ouvert est ActiveWorkbook

Si entre le moment où tu l'ouvres et le moment où tu l'utilises tu ne fais aucun Workbooks("xx").Activate ou autre joyeuseté (style WorkBooks("yy").Save) pour changer de classeur tu pourras utiliser ActiveWorkbook

UN avis : Si ce n'est pas dans la même macro l'ouverture du fichier et son utilisation, récupère son nom lors de l'ouverture et stocke le dans une variable globale, comme cela plus de soucis

Et tu pourras utiliser

WorkBooks(Nom_Sauvegardé).....
Rechercher des sujets similaires à "activer dernier classeur ouvert"