Re: [prog] Probleme avec le ConfigurationProvider dans la 3.3

2010-09-22 Par sujet Thibault Vataire
Bonjour,

Bonne nouvelle!
Merci.

Thibault


- Mail original -
De: Jean-Baptiste Faure jbf.fa...@laposte.net
À: prog@fr.openoffice.org
Envoyé: Mercredi 22 Septembre 2010 12:47:28
Objet: Re: [prog] Probleme avec le ConfigurationProvider dans la 3.3

 Le 20/09/2010 10:59, Thibault Vataire a écrit :
 Bonjour,

 Le problème a été reporté sur le bug tracker d'OOo : 
 http://qa.openoffice.org/issues/show_bug.cgi?id=111970

Bonjour,

J'ai demandé hier soir et obtenu ce matin que ce bug soit considéré
comme un release blocker pour la 3.3.

Bonne journée
JBF

-- 
Seuls des formats ouverts peuvent assurer la pérennité de vos documents.


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Probleme avec le ConfigurationProvider dans la 3.3

2010-09-20 Par sujet Thibault Vataire
Bonjour,

Le problème a été reporté sur le bug tracker d'OOo : 
http://qa.openoffice.org/issues/show_bug.cgi?id=111970

Cordialement,
T. Vataire


- Mail original -
De: Didier Dorange-Pattoret ddora...@dmaths.org
À: prog@fr.openoffice.org
Envoyé: Samedi 18 Septembre 2010 14:31:00
Objet: [prog] Probleme avec le ConfigurationProvider dans la 3.3

Bonjour,

J'ai un pb avec les macros ci-dessous qui fonctionnaient bien jusqu'a la
3.2.1:


/Sub Main
cNodePath = .org.openoffice.Office/Addons/AddonUI/OfficeToolbar   
bWriteAccess = True
GetConfigAccess(cNodePath,bWriteAccess)
End Sub


Function GetConfigAccess( ByVal cNodePath As String,ByVal bWriteAccess
As Boolean,Optional bEnableSync,Optional bLazyWrite) As Object
If IsMissing(bEnableSync) Then bEnableSync = True
If IsMissing( bLazyWrite ) Then bLazyWrite = False
Dim oConfigProvider, oConfigAccess as Object
oConfigProvider =
GetProcessServiceManager.createInstanceWithArguments(com.sun.star.configuration.ConfigurationProvider,Array(
MakePropertyValue( enableasync, bEnableSync)))
If bWriteAccess Then
cServiceName =
com.sun.star.configuration.ConfigurationUpdateAccess
Else
cServiceName = com.sun.star.configuration.ConfigurationAccess
EndIf
oConfigAccess = oConfigProvider.createInstanceWithArguments(
cServiceName, Array( MakePropertyValue( nodepath, cNodePath ),
MakePropertyValue( lazywrite, bLazyWrite )))
GetConfigAccess() = oConfigAccess
End Function


Function MakePropertyValue( Optional cName As String, Optional uValue )
As com.sun.star.beans.PropertyValue
Dim oPropertyValue As New com.sun.star.beans.PropertyValue
If Not IsMissing( cName ) Then
oPropertyValue.Name = cName
EndIf
If Not IsMissing( uValue ) Then
oPropertyValue.Value = uValue
EndIf
MakePropertyValue() = oPropertyValue
End Function/

Le paramètre enableasync semble invalide, contrairement à ce que dit
le SDk pour la 3.3.

On peut tester avec
cNodePath = .org.openoffice.Office/Addons/AddonUI/OfficeToolbar
/bWriteAccess = True

Merci pour vos réponses.
/

-- 
Didier Dorange-Pattoret



Soutenez le projet Dmaths : rejoignez le club ou faites adhérer votre 
établissement !



-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] publi-postage à l'envers

2010-08-01 Par sujet Thibault Vataire
Bonjour,

Voici un exemple inspiré de l'aide d'OOo au sujet de la fonction Dir :

sub main

dim const inputPath = /media/partage/Dest
dim const filePrefix = fichier_
dim const fileExt = ods
dim aFileName as string
dim aFile

aFileName = dir$(convertToUrl(inputPath  getPathSeparator()  
filePrefix  *  .  fileExt), 0)
while (aFileName  )
aFile = starDesktop.loadComponentFromUrl(convertToUrl(inputPath 
 getPathSeparator()  aFileName), _

 _blank, com.sun.star.frame.FrameSearchFlag.CREATE, array())
if (not isNull(aFile)) then

'traiter le fichier

aFile.dispose()
end if
aFileName = dir$
wend

end sub

Cordialement,
Thibault Vataire


- Mail Original -
De: Martin Blaizot martin.blai...@wanadoo.fr
À: prog@fr.openoffice.org
Envoyé: Dimanche 1 Août 2010 13:02:34
Objet: [prog] publi-postage à l'envers

Bonjour à tous,


Est-il possible de récupérer par macro les noms de tous les fichiers contenus 
dans un dossier ?

L'idée est de faire un publi-postage à l'envers. je m'explique :

J'ai un dossier avec une centaine de fichiers .xls ayant la même structure. Il 
s'agit de factures, et je souhaite remplir une base de données avec les 
destinataires de ces factures. Le problème est d'arriver à ouvrir les fichiers 
sans les nommer ( du style for i = 1 to 100  ouvrir fichier_i) ou de récupérer 
les noms.


D'avance merci pour vos suggestions,


Martin

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Position de la souris dans un document dessin

2010-07-01 Par sujet Thibault Vataire
Bonjour,

Voici une solution pour recuperer ces coordonnees : 

sub main

dim doc as object
dim controller as object
dim statusBar as object
dim accessibleContext as object
dim target as object

doc = thisComponent
controller = doc.currentController
if (not isNull(controller)) then
statusBar = _getStatusBar(controller.frame.layoutManager)
if (not isNull(statusBar)) then
 target = 
_getAccessibleChildByName(statusBar.realInterface, Taille)
 if (not isNull(target)) then
msgbox(target.text)
 end if
end if
end if

end sub

function _getAccessibleChildByName(accessibleObject as object, aName as string) 
as object

dim result as object
dim accessibleContext as object
dim childIndex as long
dim aChild as object

accessibleContext = accessibleObject.accessibleContext
while ((childIndex  accessibleContext.accessibleChildCount) and 
isNull(result))
aChild = accessibleContext.getAccessibleChild(childIndex)
if (aChild.accessibleName = aName) then
result = aChild
else
result = _getAccessibleChildByName(aChild, aName)
end if
childIndex = childIndex + 1
wend

_getAccessibleChildByName = result

end function

function _getStatusBar(layManager as object) as object

dim result as object
dim elements as object
dim anElement as object
dim elemIndex as long

elements = layManager.elements()
elemIndex = lbound(elements)
while ((elemIndex = ubound(elements)) and isNull(result))
anElement = elements(elemIndex)
if (_isStatusBar(anElement)) then
result = anElement
end if
elemIndex = elemIndex + 1
wend

_getStatusBar = result

end function

function _isStatusBar(anObject as object) as boolean

dim success as boolean

on local error resume next
success = (anObject.type = com.sun.star.ui.UIElementType.STATUSBAR)

_isStatusBar = success

end function

Cordialement,
Thibault Vataire



- Mail Original -
De: Didier Dorange-Pattoret ddora...@dmaths.org
À: prog@fr.openoffice.org
Envoyé: Jeudi 1 Juillet 2010 14:08:22
Objet: [prog] Position de la souris dans un document dessin

Bonjour à tous,

Lorsqu'un document dessin est affiché, on peut remarquer, dans la
dernière ligne à côté de diapo 1/1,  deux nombres qui donnent la
position du curseur, exprimée en cm, par rapport au coin supérieur
gauche de la page de dessin.

Comment peut-on récupérer ces coordonnées ?

Merci pour votre aide.

-- 
Didier Dorange-Pattoret

http://www.dmaths.org
http://sesamath.net

Soutenez le projet Dmaths : rejoignez le club ou faites adhérer votre 
établissement !
http://www.dmaths.org/documentation/doku.php?id=presentation:club



-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Affichage d'un cadre dans document texte

2010-06-18 Par sujet Thibault Vataire
Bonjour, 

J'ai fait différents tests dans différents contextes (documents créés par 
macros, déja existant, déjà ouvert) et mes cadres apparaissent 
systématiquement, qu'OOo vienne d'être lancé ou non.

Pouvez-vous nous donner plus d'information sur le contexte de votre macro :

- le type et format des documents utilisés (j'ai fais mes tests sur des 
documents texte au format ODT)
- ces documents existent déjà sur votre poste et sont ouvert par la macro, ou 
bien sont-ils créés à la volée

Avez-vous vérifié que vos cadres étaient bien insérés ? C'est à dire qu'ils 
sont insérés mais non visibles.
S'ils ne sont pas insérés, peut-être qu'au moment de l'insertion, MonDocument 
ne représente pas le bon document.

Cordialement,
T. Vataire.


- Mail Original -
De: Martin Blaizot martin.blai...@wanadoo.fr
À: prog@fr.openoffice.org
Envoyé: Vendredi 18 Juin 2010 10:13:33
Objet: Re: [prog] Affichage d'un cadre dans document texte

Et bien fait, non; ça ne marche pas. En tout cas pas deux fois de suite !

C'est à n'y rien comprendre.

En fait, avec ou sans la ligne de code d'Agnès, mes 2 premiers cadre 
apparaissent lors de la première ouverture du document, ou plutôt devrais-je 
dire d'un document. Si je relance l'appli, sans avoir quitté et relancé Ooo, 
mes cadres n'apparaissent plus, quel que soit le document texte ouvert par 
mon appli ( devis, facture .. ).

Si quelqu'un à une idée, je suis preneur.


Bien cordialement,


Martin 




-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Affichage d'un cadre dans document texte

2010-06-18 Par sujet Thibault Vataire
De mon coté non plus, je ne parviens pas à sélectionner à la souris les cadres 
insérés. Il me faut insérer une forme de dessin à partir de la barre de dessin 
puis naviguer jusqu'a la forme à sélectionner avec la touche tabulation.

Quels sont les arguments passé avec propFich ?

Pour vérifier si les cadres sont insérés, vous devez analyser le contenu de la 
collection de formes de dessin de votre document (MonDocument.drawPage).

Pouvez-vous mettre en piece-jointe un document sur lequel les cadres 
n'apparaissent pas.

Cordialement,
 


- Mail Original -
De: Martin Blaizot martin.blai...@wanadoo.fr
À: prog@fr.openoffice.org
Envoyé: Vendredi 18 Juin 2010 11:28:25
Objet: Re: [prog] Affichage d'un cadre dans document texte

Bonjour Thibault,


Il s'agit d'une macro permettant de visualiser une facture. Le document 
texte est créé par la macro avec l'instruction suivante :

adresseDoc = private:factory/swriter
MonDocument = StarDesktop.LoadComponentFromURL(adresseDoc,_blank, 0, 
propFich)

Concernant l'insertion des cadres, je suis plus embêté pour vous répondre 
car, même quand ils apparaissent dans mon document, je n'arrive ni à les 
sélectionner ni à  atteindre  le texte placé à l'intérieur.

Encore merci de vous être penché sur mon problème,


Martin 




-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Affichage d'un cadre dans document texte

2010-06-18 Par sujet Thibault Vataire
Bonjour,

Après avoir analysé votre document, il semble que pour une raison inconnue, le 
type de ligne sélectionné soit Invisible.
Peut être votre macro modifie-elle cette propriété quelque part.

Voici un bout de code permettant de réafficher vos cadres :

sub test

dim index as long
dim dp as object
dim aShape as object

dp = thisComponent.drawPage
for index = 0 to (dp.count - 1)
aShape = dp.getByIndex(index)
if (aShape.shapeType = com.sun.star.drawing.RectangleShape) 
then
dp.getByIndex(index).lineStyle = 
com.sun.star.drawing.LineStyle.SOLID
end if
next

end sub

Pour analyser un object (une collection ou autre), je vous conseille d'utiliser 
l'outil Xray, disponible ici : http://www.ooomacros.org/dev.php#101416

Cordialement,
T. Vataire


- Mail Original -
De: Martin Blaizot martin.blai...@wanadoo.fr
À: prog@fr.openoffice.org
Envoyé: Vendredi 18 Juin 2010 12:19:12
Objet: Re: [prog] Affichage d'un cadre dans document texte

Re-bonjour,

Je ne passe aucun argument avec propFich. Juste le code de mon précédent 
mail.

Pour analyser le contenu de la collection de formes de dessin je fais 
comment ? par macro ?

Martin


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Affichage d'un cadre dans document texte

2010-06-18 Par sujet Thibault Vataire


 La conclusion semble donc être qu'il faut absolument définir la propriété 
 lineStyle d'un cadre, faute de quoi on est pas certain qu'il soit visible.

Non je ne pense pas car de mon coté, les cadres insérés dans un document sont 
systématiquement visibles. Je pense plutot que votre macro modifie cette 
propriété d'une façon ou d'une autre.

Testez avec cette macro pour vous en assurer : 

sub main

dim const horiPos = 0
dim const width = 8000
dim const height = 3000
Dim MonDocument as object

MonDocument = 
starDesktop.loadComponentFromUrl(private:factory/swriter, _

   _blank, _

   com.sun.star.frame.FrameSearchFlag.CREATE, _

   array())

MonTexte = MonDocument.Text
Moncurseur = MonTexte.createTextCursor()
MonTexte.insertTextContent(Moncurseur, createFrame(width, height, 1500, 
horiPos, MonDocument), false)
MonTexte.insertTextContent(Moncurseur, createFrame(width, height, 4500, 
horiPos, MonDocument), false)
MonTexte.insertTextContent(Moncurseur, createFrame(width, height, 7500, 
horiPos, MonDocument), false)

end sub

function createFrame(width as long, height as long, vertOriPos as long, 
horiOriPos as long, MonDocument as object) as object

Dim Taille1 As New com.sun.star.awt.Size
dim MonCadre1 as object

MonCadre1 = 
MonDocument.createInstance(com.sun.star.drawing.RectangleShape)
Taille1.Width  = width
Taille1.Height = height
With MonCadre1
 .CornerRadius = 600
 .FillColor = RGB (255,255,255)
 .AnchorType = com.sun.star.text.TextContentAnchorType.AT_PARAGRAPH
 .VertOrient = com.sun.star.text.VertOrientation.NONE
 .VertOrientPosition = vertOriPos
 .HoriOrient = com.sun.star.text.HoriOrientation.NONE
 .HoriOrientPosition = horiOriPos
 .Size = Taille1
End With

createFrame = MonCadre1

end function


Par contre, il est étrange que dans votre cas, les cadres soient parfois 
visible et parfois non.


Cordialement,
T. Vataire


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Affichage d'un cadre dans document texte

2010-06-17 Par sujet Thibault Vataire
Bonjour,

Concernant votre précédent message, avez vous testé ceci :

- fermer OOo, y compris le démarrage rapide s'il est actif
- déplacer le répertoire de la librairie se trouvant dans votre profil 
utilisateur vers un autre emplacement
- relancer OOo
- Menu Outils  Macros  Gérer les macros  OpenOffice.org Basic, bouton Gérer
- aller sur l'onglet bibliothèque et choisir Importer
- selectionner le fichier script.xlb se trouvant dans le répertoire déplacé 
précedemment
- verifier que la lib à bien été importé.

Cela dit, convertir votre macro pour la rendre compatible avec les versions 
récentes d'OOo est une bonne chose.
Pour ce qui est de l'exemple de code que vous nous avez fait parvenir, il 
fonctionne chez moi si je l'exécute sur un document déjà ouvert.
J'ai juste ajouté ces deux lignes au debut :

dim MonDocument as object
MonDocument = thisComponent

Pour info, je suis en 3.2.0 officielle.

Cordialement,
T. Vataire



- Mail Original -
De: Martin Blaizot martin.blai...@wanadoo.fr
À: prog@fr.openoffice.org
Envoyé: Jeudi 17 Juin 2010 08:32:18
Objet: [prog] Affichage d'un cadre dans document texte

Bonjour à tous,

N'ayant malheureusement pas beaucoup de succès avec ma bibliothèque fantôme, je 
me suis décidé à porter ma petite appli sous Ooo3.2.  Ca avance un peu, mais 
vous risquez de me voir souvent par ici dans les jours qui viennent !  Je 
suppose que toutes les erreurs de codage qui pouvaient passer sous 1.1.4 ne 
passent plus dans les versions modernes.

Bref, j'en viens à mon problème du moment. Voici un bout de code qui permettait 
d'afficher un cadre à bords arrondis. Il ne marche plus, mais je n'ai pas de 
message d'erreur. Peut-être pouvez-vous m'aider 


Dim Taille1 As New com.sun.star.awt.Size
MonTexte = MonDocument.Text
Moncurseur = MonTexte.createTextCursor
Dim MonCadre1 as object
MonCadre1 = MonDocument.createInstance(com.sun.star.drawing.RectangleShape)
Taille1.Width  = 8000 
Taille1.Height = 3000 
With MonCadre1
 .CornerRadius = 600
 .FillColor = RGB (255,255,255)
 .AnchorType = com.sun.star.text.TextContentAnchorType.AT_PARAGRAPH
 .VertOrient = com.sun.star.text.VertOrientation.NONE
 .VertOrientPosition = 1500
 .HoriOrient = com.sun.star.text.HoriOrientation.NONE
 .HoriOrientPosition = 8000
 .Size = Taille1 
End With
MonTexte.insertTextContent(Moncurseur, MonCadre1, false)



D'avance merci,


Martin

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] ma Bibliothèque à Disparu

2010-06-15 Par sujet Thibault Vataire
Bonjour,

La biliothèque Cinesoft est-elle visible dans la fenêtre de sélection de 
macros ?
Trouvez-vous un répertoire Basic\Cinesoft dans votre profil utilisateur 
OpenOffice.org.

Cordialement,

T. Vataire


- Mail Original -
De: Martin Blaizot martin.blai...@wanadoo.fr
À: prog@fr.openoffice.org
Envoyé: Mardi 15 Juin 2010 09:27:03
Objet: [prog] ma Bibliothèque à  Disparu 

Bonjour à tous,


Mon appli préférée Bug depuis hier soir.

L'instruction suivante   DialogLibraries.LoadLibrary( Cinesoft )provoque 
le message d'erreur :  Type: com.sun.star.container.NoSuchElementException

Je n'ai absolument rien changé; un jour cela marchait, le lendemain pas. Ma 
bibliothèque  Cinesoft  est bien là avec tous ses modules. Je suis sous Win 
XP et
open office 1.1.4.
Je sais il va bien falloir que je passe un jour sous O.o.o.3, mais j'avais 
essayé avec Ooo.2 et mon appli ne tournait pas. Et comme j'en ai besoin 
vraiment tous les jours pour le boulot, je n'ai jamais eu le temps de trouver 
ce qui clochait.

Merci pour vos éclaircissements,

Bien à vous,

Martin

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Re: Est-il possible de casser le lien d'un tableau ?

2010-05-23 Par sujet Thibault Vataire
Bonjour,

L'exemple que je vous avais fournis ne fonctionne que dans le cas d'un tableau 
Writer collé avec avec liaison DDE. Il ne fonctionne pas avec un tableau Calc.
Malheureusement je n'ai pas trouvé d'équivalent pour un tableau calc.

Cordialement,
T. Vataire


- Mail Original -
De: nimel ni...@free.fr
À: prog@fr.openoffice.org
Envoyé: Vendredi 21 Mai 2010 18:40:02
Objet: [prog] Re: Est-il possible de casser le lien d'un tableau ?

Thibault Vataire a écrit :
 Bonjour,
 
 Pouvez-vous me faire parvenir un document d'exemple contenant un tableau tel 
 que celui que vous utilisez afin de determiner d'où vient le problème?
 
 Cordialement,
 T. Vataire

Houla !! Oui je veux bien mais c'est un peu compliqué. Au départ c'est 
un doc Calc qui est trituré par une macro qui ouvre d'après un modèle un 
doc Writer dans lequel une 2ème macro colle un bout du tableau qui 
devient le tableau en question.
J'envoie quoi ? Un document final Writer après traitement avec le 
tableau dedans je suppose ? Oui allez, je fais ça (ci-joint)

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Copier à partir du presse-papier

2010-05-18 Par sujet Thibault Vataire
Bonjour,

Quelle est le format exact de la source à partir de laquelle les données sont 
copiée dans le presse papier ?
Est-ce un tableau Writer ?

Si c'est le cas, voici un exemple qui, je l'espère, pourrait correspondre à ce 
que vous souhaiter réaliser :

option explicit

sub main

dim destCalc as object
dim tmpCDoc as object
dim tmpCController as object
dim tmpCFrame as object
dim dispatchHelper as object
dim destCalcController as object
dim destCalcFrame as object

destCalc = thisComponent
tmpCDoc = starDesktop.loadComponentFromUrl(private:factory/scalc, 
_blank, com.sun.star.frame.FrameSearchFlag.CREATE, getHiddenArgs())
tmpCController = tmpCDoc.currentController
if (not isNull(tmpCController)) then
tmpCFrame = tmpCController.frame
dispatchHelper = 
createUnoService(com.sun.star.frame.DispatchHelper)
dispatchHelper.executeDispatch(tmpCFrame, .uno:Paste, , 0, 
array())
dispatchHelper.executeDispatch(tmpCFrame, .uno:SelectData, 
, 0, array())
dispatchHelper.executeDispatch(tmpCFrame, .uno:Copy, , 0, 
array())
destCalcController = destCalc.currentController
if (not isNull(destCalcController)) then

dispatchHelper.executeDispatch(destCalcController.frame, .uno:InsertContents, 
, 0, getPasteArgs())
end if
end if
tmpCDoc.dispose()

end sub

function getPasteArgs() as variant

dim result(5) as new com.sun.star.beans.PropertyValue

result(0).Name = Flags
result(0).Value = SVD
result(1).Name = FormulaCommand
result(1).Value = 0
result(2).Name = SkipEmptyCells
result(2).Value = false
result(3).Name = Transpose
result(3).Value = false
result(4).Name = AsLink
result(4).Value = false
result(5).Name = MoveMode
result(5).Value = 4

getPasteArgs = result

end function

function getHiddenArgs() as variant

dim result(0) as new com.sun.star.beans.PropertyValue

result(0).name = Hidden
result(0).value = true

getHiddenArgs = result

end function

Cordialement,
T. Vataire



- Mail Original -
De: PREF31 Open-Office open-off...@haute-garonne.pref.gouv.fr
À: prog@fr.openoffice.org
Envoyé: Mardi 18 Mai 2010 07:48:28
Objet: Re: [prog] Copier à partir du presse-papier

 Message original 
Sujet : Re: [prog] Copier à partir du presse-papier
De : Agnès Simonet agnes.simo...@laposte.net
Pour : prog@fr.openoffice.org
Date : 17/05/2010 21:07
 PREF31 Open-Office a écrit :

 Bonjour et merci

 Mais ce que je voudrais faire c'est un collage spécial de texte non 
 formaté dans calc et que l'utilisateur n'ai pas à choisir les options 
 de la boite de dialogue import de texte (langage, numéro de ligne, 
 séparateurs ..)

 En enregistrant la macro cela me donne le code ci dessous mais je 
 n'ai trouvé nulle part les noms et valeurs des arguments qui 
 rendraient cet import silencieux pour l'utilisateur

 sub Main
 rem 
 --
 rem define variables
 dim document   as object
 dim dispatcher as object
 rem 
 --
 rem get access to the document
 document   = ThisComponent.CurrentController.Frame
 dispatcher = createUnoService(com.sun.star.frame.DispatchHelper)

 rem 
 --
 dim args1(0) as new com.sun.star.beans.PropertyValue
 args1(0).Name = Format
 args1(0).Value = 1

 dispatcher.executeDispatch(document, .uno:PasteSpecial, , 0, 
 args1())


 end sub

 Claude


 Bonsoir,

 A propos de PasteSpecial, j'ai vu passer ça il y a quelques jours :
 http://user.services.openoffice.org/fr/forum/viewtopic.php?f=8t=22551


 Agnès S.

 -
 To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
 For additional commands, e-mail: prog-h...@fr.openoffice.org

Bonjour,

Apparemment, ce fil évoque le même problème que je rencontre, c'est à 
dire trouver les bons arguments pour que la boite de dialogue ne 
s'affiche pas.

Merci quand même

Claude


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Insérer un document writer dans Impress

2010-05-16 Par sujet Thibault Vataire
Bonjour,

Le plus simple est d'utiliser le service com.sun.star.frame.DispatchHelper pour 
executer la commande du menu EditionObjetEditer :

sub insereTexte

dim doc as object
dim obj as object
dim aPos as variant
dim aSize as variant
dim controller as object
dim dispatcher as object
dim args1(0) as new com.sun.star.beans.PropertyValue

doc = thisComponent
obj = doc.CreateInstance(com.sun.star.drawing.OLE2Shape)
...
controller = doc.currentController
if (not isNull(controller)) then
if (controller.select(obj)) then
dispatcher = 
createUnoService(com.sun.star.frame.DispatchHelper)
args1(0).Name = VerbID
args1(0).Value = 65535
dispatcher.executeDispatch(controller.frame, 
.uno:ObjectMenue, , 0, args1())
end if
end if

end sub

Cordialement,
T. Vataire

- Mail Original -
De: Didier Dorange-Pattoret ddora...@dmaths.org
À: prog@fr.openoffice.org
Envoyé: Samedi 15 Mai 2010 16:40:37
Objet: Re: [prog] Insérer un document writer dans Impress

Bonjour Thibault,

Merci pour votre réponse.

Je cherche en fait à faire ouvrir une fenêtre writer dans un document
impress pour pouvoir utiliser les fonctionnalités de Dmaths et donc
insérer  facilement des formules dans la présentation.

J'écris donc comme dernières lignes :

obj.EmbeddedObject.Component.Text.String= 
ThisComponent.CurrentController.Select(obj) 

Pour que l'objet inséré soit sélectionné et donc éditable par double-clic.

Est-il possible d'écrire du code qui équivaut à ce double clic,  pour
que l'objet soit mis directement en mode édition ?

Merci d'avance.

Thibault Vataire a écrit :
 Bonjour,

 Le problème de votre exemple vient de la manière dont vous modifiez les 
 valeurs de positions et de taille.
 Voici comment procéder pour que cela fonctionne :

 sub insereTexte

   dim obj as object
   dim aPos as variant
   dim aSize as variant

   obj = ThisComponent.CreateInstance(com.sun.star.drawing.OLE2Shape)

   aPos = obj.position
   aPos.x = 2000
   aPos.y = 2000
   obj.position = aPos

   aSize = obj.size
   aSize.height = 2000
   aSize.width = 2000
   obj.size = aSize

   obj.CLSID = 8BC6B165-B1B2-4EDD-aa47-dae2ee689dd6
   obj.name = WriterObj
   thisComponent.drawpages(0).add(obj)
   obj.EmbeddedObject.Component.Text.String= C'est dur linfo
   
 end sub

 Cordialement.
 T. Vataire

 -
 To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
 For additional commands, e-mail: prog-h...@fr.openoffice.org


   

-- 
Didier Dorange-Pattoret

http://www.dmaths.org
http://sesamath.net

Soutenez le projet Dmaths : rejoignez le club ou faites adhérer votre 
établissement !
http://www.dmaths.org/documentation/doku.php?id=presentation:club



-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Insérer un document writer dans Impress

2010-05-16 Par sujet Thibault Vataire
Voici quelques liens concernant le framework Dispatch :

http://api.openoffice.org/docs/common/ref/com/sun/star/frame/DispatchHelper.html
http://api.openoffice.org/docs/DevelopersGuide/OfficeDev/OfficeDev.xhtml#1_1_6_Using_the_Dispatch_Framework
http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/OfficeDev/Dispatch_Framework
http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/OfficeDev/Using_the_Dispatch_Framework
http://api.openoffice.org/files/documents/22/1344/slots.sxc

Mais le plus simple reste d'observer le code généré par l'enregistreur de 
macros.

http://wiki.services.openoffice.org/wiki/The_OpenOffice.org_recorder_and_UNO_dispatch_calls

Cordialement,
T. Vataire


- Mail Original -
De: Didier Dorange-Pattoret ddora...@dmaths.org
À: prog@fr.openoffice.org
Envoyé: Dimanche 16 Mai 2010 22:40:06
Objet: Re: [prog] Insérer un document writer dans Impress

Bonsoir,

Merci Thibault pour cette aide précieuse.

J'ai intégré la macro dans Dmaths. Les utilisateurs pourrons accéder aux
fonctionnalités de Dmaths depuis Impress ...


Thibault Vataire a écrit :
 Bonjour,

 Le plus simple est d'utiliser le service com.sun.star.frame.DispatchHelper 
 pour executer la commande du menu EditionObjetEditer :
   
Où peut-on trouver une documentation pour ce service ?
 sub insereTexte

   dim doc as object
   dim obj as object
   dim aPos as variant
   dim aSize as variant
   dim controller as object
   dim dispatcher as object
   dim args1(0) as new com.sun.star.beans.PropertyValue
   
   doc = thisComponent
   obj = doc.CreateInstance(com.sun.star.drawing.OLE2Shape)
   ...
   controller = doc.currentController
   if (not isNull(controller)) then
   if (controller.select(obj)) then
   dispatcher = 
 createUnoService(com.sun.star.frame.DispatchHelper)
   args1(0).Name = VerbID
   args1(0).Value = 65535
   dispatcher.executeDispatch(controller.frame, 
 .uno:ObjectMenue, , 0, args1())
   end if
   end if

 end sub

   

-- 
Didier Dorange-Pattoret

http://www.dmaths.org
http://sesamath.net

Soutenez le projet Dmaths : rejoignez le club ou faites adhérer votre 
établissement !
http://www.dmaths.org/documentation/doku.php?id=presentation:club



-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Insérer un document writer dans Impress

2010-05-15 Par sujet Thibault Vataire
Bonjour,

Le problème de votre exemple vient de la manière dont vous modifiez les valeurs 
de positions et de taille.
Voici comment procéder pour que cela fonctionne :

sub insereTexte

dim obj as object
dim aPos as variant
dim aSize as variant

obj = ThisComponent.CreateInstance(com.sun.star.drawing.OLE2Shape)

aPos = obj.position
aPos.x = 2000
aPos.y = 2000
obj.position = aPos

aSize = obj.size
aSize.height = 2000
aSize.width = 2000
obj.size = aSize

obj.CLSID = 8BC6B165-B1B2-4EDD-aa47-dae2ee689dd6
obj.name = WriterObj
thisComponent.drawpages(0).add(obj)
obj.EmbeddedObject.Component.Text.String= C'est dur linfo

end sub

Cordialement.
T. Vataire

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Copier à partir du presse-papier

2010-05-15 Par sujet Thibault Vataire
Bonjour,

Ci-dessous un exemple permettant de coller le contenu du presse papier dans un 
document Writer.

sub pasteClipboardContent()

dim controller as object

controller = thisComponent.currentController
if (not isNull(controller)) then

controller.insertTransferable(createUnoService(com.sun.star.datatransfer.clipboard.SystemClipboard).contents)
 
end if

end sub

En espérant que cela corresponde à ce que vous souhaitiez faire.

Cordialement,
T. Vataire.

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Comment Ajouter un emplacement de fichiers de confiance pour les macro

2010-04-27 Par sujet Thibault Vataire
Bonjour,

Pour ajouter un emplacement de fichiers de confiance tel qu'il est possible de 
le faire depuis le menu OutilsOptionsSécuritéSécurité des macrosSources de 
confiances, vous pouvez déployer sur vos postes une extension qui contiendra le 
fichier de configuration adéquat.

Vous trouverez en pièce jointe un exemple d'extension définissant le répertoire 
basic du profil utilisateur comme emplacement de fichiers de confiance.

Utiliser une extension présente deux avantages : 
- possibilité de déployer l'extension en mode partagé (pour l'ensemble des 
utilisateurs du poste actuels et à venir)
- les personnalisations apportées par l'extension sont fusionnées avec les 
personnalisations pré-existantes du poste

L'installation d'une extension en mode partagé se fait en ligne de commande 
avec l'outil unopkg : rep. installation OOo\program\unopkg add --shared 
chemin de l'extension

Voici comment procéder :

- definir l'emplacement de confiance depuis le menu 
OutilsOptionsSécuritéSécurité des macrosSources de confiances de 
l'interface graphique
- fermer completement OOo, y compris le démarrage rapide
- depuis un explorateur de fichier, naviguer jusqu'au profil OOo de votre 
compte utilisateur
- copier le fichier registry/data/org/openoffice/Office/Common.xcu et supprimer 
le contenu non spécifique
- créer les fichiers de configuration de l'extension et y ajouter le fichier 
Common.xcu créé précedemment
- déclarer le fichier Common.xcu dans le fichier META-INF/manifest.xml de 
l'extension
- zipper l'ensemble de ces fichiers, puis renommer l'archive zip en 
nom_extension.oxt
- déployer l'extension

La documentation concernant les extensions se trouve ici : 
http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Extensions/Extensions

Cordialement,
T. Vataire


- Mail Original -
De: Samuel Mounier (Liste CGO) ldiffus...@cgocean.com
À: prog@fr.openoffice.org
Envoyé: Mardi 27 Avril 2010 08:57:44
Objet: [prog] Comment Ajouter un emplacement de fichiers de confiance pour les 
macro

Bonjour,

Je maintiens un parc d'une centaine de portable sur lequel j'ai besoin 
d'ajouter un emplacement de fichiers de confiance,
afin que nos utilisateurs n'ai pas à configurer d'eux même cet emplacement.

Bien sur pour mes 100 micro, je voudrai éviter de passer dessus pour le 
faire à la main.

Et je préfèrerai utiliser un batch ou un script pour modifier cette 
configuration à distance.
(j'ai déjà la main à distance en tant qu'administrateur et
j'ai aussi la possibilité de mettre à disposition un script ou un batch 
pour que l'utilisateur n'ai qu'à faire un double-clique).

Savez-vous s'il existe un moyen de corriger ce paramétrage j'ai :
- Déjà recherché dans les fichiers du profils sans rien trouvé.
- Lu pas mal de doc sur les macro et la sécurité et je n'ai rien trouvé 
non plus

Samuel Mounier







-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



TrustedLocation-1.0.0.oxt
Description: application/vnd.openofficeorg.extension
-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org

Re: [prog] [writer]récupérer les formules dans un tableau

2010-04-27 Par sujet Thibault Vataire
Bonjour,

En attendant le resultat des investigations de Cédric, voici une solution de 
contournement : 

Sub Main

dim curSel as object
dim selIndex as long

curSel = thisComponent.currentSelection
if (curSel.supportsService(com.sun.star.text.TextRanges)) then
for selIndex = 0 to (curSel.count -1)

traiterParagraphEnum(curSel.getByIndex(selIndex).createEnumeration())
next selIndex
end if

End Sub

sub traiterParagraphEnum(paraEnum as object)

dim anElement as object

while (paraEnum.hasMoreElements())
anElement = paraEnum.nextElement()
if (anElement.supportsService(com.sun.star.text.TextTable)) 
then
traiterTableau(anElement)
elseif 
(anElement.supportsService(com.sun.star.text.Paragraph)) then
traiterParagraphe(anElement)
else
'ne devrait pas arriver ? : ne rien faire
end if
wend

end sub

sub traiterTableau(unTableau as object)

dim aCellName as string

for each aCellName in unTableau.cellNames

traiterParagraphEnum(unTableau.getCellByName(aCellName).createEnumeration())
next aCellName

end sub

sub traiterParagraphe(unParagraphe as object)

dim textPortionEnum as object
dim contentEnum as object

textPortionEnum = unParagraphe.createEnumeration()
while (textPortionEnum.hasMoreElements())
contentEnum = 
textPortionEnum.nextElement().createContentEnumeration(com.sun.star.text.TextContent)
while (contentEnum.hasMoreElements())
BoulotPourObjetUltime(contentEnum.nextElement())
wend
wend

end sub

Sub BoulotPourObjetUltime (Lobjet As Object)

if Lobjet.getImplementationName=SwXTextEmbeddedObject then
if (Lobjet.embeddedObject.getImplementationName = 
com.sun.star.comp.math.FormulaDocument) then
'Lobjet est une formule
print formule détectée :   Lobjet.Name
end if
end if

End Sub

Cordialement,
T. Vataire


- Mail Original -
De: Agnès Simonet agnes.simo...@laposte.net
À: prog@fr.openoffice.org
Envoyé: Mardi 27 Avril 2010 12:05:09
Objet: [prog] [writer]récupérer les formules dans un tableau

Bonjour,

Je cherche à récupérer les formules d'un document entier ou d'une 
sélection, pour pouvoir les modifier ensuite.
Les formules sont présentes dans le plain-texte et dans un tableau.

Pour le document je récupère comme ceci et tout va bien :
LeDocument=Thiscomponent
LesObjetsEmbedded=leDocument.getEmbeddedObjects
for i=0 to LesObjetsEmbedded.count-1
LobjetEmbedded=LesObjetsEmbedded(i)
BoulotPourObjetUltime (LobjetEmbedded)
next i  

Pour la sélection je procède ainsi :
LaSelection=ThisComponent.getCurrentSelection()
LesObjetsSel=LaSelection.getbyIndex(0)
LesObjetsTextContent=LesObjetsSel.createContentEnumeration(com.sun.star.text.TextContent)
 

while LesObjetsTextContent.HasMoreElements
LobjetTextContent=LesObjetsTextContent.NextElement
BoulotPourObjetUltime (LobjetTextContent)
wend

Le sous-programme BoulotPourObjetUltime :
Sub BoulotPourObjetUltime (Lobjet As Object)
if Lobjet.getImplementationName=SwXTextEmbeddedObject then
if 
Lobjet.embeddedObject.getImplementationName=com.sun.star.comp.math.FormulaDocument
 
then
'Lobjet est une formule
print formule détectée :   Lobjet.Name
endif
endif
End Sub

Dans le cas de la sélection, les formules ancrées comme caractère dans 
le tableau ne sont pas vues.
J'avoue que je ne comprends pas pourquoi.
Quelqu'un aurait-il une idée et -le rève- une solution ?

Le fichier exemple est disponible ici :
http://agnooo.free.fr/pluxml/data/documents/pb/styles_formules/pb_formules_dans_tableau.odt

Bonne journée
Agnès S.

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Comment Ajouter un emplacement de fichiers de confiance pour les macro

2010-04-27 Par sujet Thibault Vataire
 Je ne suis pas sûr de comprendre ce qu'est ce mode partagé.
 Est-ce pour tous les utilisateur ?

Oui, tout à fait. Lors d'une installation en mode partagée, l'extension est 
installée dans le répertoire installation OOo/share/uno_packages/ et est 
alors disponible pour l'ensemble des utilisateur du poste.

 Mais comme je l'avais indiqué je pensait faire la correction avec un 
 batch ou un script.

Cela est tout à fait possible. 

 Dans ce cas je préfère ne pas l'utiliser pour mon cas, car je préfère 
 avoir un profil Administrateur brut d'install lorsque j'ai un test de 
 bon fonctionnement à faire dessus.

L'idée est de tester sur poste de test (eventuellement une machine virtuelle) 
puis d'intégrer la modification sur les postes clients au niveau de la couche 
partagée (rep. install OOo/share/registry/...).
Cela évite d'avoir à répeter la même manip pour chacun des comptes utilisateurs 
sur les postes clients.


A le voila mon fichier que je n'arrivai pas à trouver...
En fait c'est juste ça qui me manquait. C'est pas faute d'avoir cherché 
pourtant...
Je me suis fait avoir par le $(user) (lors de ma recherche car le 
dossier ajouté était dans le profile)

La variable d'environnement $(user) correspond en fait au chemin du profile OOo 
d'un utilisateur. Lors d'un déploiement en mode partagé, le fichier de config 
déployé contient cette variable. Mais lors du lancement d'OOo par un 
utilisateur, elle est automatiquement interprétée comme le chemin du profile 
OOo de cet utilisateur. Chaque utilisateur disposera donc d'un emplacement de 
fichier de confiance qui lui sera spécifique.

Cordialement.




 - créer les fichiers de configuration de l'extension et y ajouter le fichier 
 Common.xcu créé précedemment
 - déclarer le fichier Common.xcu dans le fichier META-INF/manifest.xml de 
 l'extension
 - zipper l'ensemble de ces fichiers, puis renommer l'archive zip en 
 nom_extension.oxt
 - déployer l'extension
 
 La documentation concernant les extensions se trouve ici : 
 http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Extensions/Extensions
 
 Cordialement,
 T. Vataire

Encore merci pour toutes ces info.

Samuel

 
 
 - Mail Original -
 De: Samuel Mounier (Liste CGO) ldiffus...@cgocean.com
 À: prog@fr.openoffice.org
 Envoyé: Mardi 27 Avril 2010 08:57:44
 Objet: [prog] Comment Ajouter un emplacement de fichiers de confiance pour 
 les macro
 
 Bonjour,
 
 Je maintiens un parc d'une centaine de portable sur lequel j'ai besoin 
 d'ajouter un emplacement de fichiers de confiance,
 afin que nos utilisateurs n'ai pas à configurer d'eux même cet emplacement.
 
 Bien sur pour mes 100 micro, je voudrai éviter de passer dessus pour le 
 faire à la main.
 
 Et je préfèrerai utiliser un batch ou un script pour modifier cette 
 configuration à distance.
 (j'ai déjà la main à distance en tant qu'administrateur et
 j'ai aussi la possibilité de mettre à disposition un script ou un batch 
 pour que l'utilisateur n'ai qu'à faire un double-clique).
 
 Savez-vous s'il existe un moyen de corriger ce paramétrage j'ai :
 - Déjà recherché dans les fichiers du profils sans rien trouvé.
 - Lu pas mal de doc sur les macro et la sécurité et je n'ai rien trouvé 
 non plus
 
 Samuel Mounier
 

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] invalider la tabulation dans un textfield

2010-03-25 Par sujet Thibault Vataire
Bonjour,

 j'avais essayé cela mais cela ne fonctionne pas sur OOo3.2. Mettre cette
 propriété à Non empêche d'entrer dans le control lorsque le focus est
 ailleurs mais si le focus est sur le controle, TAB passe quand même au
 control suivant.

Exact. Mon erreur a été de définir la propriété tabulation à false pour tous 
les controles de ma boite de dialogue.

Ceci semble mieux fonctionner :

sub _klist_keyPressed(event as variant)

dim textField as object
dim selection as variant
dim selMin as long
dim tfText as string
dim newCaretPos as long

textField = event.source
if ((event.keyCode = com.sun.star.awt.Key.TAB) and (event.keyFunc = 
com.sun.star.awt.KeyFunction.DONTKNOW) and (event.modifiers = 0)) then
selection = textField.selection
selMin = selection.min
tfText = textField.text
'insère la tabulation à la position initiale dur curseur
textField.text = left(tfText, selMin)  chr(9)  right(tfText, 
(len(tfText) - selection.max))
newCaretPos = selMin + 1
'redonne le focus au champs de texte
textField.setFocus()
'place le curseur à la bonne position
selection.min = newCaretPos
selection.max = newCaretPos
textField.selection = selection
end if

end sub

Cordialement,

T. Vataire

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] invalider la tabulation dans un textfield

2010-03-23 Par sujet Thibault Vataire
Bonjour,

Le listener doit bien être enregistré auprès du champs texte mais la le type 
d'objet et la méthode ne sont pas les bon.
Il faut utiliser un listener de type com.sun.star.awt.XKeyListener et la 
méthode addKeyListener() du champs text.

Voici un exemple :

option explicit

sub registerKeyListener()

dim dialog as object

dialog = createUnoDialog(DialogLibraries.Standard.Dialog1)
dialog.getControl(tf).addKeyListener(createUnoListener(_klist_, 
com.sun.star.awt.XKeyListener))
dialog.execute()

end sub

sub _klist_keyPressed(event as variant)
'nothing to do
end sub

sub _klist_keyReleased(event as variant)

dim control as object

control = event.source
if ((event.keyCode = com.sun.star.awt.Key.TAB) and (event.keyFunc = 
com.sun.star.awt.KeyFunction.DONTKNOW) and (event.modifiers = 0)) then
control.text = control.text + chr(9)
end if

end sub

sub _klist_disposing(event as variant)
'nothing to do
end sub

Cordialement,
T. Vataire


- Mail Original -
De: Christophe Devalland christophe.devall...@ac-rouen.fr
À: prog@fr.openoffice.org
Envoyé: Mardi 23 Mars 2010 13:16:21
Objet: [prog] invalider la tabulation dans un textfield

Bonjour,
je cherche à désactiver la perte du focus d'un champ texte contenu dans une
boite de dialogue lors d'un appui sur la tabulation.
je veux simplement que la tabulation s'affiche dans ce champ texte et qu'il
ne perde pas le focus.
je devine qu'il faut que je créer un listener de type XKeyHandler afin de ne
pas laisser passer la touche TAB à l'interface mais mon control ne possède
pas la méthode AddKeyHandler.
la seule interface de type listener disponible pour mon champ texte est
XTextComponenthttp://api.openoffice.org/docs/common/ref/com/sun/star/awt/XTextComponent.html(
http://api.openoffice.org/docs/common/ref/com/sun/star/awt/UnoControlEdit.html
)
ce code ne fonctionne donc pas :

Sub RegisterKeyHandler

 oKeyHandler=createUnoListener(TexteFonction_,com.sun.star.awt.XKeyHandler)

   dim champTextFieldNewFunction as Object

 champTextFieldNewFunction=oDialogFunctions.GetControl(TextFieldNewFunction)

   champTextFieldNewFunction.AddKeyHandler(oKeyHandler)
end sub

Faut-il que je tape plus haut dans la hiérarchie pour placer le Handler sur
un autre élément ?
J'ai essayé sur le dialog lui même mais sans succès.
Si vous avez des idées pour aboutir...
merci d'avance
-- 
Christophe Devalland

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Problème générati on d'une formule en OOo Basic

2010-02-25 Par sujet Thibault Vataire
Bonjour,

Lorsque vous utilisez la propriété formulaLocal, utilisez le nom de la 
formule tel qu'il apparait lorsqu'elle insérée par l'interface graphique.
Lorsque vous utilisez la pseudo-propriété formula, il est nécéssaire 
d'utiliser le nom de la formule en anglais.

soit :

thisComponent.sheets.getByIndex(0).getCellRangeByName(A1).formulaLocal = 
=SOMME(3+5)
thisComponent.sheets.getByIndex(0).getCellRangeByName(A2).formula = 
=SUM(3+5)

Cordialement,

T. Vataire


- Mail Original -
De: yves dutrieux ydutri...@gmail.com
À: prog@fr.openoffice.org
Envoyé: Jeudi 25 Février 2010 12:42:14
Objet: Re: [prog] Problème génération d'une formule en OOo Basic

Bonjour,

Le 25 février 2010 12:34, Stéphane PURNELLE stephane.purne...@corman.be a
écrit :

 Bonjour Laurent,

 Alors, oui je suis sur de mes champs.


N'est-on pas obligé de définir le type du champs pour le forcer à un string
?

Yves


 REM Adesso - nous allons réaliser les formules
 REM reposition sur st_li
 jeCherche = maFeuille.createSearchDescriptor
 with jeCherche
.SearchString = st_li
.searchWords = false
 end with
 trouv = maFeuille.findAll(jeCherche)
 monDocument.CurrentController.Select(trouv(0))
 maCellule = monDocument.currentSelection

 print D+cstr(maCellule.CellAddress.Row+1)
 adresseDebut = D+cstr(maCellule.CellAddress.Row+1)
 REM print
 maFeuille.getCellrangeByName(D+cstr(maCellule.CellAddress.Row+1)).string
 REM print
 maFeuille.getCellByPosition(maxcol-2,maCellule.CellAddress.Row).string

 maCellule =
 maFeuille.getCellByPosition(maxcol-1,maCellule.CellAddress.Row)
 REM print maCellule.String

 adresseFin=adresseString(monDocument,maCellule.CellAddress)
 print adresseFin


 maCellule = maFeuille.getCellByPosition(maxcol,maCellule.CellAddress.Row)
 REM print maCellule.String

 maCellule.Formula = =SOMME(+adresseDebut+:+adresseFin+)

 ---
 Stéphane PURNELLE Admin. Systèmes et Réseaux
 Service Informatique   Corman S.A.   Tel : 00 32 (0)87/342467

 Laurent Godard oooc...@free.fr wrote on 25/02/2010 12:31:13:

  Laurent Godard oooc...@free.fr
  25/02/2010 12:31
 
  Veuillez répondre à
  prog@fr.openoffice.org
 
  A
 
  prog@fr.openoffice.org
 
  cc
 
  Objet
 
  Re: [prog] Problème génération d'une formule en OOo Basic
 
  Bonjour stefane
 
   J'ai dans mon code la ligne suivante :
  
   maCellule.Formula = =SOMME(+adresseDebut+:+adresseFin+)
  
   Seulement, elle ne marche pas car elle devient =somme(D3:AS3) dans la
   cellule
 
  difficile de dire sans le code et l'exemple sous les yeux
  es tu sur de la valeur et du calcul de adresseDebut et adresseFin ?
 
  Laurent
 
  -
  To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
  For additional commands, e-mail: prog-h...@fr.openoffice.org
 




-- 
web site : http://www.molenbaix.com

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Question de méthode

2009-11-16 Par sujet Thibault Vataire
Bonjour,

 En ce qui conerne l'enregistreur, je n'ai pas dit qu'il était déconseillé, 
 c'est 
 juste que je ne sais pas retrouver les différents paramètres à changer.

Le fichier http://api.openoffice.org/files/documents/22/1344/slots.sxc
répertorie bon nombre des commandes utilisables via l'API dispatch et précise 
pour chacune d'elle les arguments utilisables.

Cordialement,
T. Vataire


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] empecher l'enregistrement d'un document

2009-10-29 Par sujet Thibault Vataire
Bonjour,

Qu'entendez-vous exactement par empêcher qu'un utilisateur modifie un 
formulaire?
Empêcher l'ajout/suppression de contrôles de formulaire, empêcher le 
déplacement des contrôles, autre...?

 solution 1 : un ots, mais j'ai une macro d'ouverture qui s'execute sur 
 l'ots et non sur le nouvel ods  !?

Je part du principe que la macros se trouve dans le modèle.
De mon coté, lorsque j'associe l'exécution de ma macro aux événements du modèle 
Créer le document et Ouvrir le document, celle-ci s'applique bien au 
document généré et non au modèle. 
A quel(s) évènement(s) l'avez-vous associé?

Cordialement,
T. Vataire


- Mail Original -
De: hs...@villeneuvedascq.fr
À: liste prog prog@fr.openoffice.org
Envoyé: Jeudi 29 Octobre 2009 09:14:03
Objet: [prog] empecher l'enregistrement d'un document

bonjour

je reviens vers vous car bien que progressant en macro je ne suis encore 
q'un amateur
je souhaite empecher qu'un utilisateur modifie un formulaire qui doit 
servir de base a chaque saisie (modele de facture)
solution 0 : ouverture en lecture seule mais pas de saisie possible :(
solution 1 : un ots, mais j'ai une macro d'ouverture qui s'execute sur 
l'ots et non sur le nouvel ods  !?
solution 2 : empecher l'enregistrement des modifications en assignant une 
macros sur les evenements sauf que je ne trouve pas la syntaxe appropriée 
dans l'API ou je me noyes !
si qq'un a deja réalisé cela
merci
Hervé

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] empecher l'enregistrement d'un document

2009-10-29 Par sujet Thibault Vataire
Petite précision : il faut également modifier le menu fichier pour ce document 
et supprimer le bouton enregistrer.
Procéder de la même manière mais dans l'onglet Menu au lieu de Barres 
d'outils

Cordialement,
T. Vataire.

- Mail Original -
De: Thibault Vataire tvata...@starxpert.fr
À: prog@fr.openoffice.org
Envoyé: Jeudi 29 Octobre 2009 14:39:34
Objet: Re: [prog] empecher l'enregistrement d'un document

Pourquoi ne pas créer un modèle de document pour lequel vous supprimez le 
bouton enregistrer dans la barre d'outils Normale :

- Editer le modèle
- Outils  Personnaliser  Barres d'outils
- Dans la liste Enregistrer dans, sélectionner le modèle
- Dans la liste Barres d'outils, sélectionner Standard
- Sélectionner le bouton Enregistrer
- Dans le bouton déroulant Modifier, sélectionner Supprimer
- Valider avec OK
- Enregistrer le modèle

Lors de la création d'un document à partir de ce modèle, le bouton enregistrer 
n'apparait pas.

Cordialement,
T. Vataire


- Mail Original -
De: hs...@villeneuvedascq.fr
À: prog@fr.openoffice.org
Envoyé: Jeudi 29 Octobre 2009 14:27:24
Objet: Re: [prog] empecher l'enregistrement d'un document

1/ si j'utilise un ods

 Qu'entendez-vous exactement par empêcher qu'un utilisateur modifie un 
formulaire?
 Empêcher l'ajout/suppression de contrôles de formulaire, empêcher le 
déplacement des contrôles, autre...?

oui l'utilisateur peu saisir des valeurs dans certaines cellules, 
selectionner d'autres depuis des tableaux ou liste de selection ...
a la fin, on genere un pdf
mais quand l'utilisateur quitte OOo va vouloir sauvegarder le document 
puique il est modifié ou l'utilisateur par habitude va vouloir le 
sauvegarder ce que je ne souhaite pas
de plus il doit lui etre interdit de modifier les controles ...


2/  si j'utilise un ots, ca resoud le probleme ci-dessus mais

 la macros qui ne s'execute pas dans le doc généré par le modele

en fait la macro  est dans l'evenement d'ouverture et donc elle s'execute 
dans le modele et non dans le nouveau document genere par le modele
comment fait on pour qu'elle s'execute dans le doc généré (la solution du 
focus n'est pas bonne)

 Est ce que protéger le fichier en écriture par rapport aux utilisateurs 
au niveau de l'OS ne suffirait pas ?

oui mais la macro d'ouverture de document est faite dans l'ots et non le 
nouvel ods

3/  j'ai bien pense lancer un premier doc avec une macro qui renome mon 
ods et le lance, mais un peu lourd




j'espère avoir été plus clair
merci
Herve

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] empecher l'enregistrement d'un document

2009-10-29 Par sujet Thibault Vataire

 oui mais
 ca n'empeche pas la demande de sauvegarde par OOo à la fermeture de 
 l'application

C'est vrai, et ça ne règle pas non plus le problème de l'utilisation des 
raccourcis clavier auxquels je n'avais pas pensé non plus.

 et ca ne fait pas executer la macro d'ouverture de document dans l'ods

Avez vous essayé, comme indiqué dans mon message précédent d'associer la macro 
aux 2 evènements Créer le document ET Ouvrir le document?
Dans ce cas :
- à l'édition du modèle, la macro est exécutée sur me modèle (mais peut être 
empêché si le niveau de sécurité des macros est sur moyen et que l'on choisi 
de ne pas l'exécuter)
- à la création d'un document à partir du modèle, ou à l'ouverture d'un 
document précédement créé, la macro s'exécute sur ce document.

 une solution en ods serait de trapper l'evenement et de l'empecher
 trapper on sait faire mais l'empecher ?
 exemple : sur l'evenement enregistrer avoir une macro qui fait que 
 l'evenement ne fait rien d'autre que le code de la macro sans faire 
 l'enregistrement

Je ne connais pas de solution pour bloquer l'évènement.

Cordialement,

T. Vataire.

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Ajouter menu

2009-10-28 Par sujet Thibault Vataire
Bonjour,

Le plus simple pour réaliser cela, est de générer une extension contenant votre 
macro et de l'installer via le gestionnaire des extensions.
Je vous conseille l'outil BasicAddonBuilder qui permet de créer des extensions 
et de personnaliser/créer des menus, barres d'outils... simplement.

Cordialement,
T. Vataire.


- Mail Original -
De: c c prog_amat...@hotmail.fr
À: liste prog prog@fr.openoffice.org
Envoyé: Mercredi 28 Octobre 2009 16:30:52
Objet: [prog] Ajouter menu


Bonjour,

 

Peut-on par macro, rajouter un menu dans OO ? Je viens de ré-écrire ma première 
macro de MS vers OO et pour celle-là il ne me reste que ce problème de menu.

 

Les utilisateurs ont l'habitude de voir apparaître un nouveau menu (après le 
menu fenêtres) qui contient la liste actions possibles pour le document ouvert. 
Ce menu est supprimé à la fermeture du document. J'aimerais bien garder cette 
fonctionnalité.

 

Merci à tous pour l'aide apportée depuis le début de ma reconversion

 

Claude

 

 
  
_
Nouveau Windows 7 : Trouvez le PC qui vous convient. En savoir plus.
http://clk.atdmt.com/FRM/go/181574580/direct/01/

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Plage nommée

2009-10-27 Par sujet Thibault Vataire
Bonjour,

Les pseudo-propriétés .referredCells et .referredCells.rangeAddress sont en 
lecture seule.
A ma connaissance, les coordonnées de la plage ne peuvent être modifiées. Il 
faut supprimmer puis recréer.

Cordialement,
T. Vataire


- Mail Original -
De: c c prog_amat...@hotmail.fr
À: liste prog prog@fr.openoffice.org
Envoyé: Mardi 27 Octobre 2009 09:18:34
Objet: [prog] Plage nommée


Bonjour,

 

Peut-on mettre à jour les coordonnées (startrow,startcolumn,endrow,endcolumn) 
d'une plage nommée ou doit-on la supprimer et la re-créer?

 

J'ai trouvé les fonctionnalités addNewByName et removeByName mais rien qui 
permettrait la mise à jour.

 

Merci
  
_
Nouveau Windows 7 : Simplifiez votre PC ! Trouvez le PC qui vous convient.
http://clk.atdmt.com/FRM/go/181574580/direct/01/

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] datapilotsource et refresh

2009-10-26 Par sujet Thibault Vataire
Bonjour,

S'il s'agit d'actualiser l'affichage du pilote de données, vous pouvez vous 
inspirer de ceci qui permet d'actualiser tous les pilotes de données de la 
feuille active :

Sub refereshDataPilot()

dim dpEnum as object

dpEnum = 
thisComponent.currentController.activeSheet.dataPilotTables.createEnumeration()
do while(dpEnum.hasMoreElements())
dpEnum.nextElement().refresh()
loop

End Sub

Cordialement,
T. Vataire


- Mail Original -
De: hs...@villeneuvedascq.fr
À: prog@fr.openoffice.org
Envoyé: Lundi 26 Octobre 2009 10:52:31
Objet: [prog] datapilotsource et refresh

bonjour

j'ai une feuille calc avec un datapilot dont la source est une requete sql 
d'une database OO
je cherche a faire un refresh
j'ai trouve des codes java mais rien en OObasic
si qq'un a un exemple
merci
herve

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] datapilotsource et refresh

2009-10-26 Par sujet Thibault Vataire
Effectivement, je n'avais pas pris en compte que votre pilote était créé sur le 
résultat d'une requête.
Dans ce cas, mon exemple ne fonctionne effectivement pas.

Cordialement,
T. Vataire

- Mail Original -
De: hs...@villeneuvedascq.fr
À: prog@fr.openoffice.org
Envoyé: Lundi 26 Octobre 2009 15:15:42
Objet: Re: [prog] datapilotsource et refresh

bonjour,
en fait votre proposition ne fonctionne pas avec mes datas
alors j'ai eu l'idée d'enregistrer une macro sur ma feuille : clic droit, 
actualiser
ce qui donne : 
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService(com.sun.star.frame.DispatchHelper)
dispatcher.executeDispatch(document, .uno:RecalcPivotTable, , 0, 
Array())


merci encore
herve






Bonjour,

S'il s'agit d'actualiser l'affichage du pilote de données, vous pouvez 
vous inspirer de ceci qui permet d'actualiser tous les pilotes de données 
de la feuille active :

Sub refereshDataPilot()

 dim dpEnum as object
 
 dpEnum = 
thisComponent.currentController.activeSheet.dataPilotTables.createEnumeration()
 do while(dpEnum.hasMoreElements())
 dpEnum.nextElement().refresh()
 loop
 
End Sub

Cordialement,
T. Vataire


- Mail Original -
De: hs...@villeneuvedascq.fr
À: prog@fr.openoffice.org
Envoyé: Lundi 26 Octobre 2009 10:52:31
Objet: [prog] datapilotsource et refresh

bonjour

j'ai une feuille calc avec un datapilot dont la source est une requete sql 

d'une database OO
je cherche a faire un refresh
j'ai trouve des codes java mais rien en OObasic
si qq'un a un exemple
merci
herve

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Copier valeurs et format d'une zone nommée

2009-10-19 Par sujet Thibault Vataire
Bonjour,

 Je me suis servi de cette astuce pour copier-coller les valeurs d'une zone 
 d'une
 feuille dans une autre feuille. Cela fonctionne bien si la feuille d'arrivée 
 est
 vide, mais si on relance sans vider la feuille d'arrivée les formats sont 
 perdus.

Je n'arrive pas à reproduire votre problème. Lorsque je reprends l'exemple 
fourni, la mise en forme est conservée même si je relance une nouvelle fois la 
macro.
Qu'entendez-vous par les formats sont perdus? Que la mise en forme disparait 
sur la feuille de destination?

 Qu'ai-je bien pu oublier ?

Impossible à savoir, il faudrait que vous nous montriez le code de votre macro.


Cordialement,

T. Vataire


 Date: Fri, 9 Oct 2009 09:38:47 +
 From: tvata...@starxpert.fr
 To: prog@fr.openoffice.org
 Subject: Re: [prog] Copier valeurs et format d'une zone nommée
 
 Bonjour,
 
 A ma connaissance, dataArray ne copie pas la mise en forme car il ne s'agit 
 que de tableau de tableau de string/double.
 
 Par contre il est possible d'utiliser successivement la méthode copyRange() 
 d'un feuille (cela va tous copier y compris les formats est formules) puis 
 d'écraser les données copiée avec celles d'un dataArray (les formules sont 
 remplacé par leur résultat).
 
 sub test
 
 dim namedRanges as object
 dim sourceRange as object
 dim destRange as object
 
 namedRanges = thisComponent.namedRanges
 sourceRange = namedRanges.getByName(source).referredCells
 destRange = namedRanges.getByName(dest).referredCells
 sourceRange.spreadsheet.copyRange(destRange.getCellByPosition(0, 
 0).cellAddress, sourceRange.rangeAddress)
 destRange.dataArray = sourceRange.dataArray
 
 end sub
 
 Cordialement,
 T. Vataire
 
 - Mail Original -
 De: Michel Grentzinger mic.gre...@online.fr
 À: prog@fr.openoffice.org
 Envoyé: Vendredi 9 Octobre 2009 11:11:55
 Objet: Re: [prog] Copier valeurs et format d'une zone nommée
 
 Le vendredi 9 octobre 2009, Michel Grentzinger a écrit :
  Bonjour,
  
  J'ai une zone nommée (Liste des personnes) dont je veux copier le contenu
  (valeurs, format, texte : tout sauf les formules) vers une feuille vide.
  
  Comment faire pour copier sans les formules ?
 
 Avec DataArray !
 J'ai posté trop vite... Je pensais que dataArray allait me copier uniquement 
 les valeurs... Les formats sont aussi corrects !
 -- 
 Michel Grentzinger
 OpenPGP key ID : B2BAFAFA
 Available on http://www.keyserver.net
 
 -
 To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
 For additional commands, e-mail: prog-h...@fr.openoffice.org
 
 
 -
 To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
 For additional commands, e-mail: prog-h...@fr.openoffice.org
 
  
_
A la recherche de bons plans pour une rentrée pas chère ? Bing ! Trouvez !
http://www.bing.com/search?q=bons+plans+rentr%C3%A9eform=MVDE6

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] calc et focus

2009-10-19 Par sujet Thibault Vataire
Bonjour,

S'il s'agit de mettre à jour une plage de base de données, ceci devrait 
correspondre à votre besoin :

option explicit

'1/ enregistrer un ecouteur aupres du controler
'associer cette fonction à l'evenement Ouvrir le document du document calc.
sub main


thisComponent.currentController.addActivationEventListener(createUnoListener(_actList_,
 com.sun.star.sheet.XActivationEventListener))

end sub

'2/ a chaque evenement, parcourir la liste des plages existantes et actualiser 
celles correspondant a la feuille active.
sub _actList_activeSpreadsheetChanged(event as object)

dim databaseRangesEnum as object
dim databaseRange as object

databaseRangesEnum = 
event.source.model.databaseRanges.createEnumeration()
do while (databaseRangesEnum.hasMoreElements())
databaseRange = databaseRangesEnum.nextElement()
if(databaseRange.referredCells.spreadSheet.name = 
event.activeSheet.name) then
databaseRange.refresh()
end if
loop

end sub

sub _actList_disposing(event as object)
'nothing to do
end sub


Cordialement,
T. Vataire

- Mail Original -
De: hs...@villeneuvedascq.fr
À: prog@fr.openoffice.org
Envoyé: Lundi 19 Octobre 2009 13:49:56
Objet: [prog] calc et focus

bonjour
j'ai un classeur avec plusieurs feuilles dont 3 qui sont bases sur une 
requete sql de la base OOo de mon projet
quand je suis sur une de ces feuilles je dois faire clic droit et 
actualiser pour qu'il prenne en compte les modifs enregistrées dans la 
base
comment puis-je le faire quand le focus vient sur la feuille
j'espere m'etre fait comprendre !
merci
herve

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Sélectionner plage

2009-10-09 Par sujet Thibault Vataire
Bonjour,

Ceci : 

thisComponent.sheets.getByName(Feuille1).queryContentCells(com.sun.star.sheet.CellFlags.VALUE
 + _
com.sun.star.sheet.CellFlags.DATETIME + _
com.sun.star.sheet.CellFlags.STRING + _
com.sun.star.sheet.CellFlags.FORMULA)

permet d'obtenir pour la feuille nommée Feuille1, une collection de plages de 
cellules contenant des données de type date, valeur, chaine ou formule.

Chaque plage peut ensuite être obtenu en utilisant la méthode getByIndex()

Le nombre de colonnes et de lignes d'une plage peux ensuite être obtenu en 
utilisant rows.count et columns.count

Cordialement,
T. Vataire


- Mail Original -
De: c c prog_amat...@hotmail.fr
À: liste prog prog@fr.openoffice.org
Envoyé: Jeudi 8 Octobre 2009 14:41:41
Objet: RE: [prog] Sélectionner plage



 Bonjour,

 

Effectivement, j'ai mal formulé ma question.

 

Je voudrais dans une macro, sélectionner l'ensembles données (ce qui correspond 
au ctrl+*) de façon à récupérer dans un objet les coordonnées de cet ensemble 
et pouvoir ainsi déterminer le nombre de lignes et colonnes saisies et ensuite 
pouvoir travailler sur les cellules.

 

En espérant avoir été plus claire, merci

 

Claude

 
 Date: Thu, 8 Oct 2009 09:18:56 +
 From: tvata...@starxpert.fr
 To: prog@fr.openoffice.org
 Subject: Re: [prog] Sélectionner plage
 
 Bonjour,
 
 Tout dépend de ce que vous souhaitez faire exactement car ctrl+* = 
 selectionner l'ensemble des données et non selectionner l'ensemble d'une 
 feuille.
 
 Pour ctrl+* , le plus simple je pense est d'enregistrer une macro (outils  
 macros  enregistrer une macro)
 
 Pour selectionner l'ensemble d'une feuille, le raccourci est ctrl+A. Vous 
 pouvez enregistrer une macro ou bien utiliser ceci :
 
 thisComponent.currentController.select(thisComponent.sheets.getByName(non_de_la_feuille))
 
 Cordialement,
 T. Vataire
 
 - Mail d'origine -
 De: c c prog_amat...@hotmail.fr
 À: liste prog prog@fr.openoffice.org
 Envoyé: Thu, 08 Oct 2009 08:37:14 - (GMT)
 Objet: [prog] Sélectionner plage
 
 
 Bonjour,
 
 
 
 Comment puis-je dans une macro sélectionner l'ensemble d'une feuille 
 (l'équivalent du ctrl+*) ?
 
 
 
 Merci
 
 _
 Messenger débarque dans Hotmail ! Essayez-le !
 http://www.windowslive.fr/hotmail/web-messenger/
 
 -
 To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
 For additional commands, e-mail: prog-h...@fr.openoffice.org
 
  
_
Un avatar à votre image ? Créez votre mini-moi !
http://www.ilovemessenger.fr/minimize-me

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Copier valeurs et format d'une zone nommée

2009-10-09 Par sujet Thibault Vataire
Bonjour,

A ma connaissance, dataArray ne copie pas la mise en forme car il ne s'agit que 
de tableau de tableau de string/double.

Par contre il est possible d'utiliser successivement la méthode copyRange() 
d'un feuille (cela va tous copier y compris les formats est formules) puis 
d'écraser les données copiée avec celles d'un dataArray (les formules sont 
remplacé par leur résultat).

sub test

dim namedRanges as object
dim sourceRange as object
dim destRange as object

namedRanges = thisComponent.namedRanges
sourceRange = namedRanges.getByName(source).referredCells
destRange = namedRanges.getByName(dest).referredCells
sourceRange.spreadsheet.copyRange(destRange.getCellByPosition(0, 
0).cellAddress, sourceRange.rangeAddress)
destRange.dataArray = sourceRange.dataArray

end sub

Cordialement,
T. Vataire

- Mail Original -
De: Michel Grentzinger mic.gre...@online.fr
À: prog@fr.openoffice.org
Envoyé: Vendredi 9 Octobre 2009 11:11:55
Objet: Re: [prog] Copier valeurs et format d'une zone nommée

Le vendredi 9 octobre 2009, Michel Grentzinger a écrit :
 Bonjour,
 
 J'ai une zone nommée (Liste des personnes) dont je veux copier le contenu
 (valeurs, format, texte : tout sauf les formules) vers une feuille vide.
 
 Comment faire pour copier sans les formules ?

Avec DataArray !
J'ai posté trop vite... Je pensais que dataArray allait me copier uniquement 
les valeurs... Les formats sont aussi corrects !
-- 
Michel Grentzinger
OpenPGP key ID : B2BAFAFA
Available on http://www.keyserver.net

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Sélectionner plage

2009-10-08 Par sujet Thibault Vataire
Bonjour,

Tout dépend de ce que vous souhaitez faire exactement car ctrl+* = selectionner 
l'ensemble des données et non selectionner l'ensemble d'une feuille.

Pour ctrl+* , le plus simple je pense est d'enregistrer une macro (outils  
macros  enregistrer une macro)

Pour selectionner l'ensemble d'une feuille, le raccourci est ctrl+A. Vous 
pouvez enregistrer une macro ou bien utiliser ceci :

thisComponent.currentController.select(thisComponent.sheets.getByName(non_de_la_feuille))

Cordialement,
T. Vataire

- Mail d'origine -
De: c c prog_amat...@hotmail.fr
À: liste prog prog@fr.openoffice.org
Envoyé: Thu, 08 Oct 2009 08:37:14 - (GMT)
Objet: [prog] Sélectionner plage


Bonjour,

 

Comment puis-je dans une macro sélectionner l'ensemble d'une feuille 
(l'équivalent du ctrl+*) ?

 

Merci
  
_
Messenger débarque dans Hotmail ! Essayez-le !
http://www.windowslive.fr/hotmail/web-messenger/

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] macro pour commence r une numérotation alphabétique

2009-09-30 Par sujet Thibault Vataire
Bonjour,

Je pense qu'il est possible de réaliser ce à quoi vous pensez en combinant 
l'utilisation des styles et des macros :

1/ créer autant de styles de puces que types de numérotation à utiliser.
L'astuce ici est de sélectionner le niveau 1-10 dans l'onglet Options pour que 
tous les niveaux du style aient le même aspect.
2/ pour chaque style créé, enregistrer une macro correspondant à l'application 
de ce style dans un document.
3/ créer une barre d'outils ou chaque bouton correspond à l'éxécution d'une de 
ces macros.

Vous trouverez un exemple ci-joint.

Cordialement.


- Mail Original -
De: Frédéric Péters fpet...@entrouvert.com
À: prog@fr.openoffice.org
Envoyé: Mercredi 9 Septembre 2009 07:31:57
Objet: Re: [prog] macro pour commencer une numérotation alphabétique

Jean-Francois Nifenecker écrivait :

  Il existe dans la barre d'outils standard un bouton pour activer la
  numérotation et un bouton pour activer les puces, je me demandais
  comment il serait possible de faire pour avoir un bouton qui ferait
  utiliser une numéroration alternative (avec des lettres plutôt que des
  nombres).
 
 Avec des styles ?
 
 1. Créer un style de numérotation correspondant à vos besoins
 2. Créer un style de paragraphe faisant appel à ce style de numérotation
 (onglet Numérotation ;)
 
 Associer le tout à un bouton de barre d'outils ou à un accélérateur...
 et ouala. Pas besoin de macro !

Merci pour la réponse, utiliser les styles était aussi mon intention
initiale, mais ils ne permettent pas d'avoir le style imbriqué dans
une autre puce.

Le comportement auquel j'aimerais arriver, c'est un bouton qui
permette aussi bien de faire :

[clic numérotation alpha]

 a) bla bla
 b) bla bla

que :

[clic puces]

 * bla bla
 [tab]
 [clic numérotation alpha]
   a) bla bla
   b) bla bla

C'est-à-dire un comportement tout à fait similaire à puce /
numérotation, mais avec un autre style de numérotation.


Frédéric

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Test_num.odt
Description: application/vnd.oasis.opendocument.text
-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org

Re: [prog] Objet RowSet vs ResultSet

2009-07-31 Par sujet Thibault Vataire
Bonjour,

Voici un exemple de mise à jour d'une table à partir d'un RowSet : 

sub testRowset()

dim rowSet as object

rowSet = createUnoService(com.sun.star.sdb.RowSet)
rowSet.DataSourceName = fournisseurs_fruits
rowSet.commandType = com.sun.star.sdb.CommandType.COMMAND
rowSet.command = SELECT * FROM soc_prod
rowSet.execute()
rowSet.moveToInsertRow()
rowSet.updateString(rowSet.findColumn(id_societe), 6)
rowSet.updateString(rowSet.findColumn(id_produit), 3)
rowSet.insertRow()

end sub

Je me suis inspiré d'un exemple en Java du Developer's Guide trouvé à cette 
adresse : 

http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Database/Example:_Querying_the_Bibliography_Database

Cordialement,

T. Vataire.



- Mail Original -
De: François Breizh francois.bre...@orange.fr
À: prog@fr.openoffice.org
Envoyé: Jeudi 23 Juillet 2009 18:42:47
Objet: [prog] Objet RowSet vs ResultSet

Bonjour,
je m'exerce à la programmation de macros accédant à une base de données 
Base.
Dans le cas actuel j'ai une base qui contient deux tables Documents et 
Auteurs ; un attribut de la table Documents pointe vers un article de 
la table Auteurs.
pour mettre à jour la tables des documents en ajoutant le nom d'un 
nouvel auteur, j'ai essayé les deux procédures suivantes :

'Statement.executeUpdate(INSERT INTO Auteurs (Nom) VALUES 
('  sNomAuteur  '))
'ResultSet = Statement.executeQuery(SELECT ID_Auteur FROM 
Auteurs WHERE Nom='  sNomAuteur  ')
'ResultSet.Next
'Pointeur = ResultSet.getInt(1)
'RowSetDocuments.updateInt(4, Pointeur)
'RowSetDocuments.updateRow()
'..
RowSetAuteurs.insertRow' /Erreur : Function sequence error/
RowSetAuteurs.moveToInsertRow
RowSetAuteurs.refreshRow
RowSetAuteurs.updateString(2,sNomAuteur)
RowSetAuteurs.updateRow
RowSetDocuments.updateInt(4, RowSetAuteurs.getInt(1))
RowSetDocuments.updateRow()

La première méthode, commentée, fonctionne, il est donc possible 
d'ajouter une ligne à la table Auteurs ; la seconde méthode échoue avec 
le message d'erreur Function sequence error dès la première ligne.
Je n'arrive pas à trouver de développement sur cette erreur, ni comment 
insérer proprement une nouvelle ligne avec un objet RowSet.
J'utilise OpenOffice 3.0.1 et Ubuntu 9.04

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Prog Macro liée à un bouton, inactive

2009-07-16 Par sujet Thibault Vataire
Bonjour,

Quel est l'objectif de votre fonction OpenForm.
Actuellement elle ne fait rien d'autre que créer une PropertyValue et 
renseigner ses différentes propriétés, mais cela ne va rien affiche à l'écran. 
Il est donc normal que rien ne se passe.

Cordialement,

T. Vataire


- Mail Original -
De: Jean Sympa jsy...@free.fr
À: Prog prog@fr.openoffice.org
Envoyé: Jeudi 16 Juillet 2009 11h42:35 GMT +02:00 Harare / Pretoria
Objet: [prog] Prog Macro liée à un bouton, inactive



Bonjour à toutes et à tous, 




Macro liée à un bouton, inactive 




Sur un formulaire j'ai placé le Bouton Dictons méteorologique pour ouvrir le 
formulaire M_Meteo. 






J'ai lié la macro à l'événement Bouton de souris enfoncé. 




En cliquant sur le bouton, il ne se passe rien. 

Où est l'erreur? 

Que faire? 




Avec mes remerciements 

Cordialement 

Papy Prog 

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Re: Insertion texte dans tableau

2009-07-07 Par sujet Thibault Vataire
Bonjour,

Le problème rencontré avec la fonction ReplaceAll et dû au fait que votre 
curseur de navigation ne dispose pas de cette méthode : c'est le document qui 
permet de faire appel à ReplaceAll.
Pour savoir si un object dispose d'une méthode ou non, vous pouvez utiliser 
l'outils Xray.

Ci-dessous vous trouverez un exemple d'utilisation de l'API de recherche qui, 
je pense, correspond à ce que vous souhaitiez effectuer.

Sub Main

dim doc as object
dim rDesc as object
dim elem as object

doc = thisComponent
'on parametre le descripteur de recherche
rDesc = doc.createReplaceDescriptor
rDesc.searchString = @
'on recherche le premier element
elem = doc.findFirst(rDesc)
'si un element est trouvé
do while (not isNull(elem))
'et qu'il est dans une cellule
if (not isEmpty(elem.cell)) then
'on remplace le texte par le numéro de ligne
elem.string = getCellRow(elem.cell.cellName)
end if
'puis on recherche l'element suivant
elem = doc.findNext(elem, rDesc)
loop

End Sub

'récupère le numéro de ligne à partir d'un nom de cellule
function getCellRow(aCellName as string) as long

dim result as long
dim st as object
dim so as new com.sun.star.util.SearchOptions
dim searchRes as object
dim startOffset as long

st = createUnoService(com.sun.star.util.TextSearch)
so.algorithmType = com.sun.star.util.SearchAlgorithms.REGEXP
so.searchFlag = com.sun.star.util.SearchFlags.REG_NOSUB
so.searchString = [:digit:]{1,}$
st.setOptions(so)
searchRes = st.searchForward(aCellName, 0, 0)
if (searchRes.subRegExpressions = 1) then
startOffset = searchRes.startOffset(0)
result = cInt(mid(aCellName, startOffset + 1, 
(searchRes.endOffset(0) - startOffset + 1)))
end if

getCellRow = result

end function


Cordialement,

T. Vataire



- Mail Original -
De: Alan alan.lem...@antsys.fr
À: prog@fr.openoffice.org
Envoyé: Mardi 7 Juillet 2009 12h26:46 GMT +02:00 Harare / Pretoria
Objet: [prog]  Re: Insertion texte dans tableau

Et voilà j'ai ma solution.
Pour résoudre le problème, je simule la fonction chercher/remplacer.
Je sélectionne au préalable la ligne de mon tableau.

Dim CellDest As Object

dim args1(18) as new com.sun.star.beans.PropertyValue
args1(0).Name = SearchItem.StyleFamily
args1(0).Value = 2
args1(1).Name = SearchItem.CellType
args1(1).Value = 0
args1(2).Name = SearchItem.RowDirection
args1(2).Value = true
args1(3).Name = SearchItem.AllTables
args1(3).Value = false
args1(4).Name = SearchItem.Backward
args1(4).Value = false
args1(5).Name = SearchItem.Pattern
args1(5).Value = false
args1(6).Name = SearchItem.Content
args1(6).Value = false
args1(7).Name = SearchItem.AsianOptions
args1(7).Value = false
args1(8).Name = SearchItem.AlgorithmType
args1(8).Value = 0
args1(9).Name = SearchItem.SearchFlags
args1(9).Value = 71680
args1(10).Name = SearchItem.SearchString
args1(10).Value = (@)
args1(12).Name = SearchItem.Locale
args1(12).Value = 255
args1(13).Name = SearchItem.ChangedChars
args1(13).Value = 2
args1(14).Name = SearchItem.DeletedChars
args1(14).Value = 2
args1(15).Name = SearchItem.InsertedChars
args1(15).Value = 2
args1(16).Name = SearchItem.TransliterateFlags
args1(16).Value = 1280
args1(17).Name = SearchItem.Command
args1(17).Value = 3
args1(18).Name = Quiet
args1(18).Value = true

For index_row = 1 to nb_rows - 1

args1(11).Name = SearchItem.ReplaceString
args1(11).Value = (  index_row - 1  )
CellDest = Table.getCellRangeByPosition(0, index_row, nb_col - 1, index_row)
Doc.CurrentController.Select(CellDest)
dispatcher.executeDispatch(Frame, .uno:Paste, , 0, Array())
CellDest = Table.getCellRangeByPosition(0, index_row, nb_col - 1, index_row)
Doc.CurrentController.Select(CellDest)
dispatcher.executeDispatch(Frame, .uno:ExecuteSearch, , 0, args1())

Next

Un grand merci à tous ceux qui ont pris du temps pour lire.
Et en espérant que ceci aidera quelqu'un d'autre.


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Problème conversi on macro excel vers OOo Basic

2009-07-07 Par sujet Thibault Vataire
Bonjour,

Cette erreur signifie que l'index de colonne ou de ligne spécifié est hors des 
valeurs acceptables pour votre plage de cellule.
Combien y a t'il de colonnes et lignes dans votre plage nommée?
Pour rappel, en macro sous OpenOffice, les lignes et de colonnes sont numérotés 
à partir de 0. Les index maximums sont donc (nb lignes - 1) pour les lignes et 
(nb colonnes - 1) pour les colonnes.
 
Par exemple lorsque vous appelez la méthode 
plage_cellule.getCellByPosition(.getCellByPosition(1, wi_lig - 1) et si 
wi_lig vaut 2, cela signifie que vous souhaitez accéder a la cellule [deuxième 
colonne | deuxième ligne].
Si vous n'avez qu'une colonne, une erreur de type IndexOutOfBoundException 
est alors déclanchée.

Par ailleurs, si vous souhaitez tester si le contenu de la cellule est 
différent de , il faut que vous fassiez appel à sa propriété string : 

maFeuille1.getCellRangeByName(TdB).getCellByPosition(1,wi_lig - 1).string  
 


Cordialement,

T. Vataire




- Mail Original -
De: Stéphane PURNELLE stephane.purne...@corman.be
À: prog@fr.openoffice.org
Envoyé: Lundi 6 Juillet 2009 13h53:10 GMT +02:00 Harare / Pretoria
Objet: [prog] Problème conversion macro excel vers OOo Basic

Bonjour,

J'essaie de convertir une macro en VBA vers OOo Basic.
Je coince déja avec cette ligne : 

 Do While 
Range(Application.Workbooks(1).Names.Item(TdB)).Offset(wi_lig - 1)  

Selon une doc trouvée sur internet nommée : Examples or Porting Visual 
Basic for Applications to StarBasic
Je peux convertir cela en :

  Do While 
maFeuille1.getCellRangeByName(TdB).getCellByPosition(1,wi_lig - 1)   


Mais dès que je le lance, j'ai une erreur IndexOutOfBoundException.
wi_lig vaut 2
Comme dans la doc, je n'ai pas d'indication a propos de Offset avec 1 
paramètre, j'ai mis 1 comme valeur pour X (ce qui correspond à la colone 
B)

Pourriez-vous m'aider ?

Merci

Stéphane

---
Stéphane PURNELLE Admin. Systèmes et Réseaux 
Service Informatique   Corman S.A.   Tel : 00 32 (0)87/342467

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Re: Insertion texte dans tableau

2009-07-06 Par sujet Thibault Vataire

 Mais je ne vais pas bien loin car il plante au niveau de la ligne :
 document = ThisComponent.CurrentController.Frame
 et je ne sais pas pourquoi...

Bonjour,

Quel est le message d'erreur?

Cordialement,

T. Vataire

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Re: Insertion texte dans tableau

2009-07-03 Par sujet Thibault Vataire
Bonjour,

Lorsque la même mise en forme est utilisée dans tous le paragraphe, le problème 
ne se pose pas : c'est cette mise en forme qui est utilisé quelque soit la 
position du texte ajouté ou la manière dont il est ajouté.
Toutefois si votre paragraphe contient diverses mise en forme, le choix de 
l'emplacement où le texte va être inséré conditionne la mise en forme qui va 
lui être appliqué. Il est même parfois nécessaire de placer le texte au 
mauvais endroit pour reprendre une mise en forme existante, puis de 
réorganiser le texte.

Vous trouverez ci-joint un fichier d'exemple. 

Cordialement,

T. Vataire



- Mail Original -
Envoyé: Vendredi 3 Juillet 2009 09h30:00 GMT +02:00 Harare / Pretoria
Objet: [prog]  Re: Insertion texte dans tableau

Bonjour,

Ok dans ce cas qu'existe-t-il comme solution pour garder le formatage de tout en
paragraphe d'une cellule ?

Mon texte d'origine vient d'une ligne d'un tableau.

Je voudrais juste récupérer la ligne de ce tableau, changer quelques caractères
et insérer cette nouvelle ligne dans le tableau.

Sur des forum, j'ai vu des solutions pour recopier des lignes des tableaux sous
Calc via dispatcher et les fonctions de copier/coller.

Est-ce applicable à Writer ? Suis-je sur la bonne voie ou en existe-t-il une
autre plus simple ?





-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org


Bonjour,

Ok dans ce cas qu'existe-t-il comme solution pour garder le formatage de tout en
paragraphe d'une cellule ?

Mon texte d'origine vient d'une ligne d'un tableau.

Je voudrais juste récupérer la ligne de ce tableau, changer quelques caractères
et insérer cette nouvelle ligne dans le tableau.

Sur des forum, j'ai vu des solutions pour recopier des lignes des tableaux sous
Calc via dispatcher et les fonctions de copier/coller.

Est-ce applicable à Writer ? Suis-je sur la bonne voie ou en existe-t-il une
autre plus simple ?





-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Exemple_traitement_texte_tableau.odt
Description: application/3dr
-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org

Re: [prog] Bibliothèque contenant la fonction Shell

2009-07-01 Par sujet Thibault Vataire
Bonjour,

Effectivement, ce message indique que le fichier à exécuter n'est pas trouvé.
A cause de cette ligne : 

ef = command.com C:/+filePath+script+.bat

filePath est une URL donc il ne faut pas ma préfixer avec C:/.

Une simple msgbox affichant la valeur de la variable ef permet de mettre le 
problème en évidence.

Cordialement,

T. Vataire



- Mail Original -
De: Rémi Mathieu remi.math...@neuf.fr
À: prog@fr.openoffice.org
Envoyé: Mardi 31 Mars 2009 00h12:18 GMT +02:00 Harare / Pretoria
Objet: Re: [prog] Bibliothèque contenant la fonction Shell

Bonsoir

J'ai mal interprété le message d'erreur à l'exécution de ma macro, 
message qui m'indique que le fichier n'existe pas. Il s'agit 
probablement du fichier dont le nom est passé en argument de la commande 
shell.

Le texte de la macro est ci-dessous en italique (noir pour les 
commentaires, rouge pour les autres commandes bacic)

/REM  *  BASIC  *

Sub Main()
  REM  Il faut d'abord créer sur votre disque un fichier avec le contenu 
suivant:
  REM  sous Windows (nom de fichier C:\tmp\test.bat)
  REM   echo %1
  REM   pause
  REM     Exemple de Sync  --
  REM  appel de ma macro d'exécution de script avec bSync=TRUE
  REM  l'exécution du basic attendra que le terminal (ou la fenêtre msdos)
  REM  soit fermé par l'appui d'une touche (CTRL+C sous Windows) 
  REM Sous Windows
  shellRunner(file://C:/temp/, test, Hello World, TRUE)
  REM  Signaler la fin de l'exécution
  Print The End
  REM     Sans Sync  --
  REM  Appel avec bSync=FALSE
  REM  L'exécution du code basic sera continuée
  REM  Sous Windows
 shellRunner(file://C:/temp/, test, Hello World, FALSE)
  REM  On indique la fin de l'exécution
  Print The End
End Sub
Sub shellRunner(dirPath$, script$, prms$, sync as Boolean)
  Dim filePath$, ef$, ed$, isWindows as Boolean
 REM  On regarde sous quel OS on se trouve
  isWindows = instr(mid(dirPath,8),:/)0 or instr(mid(dirPath,8),\)0
  REM  Conversion de l'URL en chemin de fichier
  filePath = convertFromURL(dirPath)
  REM  Création de la ligne de commande
  If isWindows Then
  ef = command.com C:/+filePath+script+.bat
  Else
  ef = xvt -e sh +filePath+script+.sh
  End If
  REM  Exécution de la ligne de commande
  Shell(ef, 1, prms, sync)
End Sub/



Thibault Vataire a écrit :
 Bonjour,

 La fonction Shell est une fonction intégrée au Starbasic et ne nécessite pas 
 de charger une bibliothèque.
 La documentation de cette fonction est disponible dans l'aide 
 d'OpenOffice.org dans la section OpenOffice.org Basic.
 Quel problème rencontrez-vous exactement?

 Cordialement,

 T. Vataire


 - Mail Original -
 De: Rémi Mathieu remi.math...@neuf.fr
 À: prog@fr.openoffice.org
 Envoyé: Lundi 30 Mars 2009 16h03:42 GMT +02:00 Harare / Pretoria
 Objet: [prog] Bibliothèque contenant la fonction Shell

 Bonjour

 Le document d'Andrew Pitonyak Eléments de programmation des macros 
 donne un exemple d'utilisation de la fonction Shell, mais il y manque le 
 chargement de la bibliothèque dans laquelle se trouve cette fonction.

 Merci d'avance à qui voudra bien m'indiquer le nom de la bibliothèque à 
 charger

 Rémi Mathieu


 -
 To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
 For additional commands, e-mail: prog-h...@fr.openoffice.org


 -
 To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
 For additional commands, e-mail: prog-h...@fr.openoffice.org



   


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Prog Une erreur dans une macro

2009-07-01 Par sujet Thibault Vataire
Problème de mise en forme de mon message.

Les deux lignes

OpenForm( thisComponent.ActiveConnection.Parent.DatabaseDocument.FormDocuments,
et 
thisComponent.ActiveConnection, FmTbClients)

correspondent en fait à une seule et même ligne de code.

Cordialement,

T. Vataire

- Mail Original -
De: Jean Sympa jsy...@free.fr
À: prog@fr.openoffice.org
Envoyé: Mercredi 1 Juillet 2009 17h16:10 GMT +02:00 Harare / Pretoria
Objet: Re: [prog] Prog Une erreur dans une macro



Merci Thibault, 



J'ai effectué le remplacement. A la compilation il y a une erreur 



Cordialement 

Papy 

Thibault Vataire a écrit : 

Bonjour,

Lorsque l'on associe l'exécution d'une macro à un évènement de l'application en 
passant par le menu Outils  Personnaliser  Événements, l'évènement à 
l'origine du déclenchement de la macro n'est pas passé en paramètre.

Il faut donc remplacer :

Sub onClickOuvrirFmTbClients( oEvent as variant )
OpenForm( 
OEvent.Source.Model.Parent.ActiveConnection.Parent.DatabaseDocument.FormDocuments,
 
OEvent.Source.Model.Parent.ActiveConnection, FmTbClients)
end sub

par :

Sub onClickOuvrirFmTbClients()
OpenForm( 
thisComponent.ActiveConnection.Parent.DatabaseDocument.FormDocuments, 
thisComponent.ActiveConnection, FmTbClients)
end sub

Cordialement,

T. Vataire



- Mail Original -
De: Jean Sympa jsy...@free.fr À: Prog prog@fr.openoffice.org Envoyé: 
Mercredi 1 Juillet 2009 11h23:18 GMT +02:00 Harare / Pretoria
Objet: [prog] Prog Une erreur dans une macro

Bonjour à toutes et à tous,


Prog Une erreur dans une macro


Je voudrais, au démarrage d'une application, afficher un menu avec trois 
options. Je voudrais associer à chaque option un bouton qui me 
permettrait d'ouvrir un sous formulaire. Le retour d'un sous formulaire 
au menu ferait appel à un deuxième bouton.


Jean-Michel Pierre et François Gatto m'ont proposé un exemple. Il y a 
une erreur dans le formulaire, ouverture des formulaires. Je n'arrive 
pas à la corriger


REM * BASIC *


' ouverture des formulaires

' se fait par appel d'une fonction

Sub onClickOuvrirFmTbClients( oEvent as variant )

OpenForm( 
OEvent.Source.Model.Parent.ActiveConnection.Parent.DatabaseDocument.FormDocuments,
 
OEvent.Source.Model.Parent.ActiveConnection, FmTbClients)

end sub


*Erreur d'exécution BASIC*

*L'argumentt n'est pas facultatif*



Sub onClickOuvrirFmTbRegion( oEvent as variant )

OpenForm( 
OEvent.Source.Model.Parent.ActiveConnection.Parent.DatabaseDocument.FormDocuments,
 
OEvent.Source.Model.Parent.ActiveConnection, FmTbRegion)

end sub



Sub onClickOuvrirFmTbDestinataires( oEvent as variant )

OpenForm( 
OEvent.Source.Model.Parent.ActiveConnection.Parent.DatabaseDocument.FormDocuments,
 
OEvent.Source.Model.Parent.ActiveConnection, FmTbDestinataires)

end sub



Sub onClickOuvrirFmTbProduits( oEvent as variant )

OpenForm( 
OEvent.Source.Model.Parent.ActiveConnection.Parent.DatabaseDocument.FormDocuments,
 
OEvent.Source.Model.Parent.ActiveConnection, FmTbProduits)

end sub



Sub onClickOuvrirFmTbLivraisonProduits( oEvent as variant )

OpenForm( 
OEvent.Source.Model.Parent.ActiveConnection.Parent.DatabaseDocument.FormDocuments,
 
OEvent.Source.Model.Parent.ActiveConnection, FmTbLivraisonProduits)

end sub


function OpenForm( formContainer as variant, oConnection as variant, 
sFormName as string) as variant

Dim aProp(1) As New com.sun.star.beans.PropertyValue

aProp(0).Name = ActiveConnection

aProp(0).Value = oConnection

aProp(1).Name = OpenMode

aProp(1).Value = open

OpenForm = formContainer.loadComponentFromURL(sFormName,_blank,0,aProp())

end function




Avec mes remerciements

Cordialement

Papy



-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional 
commands, e-mail: prog-h...@fr.openoffice.org 


Re: [prog] Insertion texte dans tableau

2009-06-30 Par sujet Thibault Vataire
Bonjour,

Qu'entendez-vous par le gras et les sauts de lignes ne sont plus du tout les 
mêmes ?
Parlez-vous de la mise en forme du contenu du tableau ?
Votre problème est-il un problème de mise en page ou bien un problème de mise 
en forme du contenu du tableau?
De mon coté, lorsque je remplace le contenu d'une cellule dans un tableau 
Writer, la mise en forme est conservée.

Cordialement,

T. Vataire



- Mail Original -
De: Alan alan.lem...@antsys.fr
À: prog@fr.openoffice.org
Envoyé: Mardi 30 Juin 2009 11h46:19 GMT +02:00 Harare / Pretoria
Objet: [prog]  Insertion texte dans tableau

Bonjour,

j'ai un problème de mise en page lors de l'insertion de texte dans un tableau.
Dans le code ci-dessous le texte est bien formaté jusqu'à la ligne cellText =
join(splitChamps, index_row - 1) mais une fois inséré dans le tableau, le gras
et les sauts de lignes ne sont plus du tout les mêmes.

For index_row = 1 to nb_row - 1
  For index_col = 0 to nb_colonne - 1

Cell = Table.getCellByPosition(index_col,index_row)

dim splitChamps() as string
splitChamps = split(listechamps(index_col), @)

dim cellText as string
cellText = join(splitChamps, index_row - 1)

Cell.setString(cellText)

  Next index_col
Next index_row

Qu'est ce que j'ai mal fait ? Existe-t-il une autre méthode ? Merci d'avance
pour vos réponses, solutions ou aide.


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Bibliothèque contenant la fonction Shell

2009-06-30 Par sujet Thibault Vataire
Bonjour,

La fonction Shell est une fonction intégrée au Starbasic et ne nécessite pas de 
charger une bibliothèque.
La documentation de cette fonction est disponible dans l'aide d'OpenOffice.org 
dans la section OpenOffice.org Basic.
Quel problème rencontrez-vous exactement?

Cordialement,

T. Vataire


- Mail Original -
De: Rémi Mathieu remi.math...@neuf.fr
À: prog@fr.openoffice.org
Envoyé: Lundi 30 Mars 2009 16h03:42 GMT +02:00 Harare / Pretoria
Objet: [prog] Bibliothèque contenant la fonction Shell

Bonjour

Le document d'Andrew Pitonyak Eléments de programmation des macros 
donne un exemple d'utilisation de la fonction Shell, mais il y manque le 
chargement de la bibliothèque dans laquelle se trouve cette fonction.

Merci d'avance à qui voudra bien m'indiquer le nom de la bibliothèque à 
charger

Rémi Mathieu


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Obtenir le curseur visible dans Calc ?

2009-06-22 Par sujet Thibault Vataire
Bonjour,

Si les données à insérer proviennent du presse-papier, vous pouvez utiliser 
ceci :

Sub Main
dim clipboard as object
clipboard = 
createUnoService(com.sun.star.datatransfer.clipboard.SystemClipboard)


thisComponent.currentController.insertTransferable(clipboard.getContents)
End Sub

Les données sont insérées au niveau du curseur visible lorsqu'une cellule est 
en cours d'édition.

Cordialement,

T. Vataire



- Mail Original -
De: Christophe Devalland christophe.devall...@ac-rouen.fr
À: prog@fr.openoffice.org
Envoyé: Lundi 22 Juin 2009 11h27:33 GMT +01:00 Amsterdam / Berlin / Berne / 
Rome / Stockholm / Vienne
Objet: Re: [prog] Obtenir le curseur visible dans Calc ?

Le 22 juin 2009 10:34, gilles bignebat gilles.bigne...@bull.net a écrit :

 christophe.devall...@gmail.comBonjour,
 que souhaites-tu faire exactement?
 S'il s'agit d'un contrôle de validité de la saisie tu aurais intérêt à
 utiliser Outils  Validité de Calc, non?


je veux simplement avoir un bouton qui appelle une macro qui insère un texte
dans une cellule en cours de rédaction.
Une sorte de insertString mais à l'endroit où se situe le curseur dans la
cellule en cours d'édition.
-- 
Christophe Devalland

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Tableau dans un procédure

2009-06-15 Par sujet Thibault Vataire
Bonjour,

Effectivement, la transmission d'un tableau comme paramètre se fait 
systématiquement par référence.
Cette observation est valable quelque soit le type de tableau et le nombre de 
dimensions.
Je ne pense pas que passer un tableau par valeur ai réellement un sens car cela 
impliquerait de copier l'ensemble des valeurs de ce tableau, ce qui pourrait 
être très gourmand en ressources.
De plus il est fort probable que l'accès à un élément du tableau se fasse à 
partir de la référence du premier élément, rendant ainsi indispensable le 
passage par référence.

Cordialement,

T. Vataire


- Mail Original -
De: xavier roguiez x...@geo.hmg.inpg.fr
À: prog@fr.openoffice.org
Envoyé: Dimanche 14 Juin 2009 15h23:50 GMT +02:00 Harare / Pretoria
Objet: [prog] Tableau dans un procédure

Bonjour

Je dois encore commettre une boulette évidente, mais je ne vois pas.

Je tente de passer un tableau à 2 dimensions en argument par valeur. 
J'ai testé sur un ECM le problème me concernant (p125 Programmation OO 
par l'exemple)

Sub Main()
dim tata(5,2) as double
tata(1,0)=123
tata(2,1)=-5.7
tata(3,2)=pi
manipulerTableau (tata())
end sub

sub manipulerTableau(byval v() as double)
print UBound(v,1), UBound(v,2), v(3,2)

End Sub

La seule différence par rapport au code de départ est le byval de la 
sous procédure d'appel manipulerTableau, je l'ai finalement enlevé et ça 
fonctionne, dans le cas contraire, j'ai un
variable d'objet non définie erreur d'exécution basic
dont je ne comprends pas l'origine. On ne peut pas passer un tableau à 
double dimensions par valeurs ?

Avez vous l'explication ?
xavier

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Tableau dans un procédure

2009-06-15 Par sujet Thibault Vataire
Bonjour Laurent,

Je pense que l'utilisation d'un variant ne change rien au fond du problème.
Cela permet effectivement de passer le tableau avec le mot clé byval, mais en 
réalité il est toujours passé par référence. Pour s'en convaincre, exécuter 
l'exemple suivant :

sub mainArray()

dim tab(1) as double
dim index as long

tab(0) = 0
tab(1) = 1

'affichage avant manipulation
for index = lbound(tab) to ubound(tab)
msgbox(tab(index))
next

manipulerTableau(tab)

'affichage après manipulation
for index = lbound(tab) to ubound(tab)
msgbox(tab(index))
next


end sub

sub manipulerTableau(byval tab as variant)

tab(1) = 2

end sub

Cordialement,

T. Vataire



- Mail Original -
De: Laurent Godard oooc...@free.fr
À: prog@fr.openoffice.org
Envoyé: Lundi 15 Juin 2009 16h34:28 GMT +02:00 Harare / Pretoria
Objet: Re: [prog] Tableau dans un procédure

Bonjour Xavier

pour essayer
et si tu passes avec un variant ?
 
 sub manipulerTableau(byval v() as double)

deviendrait

sub manipulerTableau(byval v)

Laurent

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Enregistrement de la configuration d'une extension

2009-05-07 Par sujet Thibault Vataire
Bonjour,

Il me semble que l'object context est de type com.sun.star.uno.XComponentContext

Toutefois tu n'en aura pas besoin en starbasic car il est utilisé de manière 
implicite par la méthode createUnoService propre au starbasic. 

Tu peux donc directement instancier le service 
com.sun.star.registry.SimpleRegistry ainsi :

aRegistry = createUnoService(com.sun.star.registry.SimpleRegistry)


T. Vataire


- Mail Original -
De: Romain Pelisse bela...@gmail.com
À: prog@fr.openoffice.org
Envoyé: Mercredi 6 Mai 2009 22h36:10 GMT +01:00 Amsterdam / Berlin / Berne / 
Rome / Stockholm / Vienne
Objet: Re: [prog] Enregistrement de la configuration d'une extension

 Une solution possible est de regarder du coté de 
 com.sun.star.registry.SimpleRegistry
 qui permet de stocker des infos sous forme de clés dans un fichier ayant une 
 extension rdb.

Tout d'abord merci pour ta réponse (rapide en plus) donc en
première analyse et de ta connaissance, il n'existe pas un mécanisme
dédié pour les extensions.

Merci aussi pour l'exemple python (que j'espère proche du StarBasic
car je n'ai pas le loisir de faire du python :( ), j'ai néanmoins une
question (peut être bête), comme puis je récupérer l'objet context ?
De quelle sorte d'objet s'agit il en fait ?


 Exemple en Python :
       aRegistry = 
 context.ServiceManager.createInstanceWithContext(com.sun.star.registry.SimpleRegistry,
  context)
       sFile = ./mesoptions.rdb
       aURL = unohelper.systemPathToFileUrl(sFile)
       try:
           aRegistry.open(aURL, False, False)
       except InvalidRegistryException, e:
           aRegistry.open(aURL, False, True)
       aRootKey = aRegistry.getRootKey()
           aLockKey = aRootKey.openKey(LOCKED)
       if aLockKey is None:
           aLockKey = aRootKey.createKey(LOCKED)
       elif aLockKey.getLongValue():
           # ne pas lancer l'extension par exemple
       else:
           # lancer l'extension
 ne pas oublier de mettre quelque part dans le code
       aRegistry.close()
 Voilà cela peut-être un point de départ.
 --
 Gérard Deneux

 -
 To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
 For additional commands, e-mail: prog-h...@fr.openoffice.org


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] taille des icones

2009-04-15 Par sujet Thibault Vataire
Bonjour,

Voici un petit bout de code permettant de modifier la taille des icônes des 
barres d'outils : 

sub main()

dim confParam as object
dim param(0) as new com.sun.star.beans.PropertyValue

param(0).name = nodepath
param(0).value = /org.openoffice.Office.Common

confParam = 
createUnoService(com.sun.star.configuration.ConfigurationProvider).createInstanceWithArguments(
 _
com.sun.star.configuration.ConfigurationUpdateAccess, param)

'0 = small
'1 = large
'2 = automatic
confParam.misc.symbolSet = 1
confParam.commitChanges()

end sub

Cordialement,

T. Vataire



- Mail Original -
De: Rémy Petit remy.pe...@ac-besancon.fr
À: prog@fr.openoffice.org
Envoyé: Lundi 6 Avril 2009 10h58:54 GMT +01:00 Amsterdam / Berlin / Berne / 
Rome / Stockholm / Vienne
Objet: Re: [prog] taille des icones

En fait je voudrais afficher par macro  les barres d'outils avec des 
grandes icones à l'ouverture de certains modèles de documents et 
remettre l'affichage en position initiale à la fermeture.
( ce que l'on fait à la main par option affichage...)
Merci

Didier Dorange-Pattoret a écrit :
 Bonsoir,

 De quelles icônes parlez-vous ?

 Cdlt.

 Rémy Petit wrote:
 Bonjour à tous,

 est-il possible d'accéder à la taille des icones par macros et comment ?

 Merci

 -
 To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
 For additional commands, e-mail: prog-h...@fr.openoffice.org





-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] batch file to launch calc macro

2009-04-14 Par sujet Thibault Vataire
Bonjour,

Voici comment executer une macro depuis une invite de commande ou un fichier 
batch :

C:\chemin\vers\executable\OOo 
macro:///nom_bibliotheque.nom_module.nom_procédure


Quelques exemples: 

* macro sans argument
C:\Program Files\OpenOffice.org 3\program\soffice.exe 
macro:///test.Module1.Main

* macro avec 2 arguments (une chaine et un entier)
C:\Program Files\OpenOffice.org 3\program\soffice.exe 
macro:///test.Module1.Main(valeur, 15)

* pour executer la macro sans splash screen
C:\Program Files\OpenOffice.org 3\program\soffice.exe -nologo 
macro:///test.Module1.Main(valeur, 15)

Cordialement,

T. Vataire



- Mail Original -
De: Laurent laurentgeorgea...@yahoo.fr
À: prog@fr.openoffice.org
Envoyé: Mercredi 1 Avril 2009 18h04:39 GMT +01:00 Amsterdam / Berlin / Berne / 
Rome / Stockholm / Vienne
Objet: [prog]  batch file to launch calc macro

Hello, i succeed in programming a macro that produces numerous files (calc) 
but i want to use oo automatically by launching this macro with a scheduled 
task (w2003). How can i launch from a .bat file ? or a .php file?



-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Re : Re: [prog] RE : [prog] Ouverture en lecture seule

2009-03-17 Par sujet Thibault Vataire
Bonjour,

Vous pouvez également utiliser cette fonction pour tester si un document est 
déjà ouvert non :

function isDocAlreadyOpened(url as string) as boolean

dim success as boolean
dim frames as object
dim found as boolean
dim fIndex as long
dim controller as object

url = convertToUrl(url)
if (url  ) then
frames = starDesktop.frames
do while ((fIndex  frames.count) and (not found))
controller = frames.getByIndex(fIndex).controller
if (not isNull(controller)) then
found = (controller.model.url = url)
end if
fIndex = fIndex + 1
loop
end if

isDocAlreadyOpened = found

end function


- Mail Original -
De: Pascal Chantriaux pascal.chantri...@ac-grenoble.fr
À: prog@fr.openoffice.org
Envoyé: Lundi 9 Mars 2009 17h08:39 GMT +01:00 Amsterdam / Berlin / Berne / Rome 
/ Stockholm / Vienne
Objet: [prog] Re : Re: [prog] RE : [prog] Ouverture en lecture seule

Bonjour,

Merci de ta réponse.
Je vais donc attendre la 3.1 avant de faire de nouveaux tests car mes problèmes 
viennent peut-être de là (j'ai la 3.0.1).

Encore merci.

Pascal


- Message d'origine -
De: Bernard Marcelly marce...@club-internet.fr
Date: Lundi, Mars 9, 2009 5:01 pm
Objet: Re: [prog] RE : [prog] Ouverture en lecture seule

 Bonjour,
 Cela dépend de la version OpenOffice.org utilisée.
 La version initiale 3.0 a introduit un nouveau mécanisme de 
 verrouillage 
 mal conçu. Je crois que la 3.0.1 améliore un peu, et le problème 
 devrait 
 être corrigé en 3.1.
 
 Il y a de nombreux cas tordus dès qu'on est en réseau (même un 
 réseau 
 familial à 2 postes) : fichier OpenDocument ou fichier Word/Excel, 
 versions OOo différentes ouvrant le même fichier, réseau hétérogène 
 Windows/Linux, ou un mélange de ces cas.
 
Bernard
 
 Message de pascal.chantri...@ac-grenoble.fr  date 2009-03-09 16:33 :
  Je viens de faire des tests avec les MEMES fichiers et je n'ai 
 pas l'erreur aujourd'hui.
  
  En tout cas pas de surprise quand je fais enregistrer sous, c'est 
 bien le bon répertoire.
  
  Par contre, je viens de constater quelque chose de très 
 surprenant :
  par une macro (cf ci-dessous) du document A je peux ouvrir un 
 autre document classeur.ods plusieurs fois et les différentes 
 instances de ce document classeur.ods portent le même nom.
  J'ai donc plusieurs documents classeur.ods ouverts en même temps 
 et j'ai vérifié qu'ils pointaient bien tous sur le même fichier 
 d'origine. J'ai également constaté que je pouvait modifier et 
 enregistrer chaque document sans qu'il y ait aucune mise à jour 
 dans les autres, chaque enregistrement d'un document écrasant le 
 fichier précédent sans que les autres document semblent au courant.
  
  Ce comportement est-il normal sachant que lors de l'ouverture 
 manuelle de fichiers il y a un verrouillage qui empêche cettte 
 situation de se produire ?
  
 
 
 
 -
 To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
 For additional commands, e-mail: prog-h...@fr.openoffice.org
 


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org


-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org



Re: [prog] Mot de passe bibliotheque

2009-03-12 Par sujet Thibault Vataire
Bonjour,

Je n'arrive pas à reproduire votre problème :

1/ lorsqu'une de mes librairies est protégée par mot de passe, je n'arrive pas 
à lire/modifier sont contenu avec une autre macro.
2/ lorsque j'ouvre cette librairie avec le mot de passe, je peux lire/modifier 
le contenu et le sauvegarder. Cela n'empêche en rien d'accéder à son contenu 
par la suite, que ce soit par macro ou par l'interface graphique.

Voici un exemple de la manière dont je procède :


option explicit

sub main

dim const passw = password
dim const libName = mdp
dim const modName = Module1
dim doc as object
dim libr as object
dim libCont as object
dim modContent as string

doc = starDesktop.loadComponentFromUrl( 
convertToUrl(/tmp/test_mdp.ods), _
_blank, _

com.sun.star.frame.FrameSearchFlag.CREATE, _
array())
libCont = doc.basicLibraries
libCont.loadLibrary(libName)
libr = libCont.getByName(libName)

'rien ne s'afficher à cause du mot de passe
modContent = libr.getByName(modName)
msgbox(modContent)

'affiche le contenu du module
if (libCont.isLibraryPasswordProtected(libName) = true) then
libCont.verifyLibraryPassword(libName, passw)
end if
modContent = libr.getByName(modName)

'modifie, met à jour le module et re-affiche le contenu
libr.replaceByName(modName, (modContent  chr(10)  'commentaire 
ajouté au module.))
modContent = libr.getByName(modName)
msgbox(modContent)

doc.store()
doc.dispose()

end sub

Est-ce également de cette manière que vous modifiez le contenu de la macro?
Peux-être n'ai-je pas bien compris votre problème?

Cordialement,
T. Vataire


- Mail Original -
De: Pascal Chantriaux pascal.chantri...@free.fr
À: prog@fr.openoffice.org
Envoyé: Dimanche 8 Mars 2009 08h26:39 GMT +01:00 Amsterdam / Berlin / Berne / 
Rome / Stockholm / Vienne
Objet: [prog] Mot de passe bibliotheque

Bonjour,

J'ai écrit une macro qui, à partir d'un document calc A, ouvre un autre 
document calc B qui contenant une bibliothèque de macro M protégée par 
mot de passe pour éliminer les lignes de commentaire de M afin de 
réduire la taille du document B.

Je suis surpris qu'on puisse faire cela sans donner le mot de passe de 
la bibliothèque (je n'ai pas trouvé comment le faire et cela ne semble 
pas empêcher la macro d'agir)

Cette macro fonctionne bien comme j'ai pu le constater en la faisant 
tourner en laissant le document B ouvert par contre si elle sauve 
ensuite le document B, il n'y a plus moyen d'ouvrir la bibliothèque M, 
il refuse le mot de passe ainsi que le mot de passe vide.

Ce comportement est-il connu ?

D'avance, merci.

Pascal

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org


-- 

Cordialement,

Equipe support Starxpert.

-
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org