Bonjoursavez vous comment detecter si un fichier excel est ouvert. Je veux créer un programme disant si ExcelVba ouvert alors ... sinon ouvrir fichier ExcelVba.
Merci d'avance,
Cordialement, Thomas
Bonjoursavez vous comment detecter si un fichier excel est ouvert. Je veux créer un programme disant si ExcelVba ouvert alors ... sinon ouvrir fichier ExcelVba.
Merci d'avance,
Cordialement, Thomas
Bonjour,
Une solution possible avec cette fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Function VerificationFichierOuvert(ByVal NomFichier As String) As Boolean Dim WbEnCours As Workbook VerificationFichierOuvert = False If Workbooks.Count = 0 Then Exit Function Else For Each WbEnCours In Application.Workbooks If WbEnCours.Name = NomFichier Then VerificationFichierOuvert = True Next WbEnCours End If End FunctionNb : Ce bout de code peut paraître complètement c..., mais il sert dans des macros complémentaires .xlam depuis le menu excel et il n'y a pas toujours des fichiers ouverts.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Sub TestVerificationFichierOuvert() MsgBox VerificationFichierOuvert("A.xlsm") End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 If Workbooks.Count = 0 Then Exit Function ....
Rien à voir.Juste ouvert sur le pc actuel donc je suppose que c'est sur la meme instance Excel
Plusieurs instances de Excel peuvent être ouvertes sur le même PC
Je réitère donc ma question :
savoir :
- s'il est ouvert dans la même instance de Excel
ou
- s'il est ouvert par n'importe quelle instance de Excel
Re,
une facon simple de vérifier qu'un classeur est ouvert à voir ici : https://excel.developpez.com/faq/?pa...ClasseurOuvert
Maintenant la question de @unparia est importante car il se peut que tu es plusieurs instance d'Excel ouvert (comme si tu avais plusieurs d'Excel ouvert indépendant des uns et des autres (uniquement sur PC))
et que le fichier que tu veux vérifier soit vérifié sur la mauvaise instance d'Excel, ce qui à pour conséquence de te donner en fin de compte une réponse erronée …
donc tu choisis d'orienté ton code dans quel sens ?
Option 1 : "s'il est ouvert dans la même instance de Excel"
Option 2 : " s'il est ouvert par n'importe quelle instance de Excel"
A choisir selon ta situation dans laquelle tu vas te trouver …
Edit : Cela peut t'aider à comprendre :https://excel-malin.com/codes-source...nstance-excel/
Cordialement
Ryu
La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein
Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple
Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)
Bonjour à tous,
autre idée :
(dans la même session, sinon voir le lien de ryu)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Function fichierOuvert(nomFich As String) As Boolean Dim tmp On Error GoTo fin tmp = Workbooks(nomFich).Name fichierOuvert = True fin: End Function
eric
Bonjour
savoir :
- s'il est ouvert dans la même instance de Excel
ou
- s'il est ouvert par n'importe quelle instance de Excel
???
Bonjour,
J'avais fait ceci pour PC/MAC (à voir - un petit retour serait cool) :
https://www.developpez.net/forums/d1...uer-procedure/
Cordialement
Ryu
La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein
Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple
Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)
salut merci bcp mais ton code est trop "lourd" et je n'ai pas les connaissances pour le réduire et l'optimiser a mes besoins. J'ai essayé d'intégrer ton code au mien et il met enormement de temps a se lancer maintenant serais-tu ce que j epeux retirer du tien pour pouvoir l'optimiser a mon problème stp(je cherche juste a savoir si il est ouvert sur mon ordi)
Merci déja énormement pour ton aide
Partager