Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Test fichier xlsx déjà ouvert

herve62

XLDnaute Barbatruc
Supporter XLD
Bonsoir
je bloque sur un test de fichier .xlsx déjà ouvert j'ai l'instruction :
Application.Dialogs(xlDialogOpen).Show
J'ai repris une fonction qui teste si un fichier Xls nommé est ouvert ( il fonctionne depuis .... 10ans !)
mais pas à la suite de cette instruction ,car forcément après le clic "Ouvrir" , la fonction dit qu'il est déjà ouvert
!!!!
Je n'ai pas trouvé dans cette instruction des paramètres qui testent si ouvert/fermé ?
Y a t-il , de nos jours (car j'ai trouvé des codes usines à gaz de 2003 ) un tout petit bout de code voire instruction directe pour y remédier ?
Merci bien
 

herve62

XLDnaute Barbatruc
Supporter XLD
Bonjour tous
Merci , mais ça je l'ai depuis le début pourtant je l"avais précisé !!
J'ai repris une fonction qui teste si un fichier Xls nommé est ouvert ( il fonctionne depuis .... 10ans !)
c'est exactement la même!, bien lire la suite aussi> c'est ce qui fait que je tourne en rond !!
A mon avis que le pb vient de l'explorateur il n'y a pas de contrôle sur "Ouvrir" afin de savoir si le fichier select est ouvert
Si je saute cette fonction là c'est windows/excel qui met le traditionnel message Dejà ouvert ..etc mais ensuite le code Bug
 

CHALET53

XLDnaute Barbatruc
Comme ceci (avec des infos glanées ici et ailleurs), est-ce que ça répond à la question . A+

Dim testouvert As Integer
Sub essai1()
Dim FileName As String, fichier As String
FileName = Application.GetOpenFilename("Classeurs Excel(*.xls*),*.xls*, Macros complémentaires (*.xla),*.xla")
MsgBox "Vous avez-sélectionné : " & FileName, vbInformation, "Illustration - GetOpenFilename"

If FileName = "Faux" Or FileName = "" Then MsgBox ("Aucun fichier sélectionné"): Exit Sub

For i = Len(FileName) To 1 Step -1
If Mid(FileName, i, 1) = "\" Then
fichier = Right(FileName, (Len(FileName) - i))
i = 1
End If
Next i

Call FichierOuvert(fichier)
If testouvert = 0 Then MsgBox ("fichier ouvert"): Exit Sub
Workbooks.Open FileName:=FileName
'End If
End Sub
Function FichierOuvert(fic As String)
On Error Resume Next
Set FichierOuvert = Workbooks(fic)
testouvert = Err
End Function
 
Dernière édition:

herve62

XLDnaute Barbatruc
Supporter XLD
Bonsoir
Merci Chalet , rien que "Application.GetOpenFilename" m'a remis sur la bonne route j'ai juste repris :
Code:
FileName = application.GetOpenFilename(l(*.xlsx*),*.xlsx*)
j'ai même selectionné mon répertoire avant pour arriver directement dessus, puis repris ma fonction Fic_ouvert et tout est nickel !!
 

herve62

XLDnaute Barbatruc
Supporter XLD
Bonjour
Il y a quand même un soucis !
Si je ne mets pas de fichier et clique ANNULER , dans la suite (via msgbox) cela me donne le nom du fichier de la liste ( il n'y en a qu'un dans mon cas) et ensuite j'ai ERREUR Fichier introuvable ???
cela doit provenir d'un manque de paramètre dans getfileOpen si Cancel ??
 

CHALET53

XLDnaute Barbatruc
Re,

Dans ma procédure ci-dessus, j'avais rajouté un test qui me semble fonctionner si je clique sur Annuler dans la fenêtre d'ouverture d'un fichier :

If FileName = "Faux" Or FileName = "" Then MsgBox ("Aucun fichier sélectionné"): Exit Sub

a+
 

Discussions similaires

Réponses
6
Affichages
991
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…