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).
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
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
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).
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
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
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 ?
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
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
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 ?
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
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
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 <DAVY.J-P@wanadoo.fr> 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).
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).