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

Workbooks

6 réponses
Avatar
Manu
Bonjour,

J'ai un soucis sur ce bout de code de philippe R que je tente de mettre en
place en fonction de mes besoins :
En B1 j'ai 2009

Annéesuivante = Range("B1") + 1
NomFic = "alerte" & Annéesuivante & ".xls"
Chemin = "C:\" & Annéesuivante & "\"
Workbooks.Open Filename:=Chemin & NomFic

Cette derniere ligne permet d'ouvrir un fichier dans un chemin specifie avec
un de plus que B1 c'est à dire : C:\2010\alerte 2010.xls
le soucis est que je ne veux pas l'ouvrir mais l'activer car il est deja
ouvert.
J'ai essayé des Workbooks.activate ....etc, mais rien n'y fait.
que dois je faire?

Merci

Manu

6 réponses

Avatar
michdenis
Bonjour,

Je n'ai pas compris ta question ...
Lorsque tu utilises une ligne de code comme ceci :
Workbooks.Open Filename:=Chemin & NomFic

Le fichier que tu viens d'ouvrir est déjà le fichier actif
quoi que tu fasses.

Pour activer un classeur :
Workbooks("NomDuClasseur.xls").Activate





"Manu" a écrit dans le message de groupe de discussion :

Bonjour,

J'ai un soucis sur ce bout de code de philippe R que je tente de mettre en
place en fonction de mes besoins :
En B1 j'ai 2009

Annéesuivante = Range("B1") + 1
NomFic = "alerte" & Annéesuivante & ".xls"
Chemin = "C:" & Annéesuivante & ""
Workbooks.Open Filename:=Chemin & NomFic

Cette derniere ligne permet d'ouvrir un fichier dans un chemin specifie avec
un de plus que B1 c'est à dire : C:2010alerte 2010.xls
le soucis est que je ne veux pas l'ouvrir mais l'activer car il est deja
ouvert.
J'ai essayé des Workbooks.activate ....etc, mais rien n'y fait.
que dois je faire?

Merci

Manu
Avatar
FdeCourt
Salut,

Remplace le Workbook.open par ceci :
If fichierOuvert(NomFic) = False Then Workbooks.Open Filename:=Chemin
& NomFic


Et ajoute cette fonction :

Function fichierOuvert(monFichier As String) As Boolean
Dim WorkBookActif as String
On Error GoTo err_handler
WorkBookActif = ActiveWorkbook.Name
Workbooks(monFichier).Activate
Workbooks(WorkBookActif).Activate
fichierOuvert = True
On Error GoTo 0
Exit Function
err_handler:
fichierOuvert = False
End Function

Cordialement,

F.
Avatar
michdenis
et si tu désires empêcher un fichier d'ouvrir s'il l'est déjà :

Dim Wk As Workbook

'------------------------------------
On Error Resume Next
Set Wk = Workbooks(NomFic)
If Err <> 0 Then
Err.Clear
Workbooks.Open Filename:=Chemin & NomFic
Else
Wk.Activate
End With
'------------------------------------
Avatar
FFO
Salut à toi

Pour activer ton document fais avec ceci :

Workbooks(NomFic).Activate

Le fichier NomFic doit être ouvert

Celà devrait faire

Dis moi !!!!!!
Avatar
FdeCourt
Salut,

Fonction légèrement améliorée grace à FFO :

Function fichierOuvert(monFichier As String) As Boolean
Dim s As Workbook
On Error GoTo err_handler
Set s = Workbooks(monFichier)
fichierOuvert = True
On Error GoTo 0
Exit Function
err_handler:
fichierOuvert = False
End Function

Sinon petite question pour les pros.

J'utilise quasiment toujours des fonctions pour faire des tests, qui
ne sont pas forcément réutilisées. Je trouve que ca donne de la
visibilité du code mais est-ce une bonne méthode ?

Merci pour vos commentaires

Cordialement,

F.
Avatar
Manu
Impec, ca fonctionne merci de votre aide à tous, j'ai utilisé la methode de
FFO

Manu

"FFO" a écrit dans le message de news:

Salut à toi

Pour activer ton document fais avec ceci :

Workbooks(NomFic).Activate

Le fichier NomFic doit être ouvert

Celà devrait faire

Dis moi !!!!!!