activer dernier classeur Excel ouvert  Sujet résolu

Pour toutes vos questions à propos d'Excel ...

activer dernier classeur Excel ouvert

Messagepar prasikall32 » 28 Juil 2011, 13:18

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!
prasikall32
Membre habitué
 
Messages: 50
Inscription: 01 Avr 2010, 09:49
Version Excel: 2007FR

Re: activer dernier classeur Excel ouvert

Messagepar galopin01 » 28 Juil 2011, 14:24

Bonjour,
Ta question n'est pas claire. Merci de reformuler.
A+
galopin01
Membre dévoué
 
Messages: 931
Inscription: 18 Sep 2008, 17:32
Localisation: bourg en bresse
Version Excel: 2010

Re: activer dernier classeur Excel ouvert

Messagepar Banzai64 » 28 Juil 2011, 14:45

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
Image
Avatar de l’utilisateur
Banzai64
Passionné d'Excel
 
Messages: 4587
Inscription: 21 Nov 2010, 16:42
Localisation: Jurançon
Version Excel: 2003 FR

Re: activer dernier classeur Excel ouvert

Messagepar prasikall32 » 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: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
prasikall32
Membre habitué
 
Messages: 50
Inscription: 01 Avr 2010, 09:49
Version Excel: 2007FR

Re: activer dernier classeur Excel ouvert  Sujet résolu

Messagepar Banzai64 » 28 Juil 2011, 21:36

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
Code: Tout sélectionner
WorkBooks(Nom_Sauvegardé).....
Image
Avatar de l’utilisateur
Banzai64
Passionné d'Excel
 
Messages: 4587
Inscription: 21 Nov 2010, 16:42
Localisation: Jurançon
Version Excel: 2003 FR


Retourner vers Excel - VBA

 


  • Sujets similaires
    Réponses
    Vus
    Dernier message

Utilisateurs en ligne

Utilisateurs parcourant ce forum: Bing [Bot], CB60, cris690, Google [Bot], Majestic-12 [Bot] et 15 invités