[EXCEL] activation classeur
ERIC59
-
ERIC59 -
ERIC59 -
Bonjour,
j'ai besoin d'aide pour le cas suivant sur excel (version utilisée 2002).
j'ai un classeur (A) avec des boutons qui font appel à des macros,
mon premier bouton crée un nouveau classeur (B) , crée une nouvelle feuille et importe des fichiers txt
mon deuxième bouton crée une nouvelle feuille et importe des fichiers txt (puisque mon nouveau classeur est déjà crée)
mon troisième bouton crée une nouvelle feuille et importe encore d'autres fichiers txt
voilà pour le principe
ma difficulté est qu'après la création du classeur B, création feuille, importation, etc... je retourne dans le classeur A pour exécuter le deuxième bouton qui fait une importation mais elle ne se fait pas dans le classeur B mais dans le A où je me trouve.
comment avant de faire l'importation je peux dire d'activer le classeur B ?
merci de votre aide
j'ai besoin d'aide pour le cas suivant sur excel (version utilisée 2002).
j'ai un classeur (A) avec des boutons qui font appel à des macros,
mon premier bouton crée un nouveau classeur (B) , crée une nouvelle feuille et importe des fichiers txt
mon deuxième bouton crée une nouvelle feuille et importe des fichiers txt (puisque mon nouveau classeur est déjà crée)
mon troisième bouton crée une nouvelle feuille et importe encore d'autres fichiers txt
voilà pour le principe
ma difficulté est qu'après la création du classeur B, création feuille, importation, etc... je retourne dans le classeur A pour exécuter le deuxième bouton qui fait une importation mais elle ne se fait pas dans le classeur B mais dans le A où je me trouve.
comment avant de faire l'importation je peux dire d'activer le classeur B ?
merci de votre aide
A voir également:
- [EXCEL] activation classeur
- Clé d'activation windows 10 - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Imprimer un classeur excel sur mac - Guide
- Si ou excel - Guide
5 réponses
bonjour,
merci pour cette réponse, je vais faire des tests mais sur le site msdn microsoft j'ai pas trouvé workbooks.new
mais workbook.new est-ce cela dont tu parles ?
merci
merci pour cette réponse, je vais faire des tests mais sur le site msdn microsoft j'ai pas trouvé workbooks.new
mais workbook.new est-ce cela dont tu parles ?
merci
L'idée de Santiago est bonne: Une fois que tu as créé le nouveau workbook, donne lui un nom. Ensuite, chaque fois que tu fais une action sur un classeur, utilise le nom du classeur pour selectionner le bon classeur de facon systématique... Ca t'évitera de faire des actions dans le mauvais classeur...
En revanche je ne pense pas que la syntaxe de la fonction que souhaite faire Santiago69 soit correcte... A mon avis il est plus pratique de créer plusieurs workbook indexé (Public MyWorkBooks(1 to 10) as Workbooks) et d'utiliser l'index MyWorkbook(i) pour affecter les noms de workbooks... ou un truc dans ce genre...
En revanche je ne pense pas que la syntaxe de la fonction que souhaite faire Santiago69 soit correcte... A mon avis il est plus pratique de créer plusieurs workbook indexé (Public MyWorkBooks(1 to 10) as Workbooks) et d'utiliser l'index MyWorkbook(i) pour affecter les noms de workbooks... ou un truc dans ce genre...
Salut a tous,
Comme je l'avais annonce, je n'avais pas MS Excel sous les yeux lors de ma proposition.
Voila la syntaxe exacte :
Dim NouveauClasseur As Workbook
Sub Bouton1()
Set NouveauClasseur = Workbooks.Add
'A ce moment, le classeur actif est "NouveauClasseur"
'Place ici les commandes d'importation de ton fichier texte
...
ThisWorbook.Activate
'ThisWorbook ne designe pas le classeur actif mais le classeur qui contient la macro en cours d'execution
'Cette commande te ramene donc au classeur de depart, pret a cliquer sur le deuxieme bouton
End Sub
Sub Bouton2()
NouveauClasseur.Activate
'A ce moment, le classeur actif est "NouveauClasseur" qui a deja ete cree
'Place ici les commandes d'importation de ton deuxieme fichier texte
...
ThisWorbook.Activate
'Cette commande te ramene au classeur de depart, pret a cliquer sur le troisieme bouton
End Sub
Et ainsi de suite...
Comme je l'avais annonce, je n'avais pas MS Excel sous les yeux lors de ma proposition.
Voila la syntaxe exacte :
Dim NouveauClasseur As Workbook
Sub Bouton1()
Set NouveauClasseur = Workbooks.Add
'A ce moment, le classeur actif est "NouveauClasseur"
'Place ici les commandes d'importation de ton fichier texte
...
ThisWorbook.Activate
'ThisWorbook ne designe pas le classeur actif mais le classeur qui contient la macro en cours d'execution
'Cette commande te ramene donc au classeur de depart, pret a cliquer sur le deuxieme bouton
End Sub
Sub Bouton2()
NouveauClasseur.Activate
'A ce moment, le classeur actif est "NouveauClasseur" qui a deja ete cree
'Place ici les commandes d'importation de ton deuxieme fichier texte
...
ThisWorbook.Activate
'Cette commande te ramene au classeur de depart, pret a cliquer sur le troisieme bouton
End Sub
Et ainsi de suite...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je n'ai pas mon ordi sous windows sous la main.
je te donne les commandes de tete.
quand tu cree le classeur B fais :
dim ClasseurA as object, ClasseurB as object
set ClasseurA = thisworkbook
set ClasseurB = workbooks.new '(la je suis vraiment pas sur)
'comme ca tu as cree 2 objects facilement manipulables qui pointent vers tes 2 fichiers.
quand tu clic sur le 2e bouton, commence par
classeurB.activate
'vu que c'est 2 macro differentes, il faut s'assurer que les variables restent bien en memoire :
'1/ soit en les declarant au niveau module
'2/ soit en les declarant avec static
je te donne les commandes de tete.
quand tu cree le classeur B fais :
dim ClasseurA as object, ClasseurB as object
set ClasseurA = thisworkbook
set ClasseurB = workbooks.new '(la je suis vraiment pas sur)
'comme ca tu as cree 2 objects facilement manipulables qui pointent vers tes 2 fichiers.
quand tu clic sur le 2e bouton, commence par
classeurB.activate
'vu que c'est 2 macro differentes, il faut s'assurer que les variables restent bien en memoire :
'1/ soit en les declarant au niveau module
'2/ soit en les declarant avec static