VBA ouvrir fichier
Résolu/Fermé
cdr
-
1 mars 2011 à 11:35
momouiz Messages postés 30 Date d'inscription lundi 24 juin 2013 Statut Membre Dernière intervention 21 octobre 2013 - 1 août 2013 à 15:25
momouiz Messages postés 30 Date d'inscription lundi 24 juin 2013 Statut Membre Dernière intervention 21 octobre 2013 - 1 août 2013 à 15:25
Bonjour,
Je cherche le code qui permet d'ouvrir un fichier à partir d'une macro sans générer d'erreur si le fichier est déjà ouvert.soit tester si le fichier est ouvert, soit tester le code erreur de l'ouverture.
Merci de votre aide
Je cherche le code qui permet d'ouvrir un fichier à partir d'une macro sans générer d'erreur si le fichier est déjà ouvert.soit tester si le fichier est ouvert, soit tester le code erreur de l'ouverture.
Merci de votre aide
A voir également:
- VBA ouvrir fichier
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir fichier .bin - Guide
- Comment ouvrir un fichier docx ? - Guide
- Fichier rar - Guide
- Ouvrir un fichier .dat - Guide
5 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 312
1 mars 2011 à 12:40
1 mars 2011 à 12:40
Bonjour,
Option Explicit Dim objExcel As Excel.Application '--------------------------------------------------------------------------------------- ' Procédure : ClasseurEstOuvert ' Auteur : 2pme, Guy Courville ' Date : vendredi 11 février 2011 ' Détails : Le jeu consiste à ouvrir le classeur dans une instance invisible d'Excel ' et à tester la propriété ReadOnly de ce classeur. C'est la valeur de cette ' propriété qui est retournée par la fonction. ' ' Note 1 : Le paramètre strNomFichierComplet doit porter le chemin complet du classeur ' comme son nom l'indique. ' ' Note 2 : Aucun gestionnaire d'erreur n'est actif. ' '--------------------------------------------------------------------------------------- ' Function ClasseurEstOuvert(strNomFichierComplet As String) As Boolean Set objExcel = New Excel.Application With objExcel ' L'instance d'Excel qui porte le fichier ne doit pas être visible .Visible = False .Workbooks.Open (strNomFichierComplet) ' Si le classeur est déjà ouvert cette propriété sera à True ClasseurEstOuvert = .Workbooks(1).ReadOnly .Quit End With ' Ne pas oublier de supprimer la référence à Excel ' sinon une autre instance fantôme hantera votre système... Set objExcel = Nothing End Function
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
Modifié par pijaku le 1/03/2011 à 11:50
Modifié par pijaku le 1/03/2011 à 11:50
Bonjour,
Si on parle bien de VBA sous excel, essaye ceci : (toto ton nom de fichier à ouvrir)
"Laissez-moi deviner... Votre surnom, c'est «Bande Passante»? "
- Le Tribunal des flagrants délires- P.Desproges -
Si on parle bien de VBA sous excel, essaye ceci : (toto ton nom de fichier à ouvrir)
Option Explicit Sub essai() Dim Ws As Workbook Dim test As Boolean test = False For Each Ws In Application.Workbooks If Ws.Name = "toto" Then Ws.Activate test = True Exit Sub End If Next If test = False Then Workbooks.Open "toto.xls" End If End Sub
"Laissez-moi deviner... Votre surnom, c'est «Bande Passante»? "
- Le Tribunal des flagrants délires- P.Desproges -
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
294
1 mars 2011 à 11:51
1 mars 2011 à 11:51
Allez un p 'tit cadeau!!
tu copies et colles ce code dans un module
puis tu l'appelles dans ta sub
ex:
sub test
if IsFileOpen("c:\data\test.xls") then
' il est déja ouvert 'vrai
else
' il n'est pas ouvert
endif
end sub
tu copies et colles ce code dans un module
puis tu l'appelles dans ta sub
ex:
sub test
if IsFileOpen("c:\data\test.xls") then
' il est déja ouvert 'vrai
else
' il n'est pas ouvert
endif
end sub
Function IsFileOpen(filename As String) Dim fileNum As Integer, ErrNumero As Integer On Error Resume Next fileNum = FreeFile() Open filename For Input Lock Read As #filenum Close fileNum ErrNumero = Err On Error GoTo 0 Select Case ErrNumero Case 0 IsFileOpen = False Case 70 IsFileOpen = True End Select End Function
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
momouiz
Messages postés
30
Date d'inscription
lundi 24 juin 2013
Statut
Membre
Dernière intervention
21 octobre 2013
3
1 août 2013 à 15:25
1 août 2013 à 15:25
hello tout le monde, j'ai ouvert un sujet du même type mais pas de réponse je tente donc ma chance ici.
Voila j'utilise le code proposé par @bidouilleu_R, seulement mon probléme est que mon filename est une url sharepoint sur laquelle je stock mon fichier, cela me renvoi une erreur 52 bad file name, que faire , y a t-il une solution pour résoudre ce probléme ?
Voila j'utilise le code proposé par @bidouilleu_R, seulement mon probléme est que mon filename est une url sharepoint sur laquelle je stock mon fichier, cela me renvoi une erreur 52 bad file name, que faire , y a t-il une solution pour résoudre ce probléme ?