OVH Cloud OVH Cloud

VBA: lancer un exécutable!

11 réponses
Avatar
Kyvu
Bon dimanche!

J'ai trouv=E9 sur ce forum une proc=E9dure qui permet de=20
lancer un ex=E9cutable via VBA:

Sub Word()
Shell "Winword.exe", vbNormalFocus
End Sub

Mais j'aurais une question subsidiaire: comment ouvrir un=20
ex=E9cutable avec un fichier qui lui est attribu=E9?

Par exemple, lancer Winamp et lui faire jouer directement=20
un mp3 ou ouvrir Word avec un document de notre choix?

Merci pour votre aide.

@micalement.



Kyvu On Line!

10 réponses

1 2
Avatar
Philippe.R
Bonjour Kyvu,
Voici une procédure donnée ici par Chris V en Janvier :
"======================================================================"
Par ex, pour lancer Word, ouvrir le fichier zaza.doc situé à la racine du
disque, et activer la fenêtre du *.doc:
(modifier éventuellement le chemin d'accès de Winword.exe)

Sub ouvreDocWord_zaza()
'ChrisV
MyAppID = Shell _
("C:Program FilesMicrosoft OfficeOfficeWinword.EXE C:zaza.doc", 1)
AppActivate MyAppID
End Sub

"======================================================================="
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Kyvu" a écrit dans le message de news:057a01c36fca$50edbb20$
Bon dimanche!

J'ai trouvé sur ce forum une procédure qui permet de
lancer un exécutable via VBA:

Sub Word()
Shell "Winword.exe", vbNormalFocus
End Sub

Mais j'aurais une question subsidiaire: comment ouvrir un
exécutable avec un fichier qui lui est attribué?

Par exemple, lancer Winamp et lui faire jouer directement
un mp3 ou ouvrir Word avec un document de notre choix?

Merci pour votre aide.

@micalement.



Kyvu On Line!
Avatar
Pierre CFI
bonjour
un espace aprés le nom de l'exe et le chemin + nom du fichier
si le nom de l'exe est pas "connu" il vaut mieux mettre le chemen en plus

--
Pierre CFI
MVP Microsoft Access

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Kyvu" a écrit dans le message de news: 057a01c36fca$50edbb20$
Bon dimanche!

J'ai trouvé sur ce forum une procédure qui permet de
lancer un exécutable via VBA:

Sub Word()
Shell "Winword.exe", vbNormalFocus
End Sub

Mais j'aurais une question subsidiaire: comment ouvrir un
exécutable avec un fichier qui lui est attribué?

Par exemple, lancer Winamp et lui faire jouer directement
un mp3 ou ouvrir Word avec un document de notre choix?

Merci pour votre aide.

@micalement.



Kyvu On Line!
Avatar
Clément Marcotte
Bonjour,

Juste pour le fun.

Par exemple, lancer Winamp et lui faire jouer directement
un mp3



Pour cela tu peux aussi faire un UserForm et installer l'OCX de
Windows Media Player. Pour peu que tu appelles l'UserForm en mode
non-modal, tu vas pouvoir continuer à travailler. ;-)

P.S. Si cela intéresse quelqu'un, je dois avoir cela, en très
rudimentaire, à quelque part. (Pas sur que ce soit pour Excel.
Peut-être pour Word ou PowerPoint.)

P.P.S. L'OCX en question joue les mp3 beaucoup mieux que WMP complet.

Avatar
Jean-François Aubert
Bonjour,
Dans le même ordre d'idée, quel serai la syntaxe pour lancer l'application LotusNotes, plus
précisement sa fenêtre permettant de se "Log On".(WinNT, Excel97)
avec les paramètres suivants(récupérés dans les propriétés d'un raccourci de cette application):

' Target "C:Program Filesnotesnotes.exe"
' start in h:systemnotes

Merci
--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"Kyvu" a écrit dans le message de news:057a01c36fca$50edbb20$
Bon dimanche!

J'ai trouvé sur ce forum une procédure qui permet de
lancer un exécutable via VBA:

Sub Word()
Shell "Winword.exe", vbNormalFocus
End Sub

Mais j'aurais une question subsidiaire: comment ouvrir un
exécutable avec un fichier qui lui est attribué?

Par exemple, lancer Winamp et lui faire jouer directement
un mp3 ou ouvrir Word avec un document de notre choix?

Merci pour votre aide.

@micalement.



Kyvu On Line!
Avatar
Philippe.R
Bonsoir Jean-François,

Il y avait ce message d'Eric Renaud, le 13 Mars ; cela te permettra peut être d'avancer ?

"======================================================================="
Bonjour,
Cherchant des infos sur ce sujet, j'en ai trouvé sur le site de Frédéric
Signonneau.
J'ai choisi un exemple et je l'ai testé et adapté à mon besoin
(multi-diffusion)
Je vous le livre tel quel, cela pourra intéresser certains d'entre vous.

' Envoyer un mail avec Lotus Notes (y compris avec pièce jointe)

Dim objNotesSession As Object
Dim objNotesMailFile As Object
Dim objNotesDocument As Object
Dim objNotesField As Object

Function SendMail()
'mpep, auteur inconnu
On Error GoTo SendMailError
' Plage d'adresses e-mail dans une feuille de calcul
For Each Cell In Range("Adresses")
' Cas avec la plage
EMailSendTo = Cell.Value ' Required - Send to address
' Cas avec une seule adresse
'EMailSendTo = "" ' Required - Send to address

EMailCCTo = "" '' Optional
EMailBCCTo = "" '' Optional
EmailSubject = "Envoi d'un document joint" ' Optional

''Establish Connection to Notes
Set objNotesSession = CreateObject("Notes.NotesSession")

''Establish Connection to Mail File
'' .GETDATABASE("SERVER", "FILE")
Set objNotesMailFile = objNotesSession.GETDATABASE("", "")

''Open Mail
objNotesMailFile.OPENMAIL

''Create New Memo
Set objNotesDocument = objNotesMailFile.CREATEDOCUMENT

''Create 'Subject Field'
Set objNotesField = objNotesDocument.APPENDITEMVALUE("Subject",
EmailSubject)

''Create 'Send To' Field
Set objNotesField = objNotesDocument.APPENDITEMVALUE("SendTo",
EMailSendTo)

''Create 'Copy To' Field
Set objNotesField = _
objNotesDocument.APPENDITEMVALUE("CopyTo", EMailCCTo)

''Create 'Blind Copy To' Field
Set objNotesField = _
objNotesDocument.APPENDITEMVALUE("BlindCopyTo", EMailBCCTo)

''Create 'Body' of memo
Set objNotesField = objNotesDocument.CREATERICHTEXTITEM("Body")

With objNotesField
.APPENDTEXT "Cet e-mail a été généré par un processus
automatique."
.ADDNEWLINE 1
.APPENDTEXT "This e-mail is generated by an automated process."
'.APPENDTEXT "Please follow established contact " & _
"procedures should you have any questions."
.ADDNEWLINE 2
.APPENDTEXT "Cordialement"
.ADDNEWLINE 1
.APPENDTEXT "Eric RENAUD"
End With

''Attach the file --1454 indicate a file attachment
objNotesField = _
objNotesField.EMBEDOBJECT(1454, "", ActiveWorkbook.FullName)

''Send the e-mail
objNotesDocument.SEND (0)
Next Cell
''Release storage
Set objNotesSession = Nothing
Set bjNotesSession = Nothing
Set objNotesMailFile = Nothing
Set objNotesDocument = Nothing
Set objNotesField = Nothing

''Set return code
SendMail = True
Exit Function

SendMailError:
Msg = "Error # " & Str(Err.Number) & " was generated by " _
& Err.Source & Chr(13) & Err.Description
MsgBox Msg, , "Error", Err.HelpFile, Err.HelpContext
SendMail = False
End Function

--
------------------------
Cordialement
Eric RENAUD
http://www.erenaud.fr.fm
"========================================================================"

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Jean-François Aubert" <à a écrit dans le message de
news:
Bonjour,
Dans le même ordre d'idée, quel serai la syntaxe pour lancer l'application LotusNotes, plus
précisement sa fenêtre permettant de se "Log On".(WinNT, Excel97)
avec les paramètres suivants(récupérés dans les propriétés d'un raccourci de cette application):

' Target "C:Program Filesnotesnotes.exe"
' start in h:systemnotes

Merci
--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"Kyvu" a écrit dans le message de news:057a01c36fca$50edbb20$
Bon dimanche!

J'ai trouvé sur ce forum une procédure qui permet de
lancer un exécutable via VBA:

Sub Word()
Shell "Winword.exe", vbNormalFocus
End Sub

Mais j'aurais une question subsidiaire: comment ouvrir un
exécutable avec un fichier qui lui est attribué?

Par exemple, lancer Winamp et lui faire jouer directement
un mp3 ou ouvrir Word avec un document de notre choix?

Merci pour votre aide.

@micalement.



Kyvu On Line!




Avatar
Philippe.R
Désolé, Jean-François, de n'avoir pu mieux faire.
Depuis le temps que je le dis (et l'ai quasiment promis à Frédéric Sigonneau), je finirai bien par
trouver le temps de tester ces différentes procédures au boulot, où Lotus Notes est l'outil de
messagerie et d'agenda (entre autre)
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Jean-François Aubert" <à a écrit dans le message de
news:
Salut Philippe,

Je te remercie de la peine que tu t'es donné à me répondre.

Je possède déjà cette macro, et d'autres du même acabit.
le problème est que cela coince à la ligne:
Set objNotesSession = CreateObject("Notes.NotesSession")
et donne une erreur du genre:

"un contrôle ActiveX ne peut ...je ne sais plus quoi",
si une session n'est pas déjà ouverte.
Alors j'ai bidouillé une combine avec un lien hypertexte MailTo (création d'un message E-Mail bidon)
pour forcer l'ouverture d'une session de ce sacré LotusNotes(j'utilise Notes pour envoyer des SMS).

Ma question était pour ouvrir Notes d'une manière plus propre, sans ce message E-Mail bidon.

J'espérais que quelqu'un me donne une syntaxe des paramètres, du genre:
MyAppID = Shell _
("C:Program Filesnotesnotes.exe h:systemnotes)

afin de combiner la Target "C:Program Filesnotesnotes.exe"
et le start in h:systemnotes





--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"Philippe.R" a écrit dans le message de
news:u$bbrc%
Bonsoir Jean-François,

Il y avait ce message d'Eric Renaud, le 13 Mars ; cela te permettra peut être d'avancer ?

"======================================================================="
Bonjour,
Cherchant des infos sur ce sujet, j'en ai trouvé sur le site de Frédéric
Signonneau.
J'ai choisi un exemple et je l'ai testé et adapté à mon besoin
(multi-diffusion)
Je vous le livre tel quel, cela pourra intéresser certains d'entre vous.

' Envoyer un mail avec Lotus Notes (y compris avec pièce jointe)

Dim objNotesSession As Object
Dim objNotesMailFile As Object
Dim objNotesDocument As Object
Dim objNotesField As Object

Function SendMail()
'mpep, auteur inconnu
On Error GoTo SendMailError
' Plage d'adresses e-mail dans une feuille de calcul
For Each Cell In Range("Adresses")
' Cas avec la plage
EMailSendTo = Cell.Value ' Required - Send to address
' Cas avec une seule adresse
'EMailSendTo = "" ' Required - Send to address

EMailCCTo = "" '' Optional
EMailBCCTo = "" '' Optional
EmailSubject = "Envoi d'un document joint" ' Optional

''Establish Connection to Notes
Set objNotesSession = CreateObject("Notes.NotesSession")

''Establish Connection to Mail File
'' .GETDATABASE("SERVER", "FILE")
Set objNotesMailFile = objNotesSession.GETDATABASE("", "")

''Open Mail
objNotesMailFile.OPENMAIL

''Create New Memo
Set objNotesDocument = objNotesMailFile.CREATEDOCUMENT

''Create 'Subject Field'
Set objNotesField = objNotesDocument.APPENDITEMVALUE("Subject",
EmailSubject)

''Create 'Send To' Field
Set objNotesField = objNotesDocument.APPENDITEMVALUE("SendTo",
EMailSendTo)

''Create 'Copy To' Field
Set objNotesField = _
objNotesDocument.APPENDITEMVALUE("CopyTo", EMailCCTo)

''Create 'Blind Copy To' Field
Set objNotesField = _
objNotesDocument.APPENDITEMVALUE("BlindCopyTo", EMailBCCTo)

''Create 'Body' of memo
Set objNotesField = objNotesDocument.CREATERICHTEXTITEM("Body")

With objNotesField
.APPENDTEXT "Cet e-mail a été généré par un processus
automatique."
.ADDNEWLINE 1
.APPENDTEXT "This e-mail is generated by an automated process."
'.APPENDTEXT "Please follow established contact " & _
"procedures should you have any questions."
.ADDNEWLINE 2
.APPENDTEXT "Cordialement"
.ADDNEWLINE 1
.APPENDTEXT "Eric RENAUD"
End With

''Attach the file --1454 indicate a file attachment
objNotesField = _
objNotesField.EMBEDOBJECT(1454, "", ActiveWorkbook.FullName)

''Send the e-mail
objNotesDocument.SEND (0)
Next Cell
''Release storage
Set objNotesSession = Nothing
Set bjNotesSession = Nothing
Set objNotesMailFile = Nothing
Set objNotesDocument = Nothing
Set objNotesField = Nothing

''Set return code
SendMail = True
Exit Function

SendMailError:
Msg = "Error # " & Str(Err.Number) & " was generated by " _
& Err.Source & Chr(13) & Err.Description
MsgBox Msg, , "Error", Err.HelpFile, Err.HelpContext
SendMail = False
End Function

--
------------------------
Cordialement
Eric RENAUD
http://www.erenaud.fr.fm
"========================================================================"

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Jean-François Aubert" <à a écrit dans le message de
news:
Bonjour,
Dans le même ordre d'idée, quel serai la syntaxe pour lancer l'application LotusNotes, plus
précisement sa fenêtre permettant de se "Log On".(WinNT, Excel97)
avec les paramètres suivants(récupérés dans les propriétés d'un raccourci de cette application):

' Target "C:Program Filesnotesnotes.exe"
' start in h:systemnotes

Merci
--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"Kyvu" a écrit dans le message de
news:057a01c36fca$50edbb20$


Bon dimanche!

J'ai trouvé sur ce forum une procédure qui permet de
lancer un exécutable via VBA:

Sub Word()
Shell "Winword.exe", vbNormalFocus
End Sub

Mais j'aurais une question subsidiaire: comment ouvrir un
exécutable avec un fichier qui lui est attribué?

Par exemple, lancer Winamp et lui faire jouer directement
un mp3 ou ouvrir Word avec un document de notre choix?

Merci pour votre aide.

@micalement.



Kyvu On Line!












Avatar
Alain CROS
Bonjour.

Je n'ai pas Notes pour tester mais peut être ...

Sub OuvreNotes()
Dim Chemin As String, Lecteur as String
Chemin = CurDir
Lecteur = Left(Chemin, 1)
ChDrive "h"
ChDir "h:systemnotes"
MyAppID = Shell ("C:Program Filesnotesnotes.exe", 1)
'Traitement pour envoyer le mail
AppActivate MyAppID
ChDrive Lecteur
ChDir Chemin
End Sub

Alain CROS.

"Jean-François Aubert" <à a écrit dans le message de news:
Salut Philippe,

Je te remercie de la peine que tu t'es donné à me répondre.

Je possède déjà cette macro, et d'autres du même acabit.
le problème est que cela coince à la ligne:
Set objNotesSession = CreateObject("Notes.NotesSession")
et donne une erreur du genre:

"un contrôle ActiveX ne peut ...je ne sais plus quoi",
si une session n'est pas déjà ouverte.
Alors j'ai bidouillé une combine avec un lien hypertexte MailTo (création d'un message E-Mail bidon)
pour forcer l'ouverture d'une session de ce sacré LotusNotes(j'utilise Notes pour envoyer des SMS).

Ma question était pour ouvrir Notes d'une manière plus propre, sans ce message E-Mail bidon.

J'espérais que quelqu'un me donne une syntaxe des paramètres, du genre:
MyAppID = Shell _
("C:Program Filesnotesnotes.exe h:systemnotes)

afin de combiner la Target "C:Program Filesnotesnotes.exe"
et le start in h:systemnotes





--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"Philippe.R" a écrit dans le message de
news:u$bbrc%
Bonsoir Jean-François,

Il y avait ce message d'Eric Renaud, le 13 Mars ; cela te permettra peut être d'avancer ?

"======================================================================="
Bonjour,
Cherchant des infos sur ce sujet, j'en ai trouvé sur le site de Frédéric
Signonneau.
J'ai choisi un exemple et je l'ai testé et adapté à mon besoin
(multi-diffusion)
Je vous le livre tel quel, cela pourra intéresser certains d'entre vous.

' Envoyer un mail avec Lotus Notes (y compris avec pièce jointe)

Dim objNotesSession As Object
Dim objNotesMailFile As Object
Dim objNotesDocument As Object
Dim objNotesField As Object

Function SendMail()
'mpep, auteur inconnu
On Error GoTo SendMailError
' Plage d'adresses e-mail dans une feuille de calcul
For Each Cell In Range("Adresses")
' Cas avec la plage
EMailSendTo = Cell.Value ' Required - Send to address
' Cas avec une seule adresse
'EMailSendTo = "" ' Required - Send to address

EMailCCTo = "" '' Optional
EMailBCCTo = "" '' Optional
EmailSubject = "Envoi d'un document joint" ' Optional

''Establish Connection to Notes
Set objNotesSession = CreateObject("Notes.NotesSession")

''Establish Connection to Mail File
'' .GETDATABASE("SERVER", "FILE")
Set objNotesMailFile = objNotesSession.GETDATABASE("", "")

''Open Mail
objNotesMailFile.OPENMAIL

''Create New Memo
Set objNotesDocument = objNotesMailFile.CREATEDOCUMENT

''Create 'Subject Field'
Set objNotesField = objNotesDocument.APPENDITEMVALUE("Subject",
EmailSubject)

''Create 'Send To' Field
Set objNotesField = objNotesDocument.APPENDITEMVALUE("SendTo",
EMailSendTo)

''Create 'Copy To' Field
Set objNotesField = _
objNotesDocument.APPENDITEMVALUE("CopyTo", EMailCCTo)

''Create 'Blind Copy To' Field
Set objNotesField = _
objNotesDocument.APPENDITEMVALUE("BlindCopyTo", EMailBCCTo)

''Create 'Body' of memo
Set objNotesField = objNotesDocument.CREATERICHTEXTITEM("Body")

With objNotesField
.APPENDTEXT "Cet e-mail a été généré par un processus
automatique."
.ADDNEWLINE 1
.APPENDTEXT "This e-mail is generated by an automated process."
'.APPENDTEXT "Please follow established contact " & _
"procedures should you have any questions."
.ADDNEWLINE 2
.APPENDTEXT "Cordialement"
.ADDNEWLINE 1
.APPENDTEXT "Eric RENAUD"
End With

''Attach the file --1454 indicate a file attachment
objNotesField = _
objNotesField.EMBEDOBJECT(1454, "", ActiveWorkbook.FullName)

''Send the e-mail
objNotesDocument.SEND (0)
Next Cell
''Release storage
Set objNotesSession = Nothing
Set bjNotesSession = Nothing
Set objNotesMailFile = Nothing
Set objNotesDocument = Nothing
Set objNotesField = Nothing

''Set return code
SendMail = True
Exit Function

SendMailError:
Msg = "Error # " & Str(Err.Number) & " was generated by " _
& Err.Source & Chr(13) & Err.Description
MsgBox Msg, , "Error", Err.HelpFile, Err.HelpContext
SendMail = False
End Function

--
------------------------
Cordialement
Eric RENAUD
http://www.erenaud.fr.fm
"========================================================================"

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Jean-François Aubert" <à a écrit dans le message de
news:
Bonjour,
Dans le même ordre d'idée, quel serai la syntaxe pour lancer l'application LotusNotes, plus
précisement sa fenêtre permettant de se "Log On".(WinNT, Excel97)
avec les paramètres suivants(récupérés dans les propriétés d'un raccourci de cette application):

' Target "C:Program Filesnotesnotes.exe"
' start in h:systemnotes

Merci
--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"Kyvu" a écrit dans le message de
news:057a01c36fca$50edbb20$


Bon dimanche!

J'ai trouvé sur ce forum une procédure qui permet de
lancer un exécutable via VBA:

Sub Word()
Shell "Winword.exe", vbNormalFocus
End Sub

Mais j'aurais une question subsidiaire: comment ouvrir un
exécutable avec un fichier qui lui est attribué?

Par exemple, lancer Winamp et lui faire jouer directement
un mp3 ou ouvrir Word avec un document de notre choix?

Merci pour votre aide.

@micalement.



Kyvu On Line!












Avatar
Clément Marcotte
Bonjour,

En principe la documentation technique de Notes est dans ce coin-là.
(Mais comme je n'ai pas Notes, je ne sais pas si cela peut servir à
quelqu'un.)


http://www-10.lotus.com/ldd/doc




"Jean-François Aubert" <à a écrit dans le
message de news:
Bonjour,
Dans le même ordre d'idée, quel serai la syntaxe pour lancer
l'application LotusNotes, plus

précisement sa fenêtre permettant de se "Log On".(WinNT, Excel97)
avec les paramètres suivants(récupérés dans les propriétés d'un
raccourci de cette application):


' Target "C:Program Filesnotesnotes.exe"
' start in h:systemnotes

Merci
--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"Kyvu" a écrit dans le message de
news:057a01c36fca$50edbb20$

Bon dimanche!

J'ai trouvé sur ce forum une procédure qui permet de
lancer un exécutable via VBA:

Sub Word()
Shell "Winword.exe", vbNormalFocus
End Sub

Mais j'aurais une question subsidiaire: comment ouvrir un
exécutable avec un fichier qui lui est attribué?

Par exemple, lancer Winamp et lui faire jouer directement
un mp3 ou ouvrir Word avec un document de notre choix?

Merci pour votre aide.

@micalement.



Kyvu On Line!




Avatar
Jean-François Aubert
Philippe,
Merci encore.

PS: le jour où tu auras testé, fais-moi / nous signe.
--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"Philippe.R" a écrit dans le message de
news:%
Désolé, Jean-François, de n'avoir pu mieux faire.
Depuis le temps que je le dis (et l'ai quasiment promis à Frédéric Sigonneau), je finirai bien par
trouver le temps de tester ces différentes procédures au boulot, où Lotus Notes est l'outil de
messagerie et d'agenda (entre autre)
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002



Avatar
Jean-François Aubert
Merci Alain,
je teste dès que peux au boulot.


--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"Alain CROS" a écrit dans le message de news:
Bonjour.

Je n'ai pas Notes pour tester mais peut être ...

Sub OuvreNotes()
Dim Chemin As String, Lecteur as String
Chemin = CurDir
Lecteur = Left(Chemin, 1)
ChDrive "h"
ChDir "h:systemnotes"
MyAppID = Shell ("C:Program Filesnotesnotes.exe", 1)
'Traitement pour envoyer le mail
AppActivate MyAppID
ChDrive Lecteur
ChDir Chemin
End Sub

Alain CROS.


1 2