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é).....