OpenOffice OLE [Résolu]

JENOO 10 Messages postés mercredi 5 mars 2003Date d'inscription 8 janvier 2006 Dernière intervention - 8 janv. 2006 à 12:17 - Dernière réponse : the_loofox 1 Messages postés jeudi 2 décembre 2004Date d'inscription 19 avril 2007 Dernière intervention
- 19 avril 2007 à 09:34
Bonjour,

Je travaille sur des projets VB6 qui utilisent Word et Excel pour les impressions de docs.
J'ai commencé depuis peu à utiliser OpenOffice 2.0 et je recherche des exemples de codes me permettant de remplacer les codes VBA suivants :

' Orientation Paysage
ObjFeuilExcel.ActiveSheet.PageSetup.Orientation = XL_OrientPaysage

' Ouverture d'un fichier texte au format csv
ObjFeuilExcel.Workbooks.OpenText FileName:=Tmp_File, Origin:=XL_Windows, StartRow:=1, DataType:=XL_Delimited, TextQualifier:=XL_DoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, Space:=False, Other:=False, TrailingMinusNumbers:=True

' On écrit le titre du document dans la zone en-tête
ObjFeuilExcel.ActiveSheet.PageSetup.CenterHeader = "&" & """" & IIf(Trim(LstFontsTitle.Text) <> "", Trim(LstFonts.Text), "Arial") & ",Gras" & """" & "&" & IIf(Trim(LstSizeTitle) <> "", Trim(LstSizeTitle), "") & Trim(TitreDocument.Text) & IIf(Trim(DateEdition.Text) <> "", " le " & Trim(DateEdition.Text), "")

' N° de Page dans la zone pied de page
ObjFeuilExcel.ActiveSheet.PageSetup.CenterFooter = "Page &P"

' Ajuster à 1 page en largeur
ObjFeuilExcel.ActiveSheet.PageSetup.PrintArea = ""
ObjFeuilExcel.ActiveSheet.PageSetup.Zoom = False
ObjFeuilExcel.ActiveSheet.PageSetup.FitToPagesWide = 1
ObjFeuilExcel.ActiveSheet.PageSetup.FitToPagesTall = False

Si quelqu'un à des informations à ce sujet je lui serait très reconnaissant.

D'avance merci.

<S>Nicolas</S>
Afficher la suite 

2 réponses

Meilleure réponse
michelxld 402 Messages postés vendredi 6 août 2004Date d'inscription 12 octobre 2008 Dernière intervention - 8 janv. 2006 à 15:35
3
Merci
bonjour

j'espere que cet exemple pourra t'aider
cette macro pilote un classeur OOo depuis Excel , mais je ne pense pas qu'il y ai une grande différence en VB6 (si ce n'est la substitution des \ par des /)

Sub modificationEnteteClasseur_OpenOffice()
'MichelXld le 28.09.2005
'Testé avec Excel2002 et OOo 2.0
Dim serviceManager As Object
Dim Desktop As Object, Document As Object
Dim Chemin As String, Fichier As String
Dim args()
Dim Feuille As Object, leStyle As Object, Entete As Object, piedPage As Object
Dim oText As Object, Curseur As Object, leChamp As Object


Chemin = "[file:///C:/Documents file:///C:\Documents] and Settings\michel\excel\OOoClasseur.ods"
Fichier = Application.WorksheetFunction.Substitute(Chemin, "", "/")


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 Feuille = Document.CurrentController.getActiveSheet
Set leStyle = Document.StyleFamilies.getByName("PageStyles").getByName(Feuille.PageStyle)


'infos dans l'entete
Set Entete = leStyle.RightPageHeaderContent
Set oText = Entete.CenterText
oText.setString ("") 'RAZ entete


Set Curseur = oText.CreateTextCursor()
Curseur.CharWeight = 150 'Gras(100 pour normal)Curseur.CharPosture 0 '(italique 2)
Curseur.CharFontName = "Arial"
Curseur.CharHeight = "12" 'taille caracteres
oText.insertString Curseur, "Les données à insérer", False
'-------------------------------------------------------


'pour le Numero page dans le pied de page
Set piedPage = leStyle.RightPageFooterContent
Set oText = piedPage.CenterText
oText.setString ("") 'RAZ entete
Set Curseur = oText.CreateTextCursor()
Set leChamp = Document.createInstance("com.sun.star.text.TextField.PageNumber")
oText.insertTextContent Curseur, leChamp, False
'-------------------------------------------------------


leStyle.RightPageHeaderContent = Entete
leStyle.RightPageFooterContent = piedPage
End Sub

bon apres midi
michel

Merci michelxld 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

the_loofox 1 Messages postés jeudi 2 décembre 2004Date d'inscription 19 avril 2007 Dernière intervention - 19 avril 2007 à 09:34
0
Merci
[font=Comic Sans MS]thel_loofoxSans MS

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.