ouverture de fichiers excel par vba

traputaca

XLDnaute Nouveau
salut à tous,

j'ai trouvé un code sur internet permettant d'ouvrir n'importe quel type de fichiers par vba, en spécifiant le chemin.

ceci dit, j'arrive a tous ouvrir (word, powerpoint, explorateur, internet ....) mais j'ai un souci avec les fichiers excel !

que ce soit du .xls ou .xlsx sa rentre dans une espèce de boucle infinie, et faut l'arreter de manière peu scrupuleuse ..

si quelqu'un arrive à trouver le pourquoi du comment ..

Code:
Option Explicit

     Private Declare Function ShellExecute Lib "shell32.dll" Alias _
     "ShellExecuteA" (ByVal hwnd As Long, ByVal lpszOp As _
     String, ByVal lpszFile As String, ByVal lpszParams As String, _
     ByVal lpszDir As String, ByVal fsShowCmd As Long) As Long

     Private Declare Function GetDesktopWindow Lib "user32" () As Long

     Const SW_SHOWNORMAL = 1

     Function StartDoc(DocName As String) As Long
         Dim Scr_hDC As Long
         Scr_hDC = GetDesktopWindow()
         StartDoc = ShellExecute(Scr_hDC, "Open", DocName, _
         "", "C:\", SW_SHOWNORMAL)
     End Function

Sub TESTM()
         Dim r As Long
         Dim ledoc As String
         Dim chemin As String
         chemin = Range("am:an").Find(what:=Range("k6")).Offset(0, 1).Value
         ledoc = chemin
         r = StartDoc(ledoc)
End Sub
 

traputaca

XLDnaute Nouveau
Re : ouverture de fichiers excel par vba

apriori j'ai une erreur là ..

Code:
StartDoc = ShellExecute(Scr_hDC, "Open", DocName, _
         "", "C:\", SW_SHOWNORMAL)

ce code là est il bon ?

avec

Code:
Const SW_SHOWNORMAL = 1

Code:
Private Declare Function ShellExecute Lib "shell32.dll" Alias _
     "ShellExecuteA"


j'arrive vraiment pas à comprendre .. sa met pas une erreeur, juste qu'il plante et c'est impossible d'en sortir ...
 

traputaca

XLDnaute Nouveau
Re : ouverture de fichiers excel par vba

merci de ta réponse,

bien que un petit peu différent, sa ne change rien, j'arrive a ouvrir n'importe quoi .. fichier office, text, internet, photo, explorateur ... mais fichiers excel, sa plante sec ! pas de msgbox d'erreur, juste que sa mouline et sa ouvre rien ...
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re : ouverture de fichiers excel par vba

Bonjour Traputaca, MJ13


Je pense que faire appel à une API rien pour ca c'est un peu lourd, de plus les API 32Bits, dont ShellExecute, ne sont appremment plus supportées en version 64 Bits d'Excel 2010 et 2013

Pourquoi pas tout simplement Workbook.FollowHyperlink, méthode (Faire F1 dans VBE)

Bonne Journée
@+Thierry
 

traputaca

XLDnaute Nouveau
Re : ouverture de fichiers excel par vba

comme la quasi totalité de mon fichiers et construit et marche de cette manière, c'est vrai que je préfererai adapter une manière pour que sa marche ..


apriori on ma dit sur un autre forum que sa pouvait etre du au fait que mon excel est déjà ouvert. Donc il ne se ré-ouvre pas !?

après si vraiment c'est compliquer, j'essaierai avec la méthode des liens hypertexte. j'étais parti la dessus car j'ai lu sur un forum que c'était un peu mieux que les liens hypertexte
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re : ouverture de fichiers excel par vba

Re

La Méthode FollowHyperlink n'est pas un lien HyperTexte à proprement dit. C'est du code en VBA....

Exemple

MyPath = "c:\blah\blah\"
MyFile = "MonFichierEnVarialble.xls"

ActiveWorkbook.FollowHyperlink Address:=MyPath & MyFile, NewWindow:=True


Extrait de l'aide :Cette méthode affiche un document mis en mémoire cache, s'il a déjà été téléchargé. Sinon, cette méthode résout le lien hypertexte, télécharge le document cible et affiche le document dans l'application appropriée

Bonne continuation

@+Thierry
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re : ouverture de fichiers excel par vba

RE Traputaca, le Fil, le Forum

Comme quoi il y a mille et une manières d'arriver à ses fins avec VBA... mais toujours essayer de privilégier les plus simples qui sont souvent aussi les plus pérennes aussi au fil des versions.

Bien à toi et heureux de d'avoir pu t'aiguiller sur une bonne piste.
@+Thierry
 

Discussions similaires

Statistiques des forums

Discussions
314 611
Messages
2 111 140
Membres
111 051
dernier inscrit
MANUREVALAND