IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

FAQ LibreOffice et Apache OpenOfficeConsultez toutes les FAQ

Nombre d'auteurs : 10, nombre de questions : 359, dernière mise à jour : 15 juillet 2017  Ajouter une question

 

Bienvenue sur la FAQ, elle a été réalisée pour répondre aux questions concernant les suites bureautiques Apache OpenOffice (AOO) et LibreOffice (LibO).

Si vous souhaitez participer pour l'améliorer, pour proposer vos contributions ou si vous constatez des erreurs dans cette page, n'hésitez-pas !!! Participez.

SommaireProgrammation OBasicL'interaction avec d'autres applications (18)
précédent sommaire suivant
 

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Sub EnvoiMail 
  Dim Fichier1 As String , Fichier2 As String 
  Dim oSystemMail As Object 
  Dim oMailClient As Object 
  Dim oMailMessage As Object 
  Dim lgMailClientFlags As Long 
  
  lgMailClientFlags = com.sun.star.system.SimpleMailClientFlags.NO_USER_INTERFACE 
  
  'Définit les pièces jointe 
  Fichier1 = ConvertToURL( "C:\Fichier test.ods" )  
  Fichier2 = ConvertToURL( "C:\Documents and Settings\mimi\dossier\Rapport.odt" )  
  
  oSystemMail = createUnoService( "com.sun.star.system.SimpleSystemMail" )  
  oMailClient = oSystemMail.querySimpleMailClient()  
  oMailMessage = oMailClient.createSimpleMailMessage()  
  
  With oMailMessage 
    'Destinataire 
      'Nota1:  
      'Solution non trouvée pour définir plusieurs destinataires dans ce champ 
    .setRecipient( "destinataire1@mail.fr" )  
    'En copie conforme 
    .setCcRecipient( Array("destinataire2@mail.fr" , "destinataire3@mail.fr") )  
    'Le sujet 
    .setSubject( "Rapport mensuel " & Date ) 
    'Les fichiers attachés 
    .setAttachement( Array( Fichier1 , Fichier2 ) ) 
  End With 
  
    'Nota2:  
    'Solution non trouvée pour ajouter du texte dans le corps du message. 
  
  oMailClient.sendSimpleMailMessage( oMailMessage, lgMailClientFlags )  
  
End Sub
Un autre exemple qui permet d'intégrer du texte dans le corps du message, mais sans pièce jointe :
Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
Sub CreerMail_SystemShellExecute()  
  Dim oShell As Object 
  
  oShell = createUnoService("com.sun.star.system.SystemShellExecute")  
  
  '%0D%0A permet d'insérer un saut de ligne dans le corps du message. 
  oShell.Execute("mailto:destinataire@mail.fr" & _ 
    "?subject=test envoi mail" & _ 
    "&Body=Bonjour,%0D%0AJe vous confirme notre rendez-vous de la semaine prochaine.%0D%0A%0D%0ACordialement" & _ 
    "%0D%0A" & Environ("username") , "", 0) 
End Sub
Utilisez cette syntaxe pour définir des multi destinataires:
Code vb : Sélectionner tout
mailto:dest1@mail.fr;dest2@mail.fr

Mis à jour le 26 août 2013 SilkyRoad

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  
Sub EnvoiMail_Outlook( )  
   Dim oObj As Object , AppOutlook As Object 
   Dim oMail As Object 
  
   oObj = createUnoService("com.sun.star.bridge.OleObjectFactory")  
   AppOutlook = oObj.createInstance("Outlook.Application")  
  
  oMail = AppOutlook.CreateItem(0)  
  
  With oMail 
    .To = "destinataire@mail.fr"  
    .Subject = "Rapport mensuel " & Date 
    .Body = "Bonjour," & Chr(10) & _ 
       "Je vous souhaite une bonne lecture." & Chr(10) & Chr(10) & _ 
       "Cordialement" & Chr(10) & _ 
       Environ("username") & Chr(10) & Chr(10)  
    .Attachments.Add("C:\Fichier test.ods") 
    .send  
  End With 
  
End Sub

Mis à jour le 3 août 2013 SilkyRoad

Ces deux exemples montrent comment lancer des application externes.

Code vb : Sélectionner tout
1
2
3
4
5
6
Sub AfficheCalculatriceWindows 
  Dim RetVal As Long 
  
  'RetVal = Shell("C:\windows\System32\calc.exe" , 1 ) 
  RetVal = Shell("calc.exe" , 1 ) 
End Sub
Code vb : Sélectionner tout
1
2
3
4
5
6
7
Sub OuvrirAutreApplication 
  Dim RetVal As Long 
  Dim Cible As String 
  
  Cible = "C:\Program Files\Paint Shop Pro\Psp.exe" 
  RetVal = Shell( Cible , 1 ) 
End Sub
La procédure suivante ouvre un fichier dans l'application définie par défaut (utilisation de SystemShellExecute).
Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
Sub OuvrirFichier()  
  Dim oShell As Object 
  Dim Fichier As String 
  
  Fichier ="C:\Documents and Settings\mimi\dossier\fourmiz.JPG"  
  'Fichier ="C:\windows\system32\BuzzingBee.wav"  
  oShell = createUnoService("com.sun.star.system.SystemShellExecute")  
  
  oShell.execute(ConvertToUrl( Fichier ), "", 0)  
  
End Sub
Pour ouvrir une page html dans FireFox, utilisez :
Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
Sub OuvrirPageHtml_FF 
  Dim RetVal As Long 
  
  '10 : Affichage en plein écran 
  RetVal = Shell("C:\Program Files\Mozilla Firefox\FireFox.exe" _ 
    , 10 , "http://www.developpez.com") 
  
End Sub

Mis à jour le 26 août 2013 SilkyRoad

Cet exemple permet d'ouvrir une page html dans Internet Explorer puis d'en extraire les métas informations :

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Sub metaInformations_PageHtml_IE( ) 
  Dim oObj As Object 
  Dim IE As Object 
  
  oObj = createUnoService( "com.sun.star.bridge.OleObjectFactory") 
  
  IE = oObj.createInstance("InternetExplorer.Application.1") 
  
  'Indiquez False pour masquer la fenêtre Internet Explorer pendant l'opération 
  IE.Visible = True 
  IE.Navigate("http://www.developpez.com/") 
  
  'Attend la fin du chargement de la page avant de poursuivre la procédure 
  Do Until IE.ReadyState = 4 
    Wait(50) 
  Loop 
  
  MaPageHtml = IE.Document 
  'Récupère le titre de la page 
  MsgBox MaPageHtml.Title 
  
  'Boucle sur les méta données de la page 
  For i = 0 To MaPageHtml.all.tags("meta").Length - 1 
    htmlRef = MaPageHtml.all.tags("meta").Item(i) 
    MsgBox htmlRef.content 
  Next i 
  
  'Referme la fenêtre Internet Explorer 
  IE.Quit 
End Sub

Mis à jour le 26 août 2013 SilkyRoad

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
  
Sub RemplissageChamps_PageHtml_IE( ) 
  Dim oObj As Object 
  Dim IE As Object 
  Dim MaPageHtml As Object , Helem As Object 
  
  oObj = createUnoService( "com.sun.star.bridge.OleObjectFactory") 
  
  IE = oObj.createInstance("InternetExplorer.Application.1") 
  
  'Indiquez False pour masquer la fenêtre Internet Explorer pendant l'opération 
  IE.Visible = True 
  IE.Navigate("http://www.MonSiteWeb.fr/") 
  
  'Attend la fin du chargement de la page avant de poursuivre la procédure 
  Do Until IE.ReadyState = 4 
    Wait(100) 
  Loop 
  
  MaPageHtml = IE.Document 
  'A adapter en fonction du type d'objets à manipuler dans la page html 
  Helem = MaPageHtml.getElementsByTagName("input") 
  
  '--- Adaptez le nom des objets contenus dans la page html --- 
    'remplissage champs 
  Helem.Item("Profil").InnerText = "NomUtilisateur" 
  Helem.Item("PassWord").InnerText = "MotDePasse" 
  
    'Déclenchement bouton de connection 
  Helem.Item("NomBouton").Click 
  '------------------------------------------------------------ 
  
End Sub

Mis à jour le 3 août 2013 SilkyRoad

Si Internet Explorer est installé sur le poste, vous pouvez utiliser cette procédure qui récupère la source, ainsi que le contenu texte de la page html.

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub Informations_PageHtml_IE( )  
  Dim oObj As Object  
  Dim IE As Object  
  
  oObj = createUnoService( "com.sun.star.bridge.OleObjectFactory")  
  
  IE = oObj.createInstance("InternetExplorer.Application.1")  
  IE.Visible = True  
  IE.Navigate("http://www.developpez.com")  
  
  'Attend la fin du chargement  
  Do Until IE.ReadyState = 4  
    Wait(50)  
  Loop  
  
  MaPageHtml = IE.Document  
  MsgBox MaPageHtml.Body.innerHTML  
  MsgBox MaPageHtml.Body.innerText  
  
  IE.Quit  
End Sub

Cette autre possibilité ne nécessite pas Internet Explorer. La source de la page html s'affiche dans un classeur :
Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub RecupererSourcePageHtml 
  'Source: linuxtalk 
  Dim oDoc As Object  
  Dim Cible As String  
  Dim Args(1) As New com.sun.star.beans.PropertyValue  
  
  Cible = "http://www.developpez.com"  
  
  Args(0).Name = "FilterOptions"  
  Args(0).Value = "44"  
  Args(1).Name = "FilterName"  
  Args(1).Value = "Text - txt - csv (StarCalc)"  
  
  oDoc = starDeskTop.loadComponentFromURL( Cible , "_blank" , 0 , Args )  
End Sub

Mis à jour le 26 août 2013 SilkyRoad

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
  
Sub Infos_Environnement 
  
MsgBox Environ("USERNAME") 
  
MsgBox Environ("PROCESSOR_IDENTIFIER") 
  
'--- Liste des variables d'environnement --- 
  'ALLUSERSPROFILE 
  'APPDATA 
  'CLIENTNAME 
  'CommonProgramFiles 
  'COMPUTERNAME 
  'ComSpec 
  'FP_NO_HOST_CHECK 
  'HOMEDRIVE 
  'HOMEPATH 
  'LOGONSERVER 
  'NUMBER_OF_PROCESSORS 
  'OS 
  'Path 
  'PATHEXT 
  'PROCESSOR_ARCHITECTURE 
  'PROCESSOR_IDENTIFIER 
  'PROCESSOR_LEVEL 
  'PROCESSOR_REVISION 
  'ProgramFiles 
  'SESSIONNAME 
  'SystemDrive 
  'SystemRoot 
  'TEMP 
  'TMP 
  'USERDOMAIN 
  'USERNAME 
  'USERPROFILE 
  'windir 
  
  'Nota: 
  'Les variables d'environnement dépendent du système d'exploitation utilisé. 
End Sub

Mis à jour le 3 août 2013 SilkyRoad

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  
Sub versionApplication() 
  Dim Fso As Object 
  Dim Appli As String 
  
  Appli = "C:\Program Files\Mozilla Firefox\firefox.exe" 
  
  oObj = createUnoService("com.sun.star.bridge.OleObjectFactory") 
  Fso = oObj.createInstance("Scripting.FileSystemObject")  
  
  If Fso.FileExists(Appli) Then 
    MsgBox Fso.GetBaseName(Appli) & " " & Fso.getFileVersion( Appli ) 
    Else 
    MsgBox "le chemin spécifié n'existe pas:" & Chr(10) & "'" & Appli & "'" 
  End If 
  
End Sub

Mis à jour le 3 août 2013 SilkyRoad

La macro teste l'existence des disques sur le PC (lettres C à J), renvoie un message si un lecteur de CD est trouvé et indique si le lecteur est prêt pour utilisation.

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub LettreLecteurCD() 
  Dim oObj As Object 
  Dim Fso As Object 
  Dim Drv As Integer 
  
  oObj = createUnoService("com.sun.star.bridge.OleObjectFactory") 
  Fso = oObj.createInstance("Scripting.FileSystemObject")  
  
  'Teste les lecteurs C à J 
  For Drv = 67 To 74 
    If FSO.DriveExists( CHR(Drv) ) Then  
      If FSO.Drives.Item( CHR(Drv) ).DriveType = 4 Then  
        MsgBox "Lecteur: " & CHR(Drv) 
          If FSO.Drives.Item( CHR(Drv) ).IsReady Then 
            MsgBox "Disque pret." 
            Else 
            MsgBox "Disque pas pret." 
          End If 
      End If 
    End If 
  Next 
  
End Sub

Mis à jour le 26 août 2013 SilkyRoad

Code vb : Sélectionner tout
1
2
3
4
5
6
7
Declare Function sndPlaySound32 Lib "winmm.dll" Alias _ 
    "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long 
  
  
Sub LireFichier_Wav 
  sndPlaySound32 "C:\windows\system32\BuzzingBee.wav", 1 
End Sub

Et pour arrêter la lecture en cours :
Code vb : Sélectionner tout
1
2
3
Sub ArreterLecture_Wav 
  sndPlaySound32 0 , 0 
End Sub

Mis à jour le 3 août 2013 SilkyRoad

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.