OVH Cloud OVH Cloud

Question pointue ?

4 réponses
Avatar
Gercha
Bonjour,

sous excel, je souhaite vérifier que la messagerie (outlook ou oultook
express) est lancée : utilisation de appactivate.
En cas d'erreur, je lance l'application à l'aide de la commande shell.

Souci : en fonction de la machine sur laquelle le classeur est ouvert, le
chemin de l'application outlook ou outlook express diffère.

Comment lancer à coup sûr cette application.

Existe-t-il un moyen d'envoyer le classeur actif en utilisant les API
windows et non les commandes classiques VBA ?

4 réponses

Avatar
isabelle
bonjour Gercha,

voici un exemple pour trouver le chemin complet de l'application.

Sub ApplicationOutlookExpress()
With Application.FileSearch
.NewSearch
.LookIn = "C:"
.SearchSubFolders = True
.Filename = "msimn.exe"
.MatchAllWordForms = True
.FileType = msoFileTypeAllFiles
If .Execute() > 0 Then
MsgBox "There were " & .FoundFiles.Count & _
" file(s) found."
For i = 1 To .FoundFiles.Count
MsgBox .FoundFiles(i)
Next i
Else
MsgBox "There were no files found."
End If
End With
End Sub

isabelle


Bonjour,

sous excel, je souhaite vérifier que la messagerie (outlook ou oultook
express) est lancée : utilisation de appactivate.
En cas d'erreur, je lance l'application à l'aide de la commande shell.

Souci : en fonction de la machine sur laquelle le classeur est ouvert, le
chemin de l'application outlook ou outlook express diffère.

Comment lancer à coup sûr cette application.

Existe-t-il un moyen d'envoyer le classeur actif en utilisant les API
windows et non les commandes classiques VBA ?


Avatar
Himselff
Dans quel dossier est installer Outlook a part que dans le program file ?
sinon faire un scan du disque C pour trouver le fichier outlook.exe qui me
semblerais une solution pour demarer par le shell ensuite vers la location
ou ce trouve le programme !

public sub lister_les_fichiers_du_disque_c()

x = 1
strpath = "c:*.*"

objfolder = Dir(strpath, vbNormal)

Do While Len(objfolder) > 0
If objfolder <> "." And objfolder <> ".." Then
Cells(x, 1) = objfolder
x = x + 1
End If
End If
objfolder = Dir$()
Loop

end sub

cette petite macro scan le disque c et liste tout les fichiers contenu sans
toutefois aller dans les sous-repertoires mais cest tout de meme un bon
depart !

Bonne Chance!

FRed

"Gercha" wrote in message
news:409faa02$0$20750$
Bonjour,

sous excel, je souhaite vérifier que la messagerie (outlook ou oultook
express) est lancée : utilisation de appactivate.
En cas d'erreur, je lance l'application à l'aide de la commande shell.

Souci : en fonction de la machine sur laquelle le classeur est ouvert, le
chemin de l'application outlook ou outlook express diffère.

Comment lancer à coup sûr cette application.

Existe-t-il un moyen d'envoyer le classeur actif en utilisant les API
windows et non les commandes classiques VBA ?




Avatar
Himselff
hehe 8 secondes trop tard =)

"Himselff" wrote in message
news:uiSnc.40$
Dans quel dossier est installer Outlook a part que dans le program file ?
sinon faire un scan du disque C pour trouver le fichier outlook.exe qui me
semblerais une solution pour demarer par le shell ensuite vers la location
ou ce trouve le programme !

public sub lister_les_fichiers_du_disque_c()

x = 1
strpath = "c:*.*"

objfolder = Dir(strpath, vbNormal)

Do While Len(objfolder) > 0
If objfolder <> "." And objfolder <> ".." Then
Cells(x, 1) = objfolder
x = x + 1
End If
End If
objfolder = Dir$()
Loop

end sub

cette petite macro scan le disque c et liste tout les fichiers contenu
sans

toutefois aller dans les sous-repertoires mais cest tout de meme un bon
depart !

Bonne Chance!

FRed

"Gercha" wrote in message
news:409faa02$0$20750$
Bonjour,

sous excel, je souhaite vérifier que la messagerie (outlook ou oultook
express) est lancée : utilisation de appactivate.
En cas d'erreur, je lance l'application à l'aide de la commande shell.

Souci : en fonction de la machine sur laquelle le classeur est ouvert,
le


chemin de l'application outlook ou outlook express diffère.

Comment lancer à coup sûr cette application.

Existe-t-il un moyen d'envoyer le classeur actif en utilisant les API
windows et non les commandes classiques VBA ?








Avatar
Michel Pierron
Bonjour Gercha;
Ton process est le suivant:
1) Récupérer le nom et le chemin complet de ton logiciel de messagerie par défaut
2) Lister les process en cours et y rechercher une fenêtre contenant le nom
ci-dessus
3) Lancer l'appli si non trouvé;

Process1:
Sub DefaultMailSoftwarePath()
Const Cle1 As String = "HKLMSoftwareClientsMail"
Const Cle2 As String = "shellopencommand"
Dim DefaultMailSoftware$
With CreateObject("WScript.Shell")
DefaultMailSoftware = .regread(Cle1 & .regread(Cle1) & Cle2)
End With
MsgBox DefaultMailSoftware
End Sub

Revient à la charge pour le process2 si tu ne trouves pas.
MP

"Gercha" a écrit dans le message de
news:409faa02$0$20750$
Bonjour,

sous excel, je souhaite vérifier que la messagerie (outlook ou oultook
express) est lancée : utilisation de appactivate.
En cas d'erreur, je lance l'application à l'aide de la commande shell.

Souci : en fonction de la machine sur laquelle le classeur est ouvert, le
chemin de l'application outlook ou outlook express diffère.

Comment lancer à coup sûr cette application.

Existe-t-il un moyen d'envoyer le classeur actif en utilisant les API
windows et non les commandes classiques VBA ?