[fr-users] Re: [fr-users] Re: [fr-users] Re: [fr-users] Re: [fr-users] Re: [fr-users] [writer]Document maître => pas prendre les odt entiers.

2022-05-13 Par sujet Patrick



Le 13/05/2022 à 13:39, Bernard Siaud alias Troumad a écrit :

Merci ça marche !
Une question : pour la taille de 20 au tableau elements ?


Très bonne question !
En fait je ne sais plus, je ne me rappelle pas pourquoi. Il y a 
maintenant un petit moment que je l'ai fait !



Voici mon code et est-ce que je peux le donner ici : 
https://forum.openoffice.org/fr/forum/viewtopic.php?p=360542#p360542



Pourquoi pas ? c'est une bonne idée.



Sub choix

    dim i,j,taille,drap as integer
    dim mode as Variant
    dim PysField as object
    dim nomType as string
    dim newType as string
    dim elements(20)
    dim document   as object
    dim dispatcher as object

    rem mettre la liste des types souhaités
    mode = Array("impression", "complet")
    drap=0
    taille=Ubound(mode)

    document   = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

    elements = ThisComponent.TextFieldMasters.getElementNames()

    rem Chercher la variable "affichage"
    for i=0 to ubound(elements)
    if (instr(elements(i),"affichage")>0) then
    valeur= 
ThisComponent.TextFieldMasters.getByName(elements(i)).DependentTextFields(0).content

    for j= 0 to taille
    if mode(j) = valeur then
        if jThisComponent.TextFieldMasters.getByName(elements(i)).DependentTextFields(0).content 
= mode (j+1)

     endif
    endif

    next j

    if drap=0 then rem prendre en compte le plus grand et 
les cas non prévus
ThisComponent.TextFieldMasters.getByName(elements(i)).DependentTextFields(0).content 
= mode (0)

    endif
            dispatcher.executeDispatch(document, 
".uno:UpdateFields", "", 0, Array()) REM mettre à jour l'affichage



    i=ubound(elements)
    endif
    next i

End Sub



--
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/
Privacy Policy: https://www.documentfoundation.org/privacy


[fr-users] Re: [fr-users] Re: [fr-users] Re: [fr-users] Re: [fr-users] [writer]Document maître => pas prendre les odt entiers.

2022-05-13 Par sujet Bernard Siaud alias Troumad

Merci ça marche !
Une question : pour la taille de 20 au tableau elements ?
Voici mon code et est-ce que je peux le donner ici : 
https://forum.openoffice.org/fr/forum/viewtopic.php?p=360542#p360542



Sub choix

    dim i,j,taille,drap as integer
    dim mode as Variant
    dim PysField as object
    dim nomType as string
    dim newType as string
    dim elements(20)
    dim document   as object
    dim dispatcher as object

    rem mettre la liste des types souhaités
    mode = Array("impression", "complet")
    drap=0
    taille=Ubound(mode)

    document   = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

    elements = ThisComponent.TextFieldMasters.getElementNames()

    rem Chercher la variable "affichage"
    for i=0 to ubound(elements)
    if (instr(elements(i),"affichage")>0) then
    valeur= 
ThisComponent.TextFieldMasters.getByName(elements(i)).DependentTextFields(0).content

    for j= 0 to taille
    if mode(j) = valeur then
        if jThisComponent.TextFieldMasters.getByName(elements(i)).DependentTextFields(0).content 
= mode (j+1)

     endif
    endif

    next j

    if drap=0 then rem prendre en compte le plus grand et 
les cas non prévus
ThisComponent.TextFieldMasters.getByName(elements(i)).DependentTextFields(0).content 
= mode (0)

    endif
            dispatcher.executeDispatch(document, 
".uno:UpdateFields", "", 0, Array()) REM mettre à jour l'affichage



    i=ubound(elements)
    endif
    next i

End Sub

--
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/
Privacy Policy: https://www.documentfoundation.org/privacy


[fr-users] Re: [fr-users] Re: [fr-users] Re: [fr-users] [writer]Document maître => pas prendre les odt entiers.

2022-05-13 Par sujet Patrick

Bonjour Bernard,

voici la macro que j'utilise pour changer mon type de document "Sujet" 
ou "Correction"

Ma variable s'appelle : "Type"

sub ToggleType()
dim nomType as string
dim newType as string
dim elements(20)
dim document   as object
dim dispatcher as object

    document   = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

    elements = ThisComponent.TextFieldMasters.getElementNames()

    ' Chercher la variable "Type"
    for i=0 to ubound(elements)
    if (instr(elements(i),"Type")>0) then
            ' Récupérer la valeur du Type
            nomType = 
ThisComponent.TextFieldMasters.getByName(elements(i)).DependentTextFields(0).content

            if (nomType = "Correction")then
                newType = "Sujet"
            else
                newType = "Correction"
            endif
                ' Changer la valeur de la variable
ThisComponent.TextFieldMasters.getByName(elements(i)).DependentTextFields(0).content 
= newType
            dispatcher.executeDispatch(document, 
".uno:UpdateFields", "", 0, Array())

    endif
    next i
End sub


Elle est très certainement perfectible.
Je n'ai pas encore l'habitude des macros de LO. j'étais plutôt expert 
dans VBA (il y a des années)


Bonne journée
Patrick


Le 13/05/2022 à 11:16, Bernard Siaud alias Troumad a écrit :

Bonjour

Le 12/05/2022 à 19:44, Patrick a écrit :
A priori oui, je n'ai pas fait de document maître, mais j'utilise les 
sections "masquées sous condition" pour faire comme tu le dis, une 
section contenant la correction.
Ma condition est basée sur une variable qui peut avoir deux valeurs 
{Sujet, Correction}
J'ai une macro associée à un bouton dans ma barre d'outils qui change 
la valeur (Sujet → Correction et vice-versa)
Je n'arrive pas à trouver comment repérer la variable dans une macro. 
Je souhaite la modifier, mais, je ne sais pas la trouver.


--
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/
Privacy Policy: https://www.documentfoundation.org/privacy