Re: [fr-users] Macro dans writer

2017-12-17 Par sujet Jean-Michel PIERRE
Bonjour. 
Si tu affiches l'historique de la page du Wiki, tu verras que le texte de la 
Macro date un peu.
Rien d'étonnant à ce qu'il y aie aujourd'hui une erreur d'objet. 
Les codes des Macros les plus à jour sont ceux du forum. 

Jean-Michel PIERRE 
Tél : 06.19.55.73.22

> Le 17 déc. 2017 à 14:45, Bernard Siaud alias Troumad  a 
> écrit :
> 
> 
> Bonjour
> 
> En partant de la doc de LibreOffice ( 
> https://wiki.documentfoundation.org/Documentation/BASIC_Guide/fr ) , on est 
> renvoyé sur la doc de AOO.
> J'arrive ici : 
> https://wiki.openoffice.org/wiki/FR/Documentation/BASIC_Guide/Structure_of_Text_Documents
> Et je teste le premier programme :
> 
>> REM  *  BASIC  *
>> 
>> 
>> sub Main
>> 
>> Dim Doc As Object
>> Dim Enum As Object
>> Dim TextElement As Object
>> 
>> ' Create document object
>> Doc = StarDesktop.CurrentComponent
>> ' Create enumeration object
>> Enum = Doc.Text.createEnumeration
>> ' loop over all text elements
>> 
>> While Enum.hasMoreElements
>>   TextElement = Enum.nextElement
>> 
>>   If TextElement.supportsService("com.sun.star.text.TextTable") Then
>> MsgBox "The current block contains a table."
>>   End If
>> 
>>   If TextElement.supportsService("com.sun.star.text.Paragraph") Then
>> MsgBox "The current block contains a paragraph."
>>   End If
>> 
>> Wend
>> 
>> 
>> end sub
> 
> Et ça ne marche pas :
>> Erreur d'exécution BASIC.
>> Propriété ou méthode non trouvée : Text.
> Doc.Text est inconnu :(
> -- 
> Amicalement vOOotre  Troumad Alias Bernard SIAUD
> mon site : http://troumad.org : AD maths WEB...
> Pour la liberté http://www.developpez.net/forums/f17/systemes/linux/ 
> N'envoyez que des documents avec des formats ouverts, comme 
> http://fr.libreoffice.org
> 
> -- 
> Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour vous désinscrire
> Les archives de la liste sont disponibles à 
> https://listarchives.libreoffice.org/fr/users/
> Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
> pourront pas être supprimés
> 


-- 
Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à 
https://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés


[fr-users] Macro dans writer

2017-12-17 Par sujet Bernard Siaud alias Troumad

Bonjour

En partant de la doc de LibreOffice ( 
https://wiki.documentfoundation.org/Documentation/BASIC_Guide/fr ) , on 
est renvoyé sur la doc de AOO.
J'arrive ici : 
https://wiki.openoffice.org/wiki/FR/Documentation/BASIC_Guide/Structure_of_Text_Documents

Et je teste le premier programme :


REM  *  BASIC  *


sub Main

Dim Doc As Object
Dim Enum As Object
Dim TextElement As Object

' Create document object
Doc = StarDesktop.CurrentComponent
' Create enumeration object
Enum = Doc.Text.createEnumeration
' loop over all text elements

While Enum.hasMoreElements
  TextElement = Enum.nextElement

  If TextElement.supportsService("com.sun.star.text.TextTable") Then
    MsgBox "The current block contains a table."
  End If

  If TextElement.supportsService("com.sun.star.text.Paragraph") Then
    MsgBox "The current block contains a paragraph."
  End If

Wend


end sub


Et ça ne marche pas :

Erreur d'exécution BASIC.
Propriété ou méthode non trouvée : Text.

Doc.Text est inconnu :(
--
Amicalement vOOotre  Troumad Alias Bernard SIAUD
mon site : http://troumad.org : AD maths WEB...
Pour la liberté http://www.developpez.net/forums/f17/systemes/linux/ 
N'envoyez que des documents avec des formats ouverts, comme 
http://fr.libreoffice.org


--
Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à 
https://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés



[fr-users] Macro dans Writer

2015-08-08 Par sujet Nicolas PAOUR

Bonjour,
Merci, je vais regarder
Nicolas


Nicolas Paour
292, route du Grenat
Villette
38380 Saint Laurent du Pont
Tel : 09 52 30 99 07
Mob : 06 51 96 10 45
Fax : 09 57 30 99 07




Sujet :
Re: [fr-users] Macro dans Writer
De :
linux supsup.li...@free.fr
Date :
07/08/2015 08:48

Pour :
users@fr.libreoffice.org


Ci-joint un exemple de procédure que j'utilise pour copier un 
diagramme  dans un tableau de writer à la position que je veux.
remarque il largement perfectible de plus j'appelle d'autre procédure 
qui sont suffisamment explicite pour être remplacer par des lignes de 
codes adéquate et il reste la définition de l'ancrage que je n'arrive 
pas à faire.
Attention aux ouverture et fermeture de fichier elle rende active le 
document

Cordialement
Jean Luc
-
- [fr-users] Re: Espaces insécables
-   21366 - William Pyke guillaume...@free.fr
-
- [fr-users] Re: Espaces insécables
-   21367 - William Pyke guillaume...@free.fr
-
- [fr-users] installation libreoffice 4.4 sous windows 10
-   21368 - vulcain vulc...@gmx.com
-
- [fr-users] installation libreoffice 4.4 sous windows 10
-   21369 - Sébastien Adam sebastien.adam...@gmail.com
-
- [fr-users] Icônes Sifr
-   21370 - Didier TROM didier.t...@free.fr
-
- [fr-users] installation libreoffice 4.4 sous windows 10
-   21371 - Jacques Guilleron jacques.guille...@orange.fr
-




--
Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour savoir comment vous 
désinscrire
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés


Re: [fr-users] Macro dans Writer

2015-08-07 Par sujet linux
Ci-joint un exemple de procédure que j'utilise pour copier un diagramme  
dans un tableau de writer à la position que je veux.
remarque il largement perfectible de plus j'appelle d'autre procédure 
qui sont suffisamment explicite pour être remplacer par des lignes de 
codes adéquate et il reste la définition de l'ancrage que je n'arrive 
pas à faire.
Attention aux ouverture et fermeture de fichier elle rende active le 
document

Cordialement
Jean Luc


Sub 
CopierUnDiagrammeDansUnTableauDUnePage(oMonDocumentCUDDUP,NomFeuilleDiagrammeCUDDUP,nomFEUILLEdonneeCUDDUP,_

NOMdiagrameCUDDUP,oMonDocumentTexteCUDDUP,NomDuTableauCUDDUP,PositionDeLaCopieDansLeTableauCUDDUP,statutCUDDUP)

 Dim oMonDiagrammeCUDDUP, oLeDiagrammeCUDDUP, 
oLesFeuillesCUDDUP,oMaFeuilleCUDDUP, FenetreSelectionnerCUDDUP As Object

 Dim oMonTableauCUDDUP As Object
 Dim ServiceCUDDUP, PositionDuCurseurDansLeTableauCUDDUP, 
NomDuFichierCalcCUDDUP  As String

 Dim LeDiagrammeExisteCUDDUP As Boolean
 Dim oDispatchHelperCUDDUP As Object
' dispatcher = createUnoService(com.sun.star.frame.DispatchHelper)
 Dim ArgsCUDDUP(0) as new com.sun.star.beans.PropertyValue
 dim PysDoc,PysCopie as object, PysDestination, oDocCtrl, oDocFrame, 
oDrawDoc, oDrawPage , oDrawDocCtrl, oDrawDocFrame as object
 Dim NiveauDebugCUDDUP, 
NbrDeDiagrammeCUDDUP,DeplacementHorizontalCUDDUP, 
DeplacementVerticalCUDDUP As Integer


 NiveauDebugCUDDUP=1
 MessageDebug(NiveauDebugCUDDUP,3,582,CopierUnDiagrammeDansUnePage)
 NomDuFichierCalcCUDDUP = oMonDocumentCUDDUP.Location 'l'argument n'est 
pas facultatif

 If NOMdiagrameCUDDUP= Then
   NOMdiagrameCUDDUP=Object 1
 End If
' On Error Goto errmodifCUDDUP
 oMaFeuilleCUDDUP = 
oMonDocumentCUDDUP.sheets.getByName(NomFeuilleDiagrammeCUDDUP)

 For NbrDeDiagrammeCUDDUP = 0 to oMaFeuilleCUDDUP.DrawPage.count - 1
  oMonDiagrammeCUDDUP = 
oMaFeuilleCUDDUP.DrawPage.getByIndex(NbrDeDiagrammeCUDDUP)

  If oMonDiagrammeCUDDUP.name = NOMdiagrameCUDDUP Then
thiscomponent.currentcontroller.select(oMonDiagrammeCUDDUP)
oLeDiagrammeCUDDUP   = ThisComponent.CurrentController.Frame
oDispatchHelperCUDDUP = 
createUnoService(com.sun.star.frame.DispatchHelper)
oDispatchHelperCUDDUP.executeDispatch(oLeDiagrammeCUDDUP , 
.uno:Copy, , 0, Array())

NbrDeDiagrammeCUDDUP = oMaFeuilleCUDDUP.DrawPage.count - 1
   Else
If NbrDeDiagrammeCUDDUP = oMaFeuilleCUDDUP.DrawPage.count - 1 Then
MessageDebug(NiveauDebugCUDDUP,1,605,CopierUnDiagrammeDansUnePage,Array(nom 
du diagramme selectionné ,oMonDiagrammeCUDDUP.name ,nom du diagramme à 
trouver , NOMdiagrameCUDDUP)

End If
  End If
 Next NbrDeDiagrammeCUDDUP
 EnregistrerEtFermer(oMonDocumentCUDDUP)
 EnregistrerE(oMonDocumentTexteCUDDUP)
 oMonTableauCUDDUP = 
oMonDocumentTexteCUDDUP.createInstance(com.sun.star.text.TextTable)
 oMonTableauCUDDUP = 
FindObjectByName(oMonDocumentTexteCUDDUP.TextTables,NomDuTableauCUDDUP, 
com.sun.star.text.TextTable)

 ThisComponent.CurrentController.Select(oMonTableauCUDDUP)
 dim document   as object
 document   = ThisComponent.CurrentController.Frame
 Dim CurseurVisible,  CurseurVisible2 As Object
 CurseurVisible=oMonDocumentTexteCUDDUP.currentcontroller.ViewCursor
 PositionDuCurseurDansLeTableauCUDDUP= CurseurVisible.Cell.CellName
 If CurseurVisible.Cell.CellName = PositionDeLaCopieDansLeTableauCUDDUP 
Then
  ' CurseurVisible.gotoRange(oMonTableauCUDDUP.getAnchor(),False) 'ne 
sert à rien

  Else   'il faut décaler le curseur
DeplacementHorizontalCUDDUP=Val(Right(PositionDeLaCopieDansLeTableauCUDDUP,1)) 
- Val(Right(PositionDuCurseurDansLeTableauCUDDUP,1))

DeplacementVerticalCUDDUP=Asc(left(PositionDeLaCopieDansLeTableauCUDDUP,1))-Asc(left(PositionDuCurseurDansLeTableauCUDDUP,1))
   CurseurVisible.goDown(DeplacementVerticalCUDDUP,False)
   CurseurVisible.goRight(DeplacementHorizontalCUDDUP,False)
  End IF
  oDispatchHelperCUDDUP = createUnoService( 
com.sun.star.frame.DispatchHelper )

  dim args6(0) as new com.sun.star.beans.PropertyValue
  args6(0).Name = SelectedFormat
  args6(0).Value = 3 '3 ' Copie au paragraphe '2  pas de copie '1 pas 
de copie '3
  oDispatchHelperCUDDUP.executeDispatch( document, 
.uno:ClipboardFormatItems, , 0, args6()) 'copie dans le tableau
 '   oDispatchHelper.executeDispatch( oMonDocumentTexteCUDDUP, 
.uno:Paste, , 0,Array() )
   ' oDispatchHelperCUDDUP.executeDispatch( document, .uno:Paste, , 
0,args5() ) 'copie à la page

dim i as integer
dim o as object
' o= ThisComponent.Select() 'document.getPropertySetInfo.Properties ' 
ici THISCOMPONENT est l'objet à scanner

' Xray o
'for i = lbound(o) to ubound(o)
'print o(i).name
'next i

' document   = ThisComponent.CurrentController.Frame
' Print (recherche de l'ancrage)
' Xray document
' document.SetAnchorToChar
 '  OuvrirleFichier(NomDuFichierCalcCUDDUP,, 
CopierUnDiagrammeDansUnTableauDUnePage Ligne 657)

 '  On Error GoTo 0
  Exit Sub

 errmodifCUDDUP:
  print (Dans le Programme ModifierUnDiagramme L'instruction n'existe 
pas erreur non Bloquante  N°:  Err Error  à la ligne   

Re: [fr-users] macro dans writer

2011-06-16 Par sujet claude

Bonjour,

Pourquoi ne pas utiliser le recherche et remplace.

L'exemple ci-dessous a été fait sous OO 3.2.1 mais cela doit fonctionner 
sous libreoffice ( afin je le souhaite)


Option Explicit

Sub RemplacerCaractereParNombreAleatoire()
Dim monDocument As Object
Dim Cherche As Object, trouv As Variant
Dim x As Long
monDocument = ThisComponent
Cherche = monDocument.createSearchDescriptor
with Cherche
 .SearchString = µ
 .SearchWords = false
end with
trouv = monDocument.findAll(Cherche)
print Nombre d'occurrences :   trouv.Count
for x = 0 to trouv.Count -1
 trouv(x).string = Int((8*Rnd)+1)
next
End Sub

Cordialement

Claude
 Message original 
Sujet : [fr-users] macro dans writer
De : Olivier Jaccomard jaccom...@free.fr
Pour : users@fr.libreoffice.org
Date : 15/06/2011 23:52

Bonjour,

cherchant à convertir un système fait sous Word, je voudrais faire une 
macro qui remplace tous les caractères µ d'un document par un nombre 
aléatoire entre 1 et 8.


J'ai essayé ça, mais sans résultat (mon curseur ne se déplace pas) :

Pouvez-vous m'aider ?
Cordialement,
O.Jaccomard

Sub Macro1
Randomize 2^14-1
Dim monDocument As Object, monTexte As Object
Dim monCurseur As Object
Dim curseurVisible As Object

monDocument = ThisComponent
monTexte=monDocument.Text
monCurseur=monTexte.createTextCursor
curseurVisible=monDocument.CurrentController.getViewCursor
monDocument.CurrentController.Select(monCurseur)
monCurseur.gotoStart(False)
curseurVisible.gotoStart(false)
For i=1 To monDocument.CharacterCount
If (curseurVisible.String=µ) Then
curseurVisible.String=Int((8*Rnd)+1)
End If
monCurseur.goRight(1,false)
curseurVisible.goRight(1,false)
Next i
End Sub






--
Envoyez un mail à users+h...@fr.libreoffice.org pour savoir comment vous 
désinscrire
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés



Re: [fr-users] macro dans writer

2011-06-16 Par sujet Élodie Omer
Bonjour, 

Pourquoi ne pas utiliser le recherche et remplace. 

Comment fait-on alors le nombre aléatoire ??? 


 Message original  
Sujet : [fr-users] macro dans writer 
De : Olivier Jaccomard jaccom...@free.fr 
Pour : users@fr.libreoffice.org 
Date : 15/06/2011 23:52 
 Bonjour, 
 
 cherchant à convertir un système fait sous Word, je voudrais faire une 
 macro qui remplace tous les caractères µ d'un document par un nombre 
 aléatoire entre 1 et 8. 
 
 J'ai essayé ça, mais sans résultat (mon curseur ne se déplace pas) : 
 
 Pouvez-vous m'aider ? 
 Cordialement, 
 O.Jaccomard 
 
 Sub Macro1 
 Randomize 2^14-1 
 Dim monDocument As Object, monTexte As Object 
 Dim monCurseur As Object 
 Dim curseurVisible As Object 
 
 monDocument = ThisComponent 
 monTexte=monDocument.Text 
 monCurseur=monTexte.createTextCursor 
 curseurVisible=monDocument.CurrentController.getViewCursor 
 monDocument.CurrentController.Select(monCurseur) 
 monCurseur.gotoStart(False) 
 curseurVisible.gotoStart(false) 
 For i=1 To monDocument.CharacterCount 
 If (curseurVisible.String=µ) Then 
 curseurVisible.String=Int((8*Rnd)+1) 
 End If 
 monCurseur.goRight(1,false) 
 curseurVisible.goRight(1,false) 
 Next i 
 End Sub 
 
 



-- 
Envoyez un mail à users+h...@fr.libreoffice.org pour savoir comment vous 
désinscrire 
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/users/ 
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés 


-- 
Envoyez un mail à users+h...@fr.libreoffice.org pour savoir comment vous 
désinscrire
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés



Re: [fr-users] macro dans writer

2011-06-16 Par sujet pierre (message personnel)
idée de bidouille : copier-coller dans un tableur et utiliser 
=SUBSTITUE(B7;µ;ALEA.ENTRE.BORNES(1;8))
sauf que le passage writercalc transforme les paragraphes en cellules 
: donc si plusieurs occurrences de µ dans un paragraphes, le tirage 
aléatoire est le même pour toutes les occurrences...
il faudrait trouver un moyen d'exploser le texte pour mettre un mot dans 
chaque cellule

bonne jourrnée,
Pierrre

Le 16/06/2011 11:16, Élodie Omer a écrit :

Bonjour,


Pourquoi ne pas utiliser le recherche et remplace.

Comment fait-on alors le nombre aléatoire ???


 Message original 
Sujet : [fr-users] macro dans writer
De : Olivier Jaccomardjaccom...@free.fr
Pour : users@fr.libreoffice.org
Date : 15/06/2011 23:52

Bonjour,

cherchant à convertir un système fait sous Word, je voudrais faire une
macro qui remplace tous les caractères µ d'un document par un nombre
aléatoire entre 1 et 8.

J'ai essayé ça, mais sans résultat (mon curseur ne se déplace pas) :

Pouvez-vous m'aider ?
Cordialement,
O.Jaccomard

Sub Macro1
Randomize 2^14-1
Dim monDocument As Object, monTexte As Object
Dim monCurseur As Object
Dim curseurVisible As Object

monDocument = ThisComponent
monTexte=monDocument.Text
monCurseur=monTexte.createTextCursor
curseurVisible=monDocument.CurrentController.getViewCursor
monDocument.CurrentController.Select(monCurseur)
monCurseur.gotoStart(False)
curseurVisible.gotoStart(false)
For i=1 To monDocument.CharacterCount
If (curseurVisible.String=µ) Then
curseurVisible.String=Int((8*Rnd)+1)
End If
monCurseur.goRight(1,false)
curseurVisible.goRight(1,false)
Next i
End Sub







--
Envoyez un mail à users+h...@fr.libreoffice.org pour savoir comment vous 
désinscrire
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés



[fr-users] macro dans writer

2011-06-15 Par sujet Olivier Jaccomard

Bonjour,

cherchant à convertir un système fait sous Word, je voudrais faire une 
macro qui remplace tous les caractères µ d'un document par un nombre 
aléatoire entre 1 et 8.


J'ai essayé ça, mais sans résultat (mon curseur ne se déplace pas) :

Pouvez-vous m'aider ?
Cordialement,
O.Jaccomard

Sub Macro1
Randomize 2^14-1
Dim monDocument As Object, monTexte As Object
Dim monCurseur As Object
Dim curseurVisible As Object

monDocument = ThisComponent
monTexte=monDocument.Text
monCurseur=monTexte.createTextCursor
curseurVisible=monDocument.CurrentController.getViewCursor
monDocument.CurrentController.Select(monCurseur)
monCurseur.gotoStart(False)
curseurVisible.gotoStart(false)
For i=1 To monDocument.CharacterCount
If (curseurVisible.String=µ) Then
curseurVisible.String=Int((8*Rnd)+1)
End If
monCurseur.goRight(1,false)
curseurVisible.goRight(1,false)
Next i
End Sub


--
Envoyez un mail à users+h...@fr.libreoffice.org pour savoir comment vous 
désinscrire
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés