Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

10 réponses

1 2
Avatar
isabelle
bonjour Denys,

Sheets(2).Activate

isabelle




Le 2011-01-28 08:54, Denys a écrit :
Bonjour à 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érent. C'est cette feuill-là que je veux activer et sur laquelle
je ferai rouler ma macro.

En fait, les succursales nous enverront une feuille générique qui aura
donc toujours la même présentation. 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ême nom, alors, je bloque.

Vous pourriez m'aider ?

merci pour votre temps

Denys
Avatar
Denys
On Jan 28, 9:20 am, isabelle wrote:
bonjour Denys,

Sheets(2).Activate

isabelle

Le 2011-01-28 08:54, Denys a crit :



Bonjour Isabelle,

Sheets(2).activate active la feuille no 2..... Moi je veux activer le
dossier (pas la feuille, c'est mon erreur) ouvert dans la
fenêtre......il y a deux "workbook" d'ouverts... je veux à partir du
premier (Data) ,activer le second pour y faire rouler ma macro....

Merci

Denys
Avatar
michdenis
Bonjour,

Si tu as toujours 2 feuilles dans ton classeur,

Si tu veux être certain d'activer la feuille dont tu ne connais
pas le nom qu'elle soit placée en position 1 ou 2, il y a ceci :

"Sheet1" est le nom de l'onglet de la feuille.
Cependant, il est préférable d'utiliser la propriété "Name"
de cet objet "feuille" visible seulement dans la fenêtre de
l'éditeur de code. Dans le code, tu remplaces :
With Sheets("sheet1") par With Sheet1
'------------------------------------
Sub test()

On Error Resume Next
With Sheets("sheet1")
.Activate
.Next.Activate
If Err <> 0 Then
Err = 0
.Previous.Activate
End If
End With
MsgBox ActiveSheet.Name
End Sub
'------------------------------------


MichD
--------------------------------------------
"Denys" a écrit dans le message de groupe de discussion :


Bonjour à 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érent. C'est cette feuill-là que je veux activer et sur laquelle
je ferai rouler ma macro.

En fait, les succursales nous enverront une feuille générique qui aura
donc toujours la même présentation. 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ême nom, alors, je bloque.

Vous pourriez m'aider ?

merci pour votre temps

Denys
Avatar
michdenis
| Moi je veux activer le
| dossier (pas la feuille, c'est mon erreur)

Un dossier -> c'est un répertoire

Tu veux dire un fichier Excel

Si tu en disais plus sur ce que tu tentes de faire...

Dim Wk As Workbook
Dim MonClasseur As Workbook

'Le classeur actuel dans lequel est le code
Set MonClasseur = ThisWorkbook
'L'autre classeur
Set Wk = Workbooks.open(c:LecheminMonFichier.xls)

Et pour activer l'un ou l'autre des classeurs, tu utilises les variables objet
Wk.Activate => active l'autre classeur

MonClasseur.Activate -> active le classeur actuel

Et si tu veux fermer l'autre classeur en faisant la sauvegarde
Wk.Close True






MichD
--------------------------------------------
"Denys" a écrit dans le message de groupe de discussion :


On Jan 28, 9:20 am, isabelle wrote:
bonjour Denys,

Sheets(2).Activate

isabelle

Le 2011-01-28 08:54, Denys a crit :



Bonjour Isabelle,

Sheets(2).activate active la feuille no 2..... Moi je veux activer le
dossier (pas la feuille, c'est mon erreur) ouvert dans la
fenêtre......il y a deux "workbook" d'ouverts... je veux à partir du
premier (Data) ,activer le second pour y faire rouler ma macro....

Merci

Denys
Avatar
Denys
Bonjour Denis,

Bon, manifestement, je me suis mal exprimé......

En fait, il y a deux classeurs ouverts.

Le premier s'appelle DATA et n'a qu'une seule feuille (Sheet1)

Le second n'aura jamais le même nom. (Plus de 500 différents que l'on
recevra au fil des mois).

Les deux classeurs seront ouverts. A partir du classeur DATA, je veux
pouvoir activer le second classeur, quelque soit son nom pour ensuite
y faire rouler une macro.... et c'est là que je bloque...

Désolé pour la confusion

Merci

Denys
Avatar
isabelle
si je comprend bien tu n'as aucune assurance qu'il y aura seulement 2 fichiers ouvert.
on peut balayer sur les fichiers ouvert dans l'application mais il faudrait en plus faire une vérification
pour être certain que c'est le bon fichier.
y a t'il un particularité sur ce deuxieme fichier qui permettrait de l'identifier ?

isabelle

.

Le 2011-01-28 09:20, isabelle a écrit :
bonjour Denys,

Sheets(2).Activate

isabelle




Le 2011-01-28 08:54, Denys a écrit :
Bonjour à 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érent. C'est cette feuill-là que je veux activer et sur laquelle
je ferai rouler ma macro.

En fait, les succursales nous enverront une feuille générique qui aura
donc toujours la même présentation. 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ême nom, alors, je bloque.

Vous pourriez m'aider ?

merci pour votre temps

Denys
Avatar
Jacquouille
Bonjour
Si j'ai bien compris ta dernière explication, il y aura TON fichier data qui
sera ouvert ET 1 des 500 autres que l'on t'enverra tous les mois.
Comment veux-tu qu'Excel, Isabelle ou Denis ou Frédéric ou un autre sache
lequel tu veux ouvrir?
Renomme-les Autre1, Autre2 ....et tu auras plus facile de les ouvrir au fur
et à mesure.



Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Denys" a écrit dans le message de groupe de discussion :


Bonjour Denis,

Bon, manifestement, je me suis mal exprimé......

En fait, il y a deux classeurs ouverts.

Le premier s'appelle DATA et n'a qu'une seule feuille (Sheet1)

Le second n'aura jamais le même nom. (Plus de 500 différents que l'on
recevra au fil des mois).

Les deux classeurs seront ouverts. A partir du classeur DATA, je veux
pouvoir activer le second classeur, quelque soit son nom pour ensuite
y faire rouler une macro.... et c'est là que je bloque...

Désolé pour la confusion

Merci

Denys
Avatar
isabelle
par exemple tu peut vérifier si un fichier provient du même dossier que le fichier Data

For Each wk In Application.Workbooks
If ThisWorkbook.Name <> wk.Name Then
If wk.Path = ThisWorkbook.Path Then MsgBox "le fichier " & wk.Name & " provient du même dossier"
End If
Next

isabelle

.

Le 2011-01-28 09:45, Denys a écrit :
Bonjour Denis,

Bon, manifestement, je me suis mal exprimé......

En fait, il y a deux classeurs ouverts.

Le premier s'appelle DATA et n'a qu'une seule feuille (Sheet1)

Le second n'aura jamais le même nom. (Plus de 500 différents que l'on
recevra au fil des mois).

Les deux classeurs seront ouverts. A partir du classeur DATA, je veux
pouvoir activer le second classeur, quelque soit son nom pour ensuite
y faire rouler une macro.... et c'est là que je bloque...

Désolé pour la confusion

Merci

Denys
Avatar
Denys
On Jan 28, 9:45 am, "michdenis" wrote:
| Moi je veux activer le
| dossier (pas la feuille, c'est mon erreur)

Un dossier -> c'est un répertoire

Tu veux dire un fichier Excel

Si tu en disais plus sur ce que tu tentes de faire...




Désolé, je suis dans le champ ce matin.....

Effectivement, l'usager ouvrira le fichier Excel nommé Data...... puis
il en ouvrira un second dont le nom changera. Il n'y aura jamais plus
de deux fichiers excel ouverts en même temps, donc il n'y aura pas de
confusion à savoir lequel ouvrir. Ce qu'il faut, c'est d'activer le
fichier excel qui ne s'appelle pas Data....

Je suis confus, d'habitude je pense m'exprimer correctement.

Merci encore

Denys
Avatar
michdenis
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
--------------------------------------------
1 2