Workbooks

Le
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: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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #21128261
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"
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
FdeCourt
Le #21128251
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.
michdenis
Le #21128381
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
'------------------------------------
FFO
Le #21128801
Salut à toi

Pour activer ton document fais avec ceci :

Workbooks(NomFic).Activate

Le fichier NomFic doit être ouvert

Celà devrait faire

Dis moi !!!!!!
FdeCourt
Le #21128781
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.
Manu
Le #21128941
Impec, ca fonctionne merci de votre aide à tous, j'ai utilisé la methode de
FFO

Manu

"FFO"
Salut à toi

Pour activer ton document fais avec ceci :

Workbooks(NomFic).Activate

Le fichier NomFic doit être ouvert

Celà devrait faire

Dis moi !!!!!!



Publicité
Poster une réponse
Anonyme