OVH Cloud OVH Cloud

Ouvrir un *.mde, un *.xls

4 réponses
Avatar
DJP
Bonjour =E0 tous,

Habitu=E9 =E0 VBA et ACCESS en particulier, je me "relance"=20
sur VB ... et je ne sais plus comment(et l'ai-je jamais su=20
d'ailleurs) lancer une APPLICATION-ACCESS.MDE ou un=20
CLASSEUR.XLS ... si si ! ne vous moquez pas ...

Quelqu'un pourrait-il me donner le code pour=20

- ouvrir un fichier Excel (en activant Excel par la m=EAme=20
occasion),

et

- ouvrir une appli ACCESS (*.mde) existante (en l'activant=20
aussi).

Merci

DJP

4 réponses

Avatar
Loïc BERTHOLLET
Déclare ça :
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const WM_USER = 1024

' essaie ça :
Dim myXL As Object, myBook As Object, oSheet As Object
Dim ExcelWasRunning As Boolean ' Flag for final release.

'---------- Create or Get Excel Application -------------------------------
' Getobject function called without the first argument returns a reference to an instance
' of the application. If the application isn't running, an error occurs.
On Error Resume Next
Set myXL = GetObject(, "Excel.Application")
ExcelWasRunning = CBool(err.Number = 0)
err.Clear

If ExcelWasRunning Then
' If Microsoft Excel is running, enter it into the Running Object table by using
' the SendMessage API function to enter it in the Running Object Table.
Dim hwnd As Long
hwnd = FindWindow("XLMAIN", 0) ' If Excel is running, this API call returns its handle.
If hwnd <> 0 Then SendMessage hwnd, WM_USER + 18, 0, 0
Else
' If Microsoft Excel is not running: create it
Set myXL = CreateObject("Excel.Application")
End If

' Piège erreur création objet
If err.Number Then
msgbox err.Description, vbError
err.Clear
exit sub
End If


'---------- Ajout nouveau classeur selon modèle spécifié ------------------
Set myBook = myXL.Workbooks.Add(Template:=pathname)
If err.Number Then
msgbox err.Description
err.Clear
exit sub
End If
If myBook Is Nothing Then exit sub

... au boulot...




"DJP" a écrit :

Bonjour à tous,

Habitué à VBA et ACCESS en particulier, je me "relance"
sur VB ... et je ne sais plus comment(et l'ai-je jamais su
d'ailleurs) lancer une APPLICATION-ACCESS.MDE ou un
CLASSEUR.XLS ... si si ! ne vous moquez pas ...

Quelqu'un pourrait-il me donner le code pour

- ouvrir un fichier Excel (en activant Excel par la même
occasion),

et

- ouvrir une appli ACCESS (*.mde) existante (en l'activant
aussi).

Merci

DJP



Avatar
DJP
Merci pour ta piste - Je me mets "au boulot" comme tu
l'indique dans ton message.

Y-a-t'il quelque chose de comparable pour exécuter un
fichier.mde ?

@ +

DJP
Avatar
Loïc BERTHOLLET
pas essayé, mais à mon avis, il doit être facile d'adapter les lignes avec FindWindow, GetObject et CreateObject.

Au fait, précision : ce code est destiné à ouvrir un Excel 97 à 2003 sur un poste client qui a acheté Excel, mais dont tu ne connais pas la version. Il utilise une liaison tradive, ce qui fait qu'il devient très lent et qu'il ne vérifie plus les erreurs de compilation (d'ailleurs tu perds l'Intellisense)...
Si tu es certain de connaitre la version, mieux vaux ajouter une référence à Excel, ce qui te permettra d'utiliser une liaison précoce au fonctionnement bien plus rapide et sécurisée.

"DJP" a écrit :

Merci pour ta piste - Je me mets "au boulot" comme tu
l'indique dans ton message.

Y-a-t'il quelque chose de comparable pour exécuter un
fichier.mde ?

@ +

DJP



Avatar
ng
Salut,

Regarde du coté de 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

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
http://apisvb.europe.webmatrixhosting.net/



DJP a écrit :

Bonjour à tous,

Habitué à VBA et ACCESS en particulier, je me "relance"
sur VB ... et je ne sais plus comment(et l'ai-je jamais su
d'ailleurs) lancer une APPLICATION-ACCESS.MDE ou un
CLASSEUR.XLS ... si si ! ne vous moquez pas ...

Quelqu'un pourrait-il me donner le code pour

- ouvrir un fichier Excel (en activant Excel par la même
occasion),

et

- ouvrir une appli ACCESS (*.mde) existante (en l'activant
aussi).

Merci

DJP