Vérification si un fichier est ouvert
Bonjour à tout le monde,
J'ai une petite question.
Je voudrais savoir s'il est possible en VBA de le moment où un fichier est ouvert après une commande objShell.Open sur un chemin.
Je m'explique. A partir d'un bouton et d'un champ où est inscrit la référence d'un schéma électrique d'une machine, je fais la recherche, sur notre réseau interne, de cette référence.pdf ou .doc puis l'ouvrir. Cette procédure prend quelques secondes et les utilisateurs on tendance à appuyer plusieurs fois, provoquant une ouverture multiple du document.
Je voudrais pour indiquer à l'utilisateur que la recherche est en cours et que le fichier est en cours d'ouverture soit par une barre de progression, sablier où message à l'écran (ex: veuillez patienter).
Voici mon code actuelle de recherche et d'ouverture :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| Private Sub Btn_Ouvrir_Schem_Elec_Click()
Dim objShell As Object, RefNotice_doc As String, RefNotice_pdf As String, Path_RefNotice As String
Path_RefNotice_Temp = ""
If IsNull(SCHEMA_ELEC) Then
MsgBox ("Veuillez entrer une référence de Schéma Electrique")
GoTo Sub3
Else
RefNotice_doc = SCHEMA_ELEC & ".doc" 'Creation du nom du fichier
RefNotice_pdf = SCHEMA_ELEC & ".pdf" 'Creation du nom du fichier
End If
'Recherche du chemin des documentation dans la table TABLE_CHEMIN_DOCUMENTATION
Path_RefNotice = DLookup("[LIEN_CHEMIN_NOTICE]", "TABLE_CHEMIN_DOCUMENTATION", "[TYPE_MACHINE] = [MACHINE]")
If Path_RefNotice = "0" Then
MsgBox "Veuillez entrer le chemin de recherche dans la table TABLE_CHEMIN_DOCUMENTATION."
GoTo Sub3
End If
'Recherche si le fichier en .pdf existe
Explorer RefNotice_pdf, Path_RefNotice
If IsNull(Path_RefNotice_Temp) Or Path_RefNotice_Temp = "" Then
GoTo Sub4
Else
Set objShell = CreateObject("Shell.Application")
objShell.Open (Path_RefNotice_Temp)
GoTo Sub3
End If
Sub4: 'Recherche si le fichier en .doc existe
Explorer RefNotice_doc, Path_RefNotice
Set fso = New Scripting.FileSystemObject
If IsNull(Path_RefNotice_Temp) Or Path_RefNotice_Temp = "" Then
MsgBox ("Le Schéma Electrique référence " & SCHEMA_ELEC & " que vous essayez d'ouvrir n'existe pas sur le serveur. Veuillez vérifier la référence que vous avez inscrite ou le nom du schéma sur le serveur.")
GoTo Sub3
Else
Set objShell = CreateObject("Shell.Application")
objShell.Open (Path_RefNotice_Temp)
End If
Sub3:
End Sub |
J'ai essayer d'insérer différant code trouver dans la FAQ, notamment celui du sablier ou de la barre de progression quelconque. Lorsque j'appuie sur le bouton rien ne se passe car je pense que, vu la rapidité du code, ça n'a pas le temps de s'afficher à l'écran. Je voudrais pouvoir vérifier le moment où le fichier est ouvert et mettre un tempo jusqu'à cette ouverture et pendant ce temps un sablier (message ou barre de progression) s'affiche à l'écran.
Si vous avait d'autre idée pour simplifier mon code et arriver au résultat voulu, il n'y a pas de soucis.
Merci d'avance
Cordialement:D
Gaetan