OVH Cloud OVH Cloud

Activer fenêtre excel en VBA

14 réponses
Avatar
Denys
Bonjour =E0 tous,

A partie d'une feuille excel, j'aimerais pouvoir activer une autre
feuille excel afin d'y faire rouler une macro. En fait, il n'y aura
jamais plus que deux feuilles actives; celle qui contiendra les
instructions que j'appelle data, et celle qui aura toujours un nom
diff=E9rent. C'est cette feuill-l=E0 que je veux activer et sur laquelle
je ferai rouler ma macro.

En fait, les succursales nous enverront une feuille g=E9n=E9rique qui aura
donc toujours la m=EAme pr=E9sentation. L'usager ouvrira la feuille Data
et celle de la succursale. En cliquant un bouton sur la feuille Data,
l'autre feuille (celle de la succursale) s'ativera et je pourrai faire
rouler ma macro. Seulement, je ne sais pas comment faire pour activer
une feuille sans y inscrire le nom. Et comme la feuille n'aura jamais
le m=EAme nom, alors, je bloque.

Vous pourriez m'aider ?

merci pour votre temps

Denys

4 réponses

1 2
Avatar
Denys
On Jan 28, 10:09 am, "michdenis" wrote:
Isabelle t'a donné une solution...

Mais qu'est-ce qui se passe si tu devais à l'occasion avoir plus de 2 c lasseurs ouverts ?
Comment identifier l'autre classeur, le bon ?

MichD
--------------------------------------------



Merci Denis et Isabelle par la même occasion :-)

Une seule personne sera affectée à ce travail qui devrait durer six
mois. Alors ce sera à elle de s'assurer de ne pas ouvrir d'autres
fichiers. de plus, après avoir effectué les transformations voulues,
je m'assurerai que le fichier se ferme en sauvegardant les données....

Merci beaucoup et désolé encore pour la confusion.......

Denys
Avatar
Denys
Bon,

Voici le résultat final...

For Each wk In Application.Workbooks
If ThisWorkbook.Name <> wk.Name Then wk.Activate
Next

Merci encore Isabelle et Denis

Bonne fin de semaine

Denys
Avatar
isabelle
bonjour Denys,

une autre solution serait de faire une demande d'ouverture de fichier
des l'ouverture du fichier Data,

Private Sub Workbook_Open()
Dim Wk As Workbook, FD As FileDialog
Set FD = Application.FileDialog(msoFileDialogFilePicker)
FD.AllowMultiSelect = False 'autoriser la sélection d'un seul fichier
FD.Filters.Clear
FD.Filters.Add Description:="Excel Files", Extensions:="*.xls;*.xlsx"
'filtrer sur les fichiers excel
FD.Show 'afficher la boite de dialogue
Set Wk = Application.Workbooks.Open(fileName:ý.SelectedItems(1))
End Sub

isabelle


Le 2011-01-28 10:21, Denys a écrit :
On Jan 28, 10:09 am, "michdenis" wrote:

Isabelle t'a donné une solution...

Mais qu'est-ce qui se passe si tu devais à l'occasion avoir plus de 2 classeurs ouverts ?
Comment identifier l'autre classeur, le bon ?

MichD
--------------------------------------------



Merci Denis et Isabelle par la même occasion :-)

Une seule personne sera affectée à ce travail qui devrait durer six
mois. Alors ce sera à elle de s'assurer de ne pas ouvrir d'autres
fichiers. de plus, après avoir effectué les transformations voulues,
je m'assurerai que le fichier se ferme en sauvegardant les données....

Merci beaucoup et désolé encore pour la confusion.......

Denys

Avatar
Denys
Wow !!! C'est encore mieux de cette façon-là !!!

Merci beaucoup Isabelle...

Bonne fin de semaine

Denys

On Jan 28, 10:34 am, isabelle wrote:
bonjour Denys,

une autre solution serait de faire une demande d'ouverture de fichier
des l'ouverture du fichier Data,

Private Sub Workbook_Open()
Dim Wk As Workbook, FD As FileDialog
Set FD = Application.FileDialog(msoFileDialogFilePicker)
FD.AllowMultiSelect = False 'autoriser la sélection d'un seul  fich ier
FD.Filters.Clear
FD.Filters.Add Description:="Excel Files", Extensions:="*.xls;*.xlsx"
'filtrer sur les fichiers excel
FD.Show 'afficher la boite de dialogue
Set Wk = Application.Workbooks.Open(fileName:ý.SelectedItems(1))
End Sub

isabelle

1 2