[Résolu] [Calc] Remise à zéro d'un formulaire

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
fcka
Membre OOrganisé
Membre OOrganisé
Messages : 53
Inscription : 02 févr. 2018 22:15

[Résolu] [Calc] Remise à zéro d'un formulaire

Message par fcka »

Bonjour,
J'ai créé un formulaire permettant à partir de dates saisies de calculer diverses dates et délais (ce n'est pas le sujet de mon post).
A partir des exemples présentés sur le site, j'ai essayé de donner à mon formulaire une approche progressive dans la saisie et le choix des situations propres.
J'ai pour cela utilisé des "cases à cocher" et une macro permettant de "cacher" des lignes (4 pavés au total)

mon problème actuel est la "remise à zéro" du formulaire :
l'enregistreur de macro permet de "vider" les cellules de saisie. Par contre l'enregistreur de macro ne semble pas permettre de "décocher" les cases à cocher....

Est-ce que quelqu'un peut m'aider pour ajouter à ma macro de 'remise à zéro' un code permettant de réduire les 4 pavés de mon formulaire ?


merci
fcka
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par fcka le 09 sept. 2018 19:19, modifié 1 fois.
HOME : (car pb avec base/postgresl avec version plus récente)
libre office Version: 6.0.6.2 (x64)
Win 8.1

DESK: (imposé)
libre office Version: 5 (x64)
Win 7
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9248
Inscription : 28 août 2010 08:45

Re: [Calc] Remise à zéro d'un formulaire

Message par micmac »

Bonjour,
Dans votre signature il y a écrit :libre office 5.3.6.1
La signature que vous avez indiquée est incomplète et indique une version de LibreOffice qui n'est plus maintenue.
Est-ce une erreur, un oubli, un choix, une obligation ?
Dans ce dernier cas, mentionnez-le dans votre signature par "Obligation de version".

Pour connaître la version que vous possédez : https://forum.openoffice.org/fr/forum/v ... 582#p11582

Afin de profiter des dernières améliorations, il est fortement recommandé d'être à jour de la dernière version

Dans votre signature il est nécessaire d'indiquer :
1- La version exacte de AOO ou LibO (AOO 4.1.5, LibO 6.0.6 par exemple) ;
2- La version exacte du système d'exploitation (Windows XP SP3, Vista SP2, Windows 7 SP1, Win 8.1, Win 10, Ubuntu 18.4, MacOS 10.13.6 par exemple).
Accès direct à votre signature pour la corriger.

Cordialement.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
fcka
Membre OOrganisé
Membre OOrganisé
Messages : 53
Inscription : 02 févr. 2018 22:15

Re: [Calc] Remise à zéro d'un formulaire

Message par fcka »

bonjour,

j'ai corrigé grâce au lien accès "direct signature".
sur mon micro personnel la version est libre office Version: 6.0.4.2 (x64)
(la version de libre office de mon poste de travail est certainement un peu plus ancienne).
Cdlt,
Fcka
HOME : (car pb avec base/postgresl avec version plus récente)
libre office Version: 6.0.6.2 (x64)
Win 8.1

DESK: (imposé)
libre office Version: 5 (x64)
Win 7
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9248
Inscription : 28 août 2010 08:45

Re: [Calc] Remise à zéro d'un formulaire

Message par micmac »

Utilisez le même lien pour ajouter la version exacte du système d'exploitation qui fait tourner votre machine (Windows XP SP3, Vista SP2, Windows 7 SP1, Win 8.1, Win 10, Ubuntu 18.4, MacOS 10.13.6 par exemple).
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: [Calc] Remise à zéro d'un formulaire

Message par Hubert Lambert »

Bonjour,

C-dessous une première proposition.
Cordialement.

Code : Tout sélectionner

sub raz
    doc = thiscomponent
    feuille = doc.CurrentController.ActiveSheet
    ' effacer le contenu
    flags = com.sun.star.sheet.CellFlags
    feuille.clearContents(flags.VALUE + flags.DATETIME + flags.STRING)
    ' décocher les cases à cocher
    formulaire = feuille.DrawPage.Forms(0)
    for each controle in formulaire
        if controle.supportsService("com.sun.star.awt.UnoControlCheckBoxModel") then
            vue = doc.CurrentController.getControl(controle)
            vue.setState(False)
        end if
    next controle
    ' masquer les plages
    plages = doc.NamedRanges
    for each nom in plages.ElementNames
        if left(nom, 6) = "masque" then
            feuille.getCellRangeByName(nom).Rows.IsVisible = False
        end if
    next nom
end sub
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
fcka
Membre OOrganisé
Membre OOrganisé
Messages : 53
Inscription : 02 févr. 2018 22:15

[Résolu] [Calc] Remise à zéro d'un formulaire

Message par fcka »

Bonsoir,

MERCI à Hubert Lambert.

ça fonctionne (le code permet de décocher les cases à cocher et d'effacer le contenu du formulaire.
sur ce dernier point, pour éviter d'effacer les libellés, j'ai neutralisé les flags.VALUE et flags.STRING) sur la ligne feuille.clearContents (flags.VALUE + flags.DATETIME + flags.STRING).

Reste le problème d'esthétisme : les étiquettes des cases à cocher ne se cachent pas totalement... Je donne ma langue au chat. Mais bon je vais pouvoir avancer sur le fond...

Encore merci
fcka
HOME : (car pb avec base/postgresl avec version plus récente)
libre office Version: 6.0.6.2 (x64)
Win 8.1

DESK: (imposé)
libre office Version: 5 (x64)
Win 7