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

constante pour un nom de classeur

4 réponses
Avatar
Galatajoe
Bonjour à tous

j'attribue un nom de constante à un classeur, genre
trucmuche=C:\monclasseur.xls

J'arrive à l'ouvrir en demandant:
Worbooks.Openfile Name=trucmuche

Mais quand j'en ouvre un autre, pour revenir à ce classeur après avoir fait
des manips , je ne peux pas le rouvrir avec un truc comme:
Workbooks(trucmuche).Activate

Je ne veux pas passer par :
ActiceWindow.ActivateNext
qui risque de m'ouvrir évidemment un troisième classeur déjà ouvert ...

Quelqu'un aurait une solution ?

4 réponses

Avatar
Lolote
Salut Galatajoe.

Essaye ça.
Peut être est-ce ta variable TrucMuche qui n'est pas reconnue en dehors de
ton module.

Public Const MonChemin = "C:Documents and SettingsDr-Info1Mes documents"
Public Const MonFichier = "Toto.XLS"

Sub Ouverture()
Workbooks.Open Filename:=MonChemin & MonFichier
End Sub

Sub Activation()
Windows(MonFichier).Activate
End Sub

@+ Lolote


"Galatajoe" a écrit dans le message de
news:
Bonjour à tous

j'attribue un nom de constante à un classeur, genre
trucmuche=C:monclasseur.xls

J'arrive à l'ouvrir en demandant:
Worbooks.Openfile Name=trucmuche

Mais quand j'en ouvre un autre, pour revenir à ce classeur après avoir
fait
des manips , je ne peux pas le rouvrir avec un truc comme:
Workbooks(trucmuche).Activate

Je ne veux pas passer par :
ActiceWindow.ActivateNext
qui risque de m'ouvrir évidemment un troisième classeur déjà ouvert ...

Quelqu'un aurait une solution ?



Avatar
Galatajoe
merci pour le tuyau, mais en fait je ne sors pas du module ... et j'ai des
conditions pour ouvrir tel ou tel fichier : en clair je ne peux pas déclarer
tous les noms de classeurs (je refabrique les noms par un concaténation
basique + des variables de mois , d'année, etc...)
Et je crois finalement que ce n'est pas une constante mais une variable que
je veux assigner . (à partir de quand une variable devient-elle constante ...)
D'autre part, Workbooks ne marche pas mieux que Windows, et je ne comprends
non plus pourquoi: toute une éducation à faire .
En raccourci il faudrait que je puisse faire un index variable.
Merci en tout de ta réponse claire et rapide.
Avatar
papou
Bonjour
Si le classeur précédement ouvert est resté ouvert et donc présent dans la
liste des fenêtres, il faut utiliser la méthode Activate de l'objet Windows.
Tu peux récupérer le nom du classeur à activer avec ceci (par exemple) :
Const NomClasseur As String = "C:monclasseur.xls"
Sub zozo()
Dim NomFenetre$
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
NomFenetre = fso.GetFileName(NomClasseur)
Workbooks.Open NomClasseur
'ici un traitement quelconque
ThisWorkbook.Worksheets("Feuil1").Activate
'puis on rappelle la fenêtre du classeur ouvert précédement
Windows(NomFenetre).Activate
End Sub


Cordialement
Pascal

"Galatajoe" a écrit dans le message de
news:
Bonjour à tous

j'attribue un nom de constante à un classeur, genre
trucmuche=C:monclasseur.xls

J'arrive à l'ouvrir en demandant:
Worbooks.Openfile Name=trucmuche

Mais quand j'en ouvre un autre, pour revenir à ce classeur après avoir
fait
des manips , je ne peux pas le rouvrir avec un truc comme:
Workbooks(trucmuche).Activate

Je ne veux pas passer par :
ActiceWindow.ActivateNext
qui risque de m'ouvrir évidemment un troisième classeur déjà ouvert ...

Quelqu'un aurait une solution ?



Avatar
Galatajoe
Merci pour cette belle démonstration qui fonctionne ... rien à redire sinon,
merci !
Je ne savais pas récupérer ce nom en fait.Encore merci
öO)
"papou" wrote:

Bonjour
Si le classeur précédement ouvert est resté ouvert et donc présent dans la
liste des fenêtres, il faut utiliser la méthode Activate de l'objet Windows.
Tu peux récupérer le nom du classeur à activer avec ceci (par exemple) :
Const NomClasseur As String = "C:monclasseur.xls"
Sub zozo()
Dim NomFenetre$
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
NomFenetre = fso.GetFileName(NomClasseur)
Workbooks.Open NomClasseur
'ici un traitement quelconque
ThisWorkbook.Worksheets("Feuil1").Activate
'puis on rappelle la fenêtre du classeur ouvert précédement
Windows(NomFenetre).Activate
End Sub


Cordialement
Pascal

"Galatajoe" a écrit dans le message de
news:
Bonjour à tous

j'attribue un nom de constante à un classeur, genre
trucmuche=C:monclasseur.xls

J'arrive à l'ouvrir en demandant:
Worbooks.Openfile Name=trucmuche

Mais quand j'en ouvre un autre, pour revenir à ce classeur après avoir
fait
des manips , je ne peux pas le rouvrir avec un truc comme:
Workbooks(trucmuche).Activate

Je ne veux pas passer par :
ActiceWindow.ActivateNext
qui risque de m'ouvrir évidemment un troisième classeur déjà ouvert ...

Quelqu'un aurait une solution ?