Le classeur ne s'ouvre pas (Par bouton sur Userform)
1 réponse
?
Bonjour,
Voilà mon soucis : Je cherche à ouvrir un fichier par l'intermédiaire d'un
bouton sur un userform. Pour ceci, j'utilise ShellExecute.
Private Declare Function ShellExecute Lib "shell32.dll" Alias
"ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal
lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String,
ByVal nShowCmd As Long) As Long
Puis : With Application.FileSearch
.NewSearch
.LookIn = chemapp
.SearchSubFolders = True
.Filename = "3" & Right(usrcatalogue.txtcodemana.Value, 4) &
Worksheets("Paramètres").Range("A5").Value & " " &
usrcatalogue.txtintitu.Value
.MatchTextExactly = True
.FileType = msoFileTypeAllFiles
.Execute
If .Execute() > 0 Then
For po = 1 To .FoundFiles.Count
Call ShellExecute(0&, vbNullString, .FoundFiles(po), vbNullString,
vbNullString, vbMaximizedFocus)
Next po
Else MsgBox "Il n'existe pas de fiche catalogue appartenant à cette
référence dans la base de données actuelle":Exit Sub
End If
End With
Aucun soucis tant que le fichier à ouvrir n'est pas un classeur Excel, mais
qu'il fait applel à un autre logiciel (Word, Powerpoint, etc...)
Mais dès que j'appelle un .xls, l'application se bloque et pas moyen d'en
sortir, comme si j'avais lancé une boucle sans fin.
Merci à celle ou celui qui aurait une piste afin de m'oter cette grosse
épine du pied.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichDenis
Bonjour ?,
Tu fais un test sur l'extension du fichier
'------------------------- if Lcase(right(.FoundFiles(po),4)) = ".xls" then workbooks.open .FoundFiles(po) else Call ShellExecute(0&, vbNullString, .FoundFiles(po), vbNullString, vbNullString, vbMaximizedFocus) end if '-------------------------
Salutations!
"?" <?@discussions.microsoft.com> a écrit dans le message de news: Bonjour,
Voilà mon soucis : Je cherche à ouvrir un fichier par l'intermédiaire d'un bouton sur un userform. Pour ceci, j'utilise ShellExecute.
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Puis : With Application.FileSearch .NewSearch .LookIn = chemapp .SearchSubFolders = True .Filename = "3" & Right(usrcatalogue.txtcodemana.Value, 4) & Worksheets("Paramètres").Range("A5").Value & " " & usrcatalogue.txtintitu.Value .MatchTextExactly = True .FileType = msoFileTypeAllFiles .Execute If .Execute() > 0 Then For po = 1 To .FoundFiles.Count
Call ShellExecute(0&, vbNullString, .FoundFiles(po), vbNullString, vbNullString, vbMaximizedFocus) Next po Else MsgBox "Il n'existe pas de fiche catalogue appartenant à cette référence dans la base de données actuelle":Exit Sub End If End With
Aucun soucis tant que le fichier à ouvrir n'est pas un classeur Excel, mais qu'il fait applel à un autre logiciel (Word, Powerpoint, etc...) Mais dès que j'appelle un .xls, l'application se bloque et pas moyen d'en sortir, comme si j'avais lancé une boucle sans fin.
Merci à celle ou celui qui aurait une piste afin de m'oter cette grosse épine du pied.
Eric
Bonjour ?,
Tu fais un test sur l'extension du fichier
'-------------------------
if Lcase(right(.FoundFiles(po),4)) = ".xls" then
workbooks.open .FoundFiles(po)
else
Call ShellExecute(0&, vbNullString, .FoundFiles(po), vbNullString, vbNullString, vbMaximizedFocus)
end if
'-------------------------
Salutations!
"?" <?@discussions.microsoft.com> a écrit dans le message de news: 2A75E446-67F2-4EBB-9D03-070600846D1A@microsoft.com...
Bonjour,
Voilà mon soucis : Je cherche à ouvrir un fichier par l'intermédiaire d'un
bouton sur un userform. Pour ceci, j'utilise ShellExecute.
Private Declare Function ShellExecute Lib "shell32.dll" Alias
"ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal
lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String,
ByVal nShowCmd As Long) As Long
Puis : With Application.FileSearch
.NewSearch
.LookIn = chemapp
.SearchSubFolders = True
.Filename = "3" & Right(usrcatalogue.txtcodemana.Value, 4) &
Worksheets("Paramètres").Range("A5").Value & " " &
usrcatalogue.txtintitu.Value
.MatchTextExactly = True
.FileType = msoFileTypeAllFiles
.Execute
If .Execute() > 0 Then
For po = 1 To .FoundFiles.Count
Call ShellExecute(0&, vbNullString, .FoundFiles(po), vbNullString,
vbNullString, vbMaximizedFocus)
Next po
Else MsgBox "Il n'existe pas de fiche catalogue appartenant à cette
référence dans la base de données actuelle":Exit Sub
End If
End With
Aucun soucis tant que le fichier à ouvrir n'est pas un classeur Excel, mais
qu'il fait applel à un autre logiciel (Word, Powerpoint, etc...)
Mais dès que j'appelle un .xls, l'application se bloque et pas moyen d'en
sortir, comme si j'avais lancé une boucle sans fin.
Merci à celle ou celui qui aurait une piste afin de m'oter cette grosse
épine du pied.
'------------------------- if Lcase(right(.FoundFiles(po),4)) = ".xls" then workbooks.open .FoundFiles(po) else Call ShellExecute(0&, vbNullString, .FoundFiles(po), vbNullString, vbNullString, vbMaximizedFocus) end if '-------------------------
Salutations!
"?" <?@discussions.microsoft.com> a écrit dans le message de news: Bonjour,
Voilà mon soucis : Je cherche à ouvrir un fichier par l'intermédiaire d'un bouton sur un userform. Pour ceci, j'utilise ShellExecute.
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Puis : With Application.FileSearch .NewSearch .LookIn = chemapp .SearchSubFolders = True .Filename = "3" & Right(usrcatalogue.txtcodemana.Value, 4) & Worksheets("Paramètres").Range("A5").Value & " " & usrcatalogue.txtintitu.Value .MatchTextExactly = True .FileType = msoFileTypeAllFiles .Execute If .Execute() > 0 Then For po = 1 To .FoundFiles.Count
Call ShellExecute(0&, vbNullString, .FoundFiles(po), vbNullString, vbNullString, vbMaximizedFocus) Next po Else MsgBox "Il n'existe pas de fiche catalogue appartenant à cette référence dans la base de données actuelle":Exit Sub End If End With
Aucun soucis tant que le fichier à ouvrir n'est pas un classeur Excel, mais qu'il fait applel à un autre logiciel (Word, Powerpoint, etc...) Mais dès que j'appelle un .xls, l'application se bloque et pas moyen d'en sortir, comme si j'avais lancé une boucle sans fin.
Merci à celle ou celui qui aurait une piste afin de m'oter cette grosse épine du pied.