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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Vb+openoffice base


Sujet :

VB 6 et antérieur

  1. #1
    Membre habitué
    Inscrit en
    Novembre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 9
    Par défaut Vb+openoffice base
    C'est possible ?Je suis quand meme debutant en vb.

    Et desoler si ya un autre thread sur ce sujet j'ai pas trouver avec le search

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonsoir

    ton message est pour le moins évasif . j'ai interprété ta question : est il possible de piloter Open Office depuis VB? oui c'est possible

    ci dessous quelques exemples pour piloter Open Office depuis Excel ( en Vb c'est pratiquement identique )


    Ouvrir un document Writer existant et insérer des données ,à la suite de la dernière ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Sub ouvrirSessionOpenOffice()
    'macro testée avec Excel2002 et OOo 1.1.0
    Dim serviceManager As Object, oText As Object, oCursor As Object
    Dim Desktop As Object, Document As Object
    Dim Chemin As String, Fichier As String
    Dim args()
    'adapter le chemin et le nom du fichier en fonction du projet
    Chemin = "file:///" & thisWorkbook.Path
    Chemin = Application.worksheetFunction.Substitute(Chemin, "\", "/")
    Fichier = Chemin & "/test.sxw"
    Set serviceManager = createObject("com.sun.star.serviceManager")
    Set Desktop = serviceManager.createInstance("com.sun.star.frame.Desktop")
    Set Document = Desktop.loadComponentFromURL(Fichier, "_blank", 0, args)
    Set oText = Document.getText()
    Set oCursor = oText.createTextCursor
    oCursor.gotoEnd (False)
    oText.insertString oCursor, "Le forum Developpez.com & OOo", False
    End Sub


    Copier une plage de cellules Excel et la coller dans un nouveau document Writer ,puis sauvegarder le document

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub creerNouveauDocumentWriter()
    Dim oServiceManager As Object, oDispatcher As Object
    Dim Desktop As Object, Document As Object
    Dim args()
    Dim Chemin As String
    Range("A1:A5").Copy
    Set oServiceManager = createObject("com.sun.star.serviceManager")
    Set Desktop = oServiceManager.createInstance("com.sun.star.frame.Desktop")
    Set Document = Desktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, args)
    Set oDispatcher = oServiceManager.createInstance("com.sun.star.frame. DispatchHelper")
    oDispatcher.executeDispatch Document.currentController.Frame, ".uno:Paste", "", 0, Array()
    Chemin = Application.worksheetFunction.Substitute(thisWorkbook.Path, "\", "/")
    Chemin = "file:///" & Chemin & "/essai.sxw"
    Document.storeToURL Chemin, args()
    Document.Close (True)
    End Sub


    Compter le nombre de documents Open Office ouverts et afficher le format des documents non enregistrés

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    41
    Sub compterNombreDocumentsOpenOfficeOuverts()
    'macro testée avec Excel2002 et OOo 1.1.0
    'Dim oComponents As Object, Cible As Object
    Dim Desktop As Object, oServiceManager As Object, oComponent As Object
    Dim Nombre As Byte
    Dim listeDoc As String, leFichier As String
    On Error Resume Next
    Set oServiceManager = createObject("com.sun.star.serviceManager")
    Set Desktop = oServiceManager.createInstance("com.sun.star.frame.Desktop")
    Set oComponents = Desktop.getComponents()
    Set Cible = oComponents.createEnumeration()
    Do While Cible.hasMoreElements()
    Set oComponent = Cible.nextElement()
    leFichier = oComponent.getLocation()
    If Err.Number = 0 Then
    If leFichier = "" Then
    leFichier = "Document ( " & typeDoc(oComponent) & " ) non enregistré"
    'Else
    'leFichier = Right(leFichier, Len(leFichier) - 8)
    'leFichier = Application.worksheetFunction.Substitute(leFichier, "\", "/")
    'leFichier = Application.worksheetFunction.Substitute(leFichier, "%20", " ")
    End If
    listeDoc = listeDoc & leFichier & vbLf
    Nombre = Nombre + 1
    End If
    Err.Number = 0
    Loop
    msgBox "Nombre de documents Open Office ouverts : " & Nombre & vbLf & vbLf & listeDoc
    End Sub
     
    Function typeDoc(Obj As Object) As String
    'adapté d'une procédure de Laurent Godard
    If Obj.supportsService("com.sun.star.text.TextDocument") = True Then typeDoc = "Writer"
    If Obj.supportsService("com.sun.star.sheet.SpreadsheetDocument") = True Then typeDoc = "Calc"
    If Obj.supportsService("com.sun.star.presentation.PresentationDocument") = True Then
    'un document Sxi retourne True à la fois pour impress et draw
    typeDoc = "Impress"
    Exit Function
    End If
    If Obj.supportsService("com.sun.star.drawing.DrawingDocument") = True Then typeDoc = "Draw"
    End Function


    Ouvrir un document Open Office , protégé par mot de passe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub ouvrirDocOpenOfficeProtegeParPassword()
    'macro testée avec Excel2002 et OOo 1.1.0
    'ouvrir un document Writer protégé par mot de passe
    Dim serviceManager As Object, Desktop As Object, Document As Object
    Dim Chemin As String, Fichier As String
    Dim Args(0) As Object
    'adapter le chemin et le nom du fichier en fonction du projet :
    'dans l'exemple le document OOo , nommé test2.sxw est dans le même
    'répertoire que le classseur Excel contenant cette macro
    Chemin = "file:///" & thisWorkbook.Path
    Chemin = Application.worksheetFunction.Substitute(Chemin, "\", "/")
    Fichier = Chemin & "/test2.sxw"
    Set serviceManager = createObject("com.sun.star.serviceManager")
    Set Desktop = serviceManager.createInstance("com.sun.star.frame.Desktop")
    Set Args(0) = serviceManager.Bridge_getStruct("com.sun.star.beans.PropertyValue")
    Args(0).Name = "Password"
    Args(0).Value = "1234"
    Set Document = Desktop.loadComponentFromURL(Fichier, "_blank", 0, Args())
    End Sub


    Fermer toutes les fenêtres Open office ouvertes , sans sauvegarde des documents

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub fermerToutesLesFenetresOOoSansSauvegarde()
    Dim serviceManager As Object, Desktop As Object
    Dim i As Byte
    Set serviceManager = createObject("com.sun.star.serviceManager")
    Set Desktop = serviceManager.createInstance("com.sun.star.frame.Desktop")
    For i = 1 To Desktop.Frames.getCount 'compte le nombre de fenetres OOo ouvertes
    Desktop.getFrames.getByIndex(0).Close (False)
    Next i
    End Sub


    Afficher les boites de dialogue intégréees Open Office depuis Excel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub afficherBoiteDialoguesIntegreesOOo()
    'macro testée avec Excel2002 et OOo 1.1.0
    'exemple: boite de dialogue "recherche répertoire"
    Dim oFolderDialog As Object, serviceManager As Object
    Dim i As Integer
    Set serviceManager = createObject("com.sun.star.serviceManager")
    Set oFolderDialog = serviceManager.createInstance("com.sun.star.ui.dialogs.FolderPicker")
    oFolderDialog.setDisplayDirectory ("C:\Documents and Settings")'adapter le chemin par défaut
    i = oFolderDialog.Execute()
    If i = 1 Then msgBox oFolderDialog.getDirectory
    End Sub

    Sauvegarder un document OOo depuis excel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 Sauvegardes_OOo_XLs()
    'créer un nouveau classeur OOo Calc
    'y insérer les données de la plage A1:A10(du classeur contenant cette macro)
    'sauvegarder au format .sxc
    'puis faire une copie de sauvegarde au format Excel
    Dim Args(), Args2(0)
    Dim oServ As Object, oDesk As Object, oSheet As Object, Doc As Object
    Dim Valeur As String
    Dim i As Byte
     
    Set oServ = CreateObject("com.sun.star.ServiceManager")
    Set oDesk = oServ.createInstance("com.sun.star.frame.Desktop")
     
    Set Doc = oDesk.loadComponentFromURL("private:factory/scalc", "_blank", 0, Args)
    Set oSheet = Doc.getSheets().getByIndex(0)
     
    For i = 0 To 9
    Valeur = Cells(i + 1, 1)
    oSheet.getCellByPosition(0, i).SetString (Valeur)
    Next i
     
    Doc.StoreAsURL "file:///C:/monClasseur.sxc", Args
     
    Set Args2(0) = oServ.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
    Args2(0).Name = "FilterName"
    Args2(0).Value = "MS Excel 97"
     
    Doc.StoreToURL "file:///C:/monClasseur.xls", Args2
    Doc.Close (True)
    End Sub


    Redimensionner une fenetre OOo depuix Excel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub redimensionnerFenetre_OOo()
    Dim ServiceManager As Object
    Dim Desktop As Object, Document As Object
    Dim Args()
    Dim X As Object
     
    Set ServiceManager = CreateObject("com.sun.star.ServiceManager")
    Set Desktop = ServiceManager.createInstance("com.sun.star.frame.Desktop")
    'creation d'un document Writer
    Set Document = Desktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, Args)
     
    Set X = Desktop.getFrames().getByIndex(0).getContainerWindow()
    'redimensionne la fenetre
    'Left - Top - Width - Height
    X.setPosSize 0, 50, 700, 500, 15
    End Sub


    cordialement
    michel

  3. #3
    Membre habitué
    Inscrit en
    Novembre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 9
    Par défaut
    Merci Michel Je vais essayer de me débrouiller avec ca.


    A+!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [OpenOffice Base] Connaitriez-vous un bon tutoriel ?
    Par Mut dans le forum Autres SGBD
    Réponses: 9
    Dernier message: 06/05/2010, 16h02
  2. Sqlite sous OpenOffice (Base)
    Par Guillaume M dans le forum SQLite
    Réponses: 4
    Dernier message: 10/07/2008, 00h53
  3. MySQL et OpenOffice Base
    Par Zarvox dans le forum Débuter
    Réponses: 0
    Dernier message: 06/03/2008, 14h38
  4. OpenOffice Base et VB6
    Par phiric dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 28/08/2006, 09h20
  5. [OpenOffice]Base - DML
    Par Kcirtap dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 22/12/2005, 15h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo