[Résolu] [Calc] Afficher/cacher cellules d'une autre page

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 !
Adri29
Membre OOrganisé
Membre OOrganisé
Messages : 77
Inscription : 27 nov. 2018 14:42

[Résolu] [Calc] Afficher/cacher cellules d'une autre page

Message par Adri29 »

Bonjour,

J'aimerais, en fonction de cette exemple:
Si si Feuille1.E7 = 0 ET Feuille1.E8 = 0 alors sur la page 2 les cellules D9 E9 et D10 et E10 de la page 2 n'apparaissent pas.
si Feuille1.E7 = 1 ET Feuille1.E8 = 1 alors les cellules D9 E9 et D10 E10 de la page 2 apparaissent.
Et évidemment S'il y a que Feuille1.E7 = 1 et l'autre à 0 ça fait apparaître les cellules D9 et E9 et vice versa

Au début j'essayais non pas avec 0 mais avec "" mais ça me semble encore plus dur donc j'ai abandonner cette idée.
Je me suis entraîné aux macros cette nuit mais ce n'ai pas concluant ....


EDIT: si il est impossible de faire disparaître juste les cellules mais juste les lignes je suis intéressé aussi :)
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Adri29 le 04 févr. 2019 14:04, modifié 4 fois.
LibreOffice Version: 6.1.5.2 sous window 10.1
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
Messages : 2744
Inscription : 16 avr. 2010 13:31

Re: [Calc] Afficher/cacher cellules en fonction d'une autre

Message par OOotremer971 »

Bonjour,

Le code est connecté à l'événement de feuille Contenu modifié

Code : Tout sélectionner

REM  *****  BASIC  *****
Option Explicit
Sub Main(oevt As Object)
'xray oevt
Select case oevt.AbsoluteName
	case "$Feuille1.$E$6"
		Thiscomponent.Sheets(1).Rows.GetByIndex(8).IsVisible = oevt.Value
	case "$Feuille1.$E$7"
		Thiscomponent.Sheets(1).Rows.GetByIndex(9).IsVisible = oevt.Value
End select
End Sub
A
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11
Adri29
Membre OOrganisé
Membre OOrganisé
Messages : 77
Inscription : 27 nov. 2018 14:42

Re: [Calc] Afficher/cacher cellules en fonction d'une autre

Message par Adri29 »

Bonjour
C'est parfait, l'exemple fonctionne :D
Je vais pouvoir me baser sur ce code afin de me modifier pour réaliser ce que je souhaite :D
LibreOffice Version: 6.1.5.2 sous window 10.1
Adri29
Membre OOrganisé
Membre OOrganisé
Messages : 77
Inscription : 27 nov. 2018 14:42

Re: [Résolu] [Calc] Afficher/cacher cellules en autre page

Message par Adri29 »


La modération vous a écrit: :alerte: Merci de ne pas poster plusieurs messages à la suite !
Si vous devez ajouter un complément d'information, le bouton "Editer" à la droite du message permet d'y remédier.

En attendant une prochaine réponse, vous pouvez participer également en répondant à d'autres questions sur notre forum.

Je vois que tu as modifié les conditions, puis-je savoir pourquoi? afin que je ne fasse plus d'erreur, ça serait sympa :D

j'aimerais aussi comprendre

Code : Tout sélectionner

      Thiscomponent.Sheets(1).Rows.GetByIndex(8).IsVisible = oevt.Value
Car, jen fouinant un peu sur le forum j'ai vue que le 8 ici correspondait a correspond à l'index de la ligne, soit le numéro affiché -1, or je ne comprend pas pourquoi ce choix de numéro

De plus quand je clique sur exécuter (même si ton programme fonctionne comme j'en ai envie) il me mette une érreur sur cette ligne:

Code : Tout sélectionner

Select case oevt.AbsoluteName
Message : wrong number of parameters!
Peut être qu'il me manque une extension???
LibreOffice Version: 6.1.5.2 sous window 10.1
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25184
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Afficher/cacher cellules en fonction d'une autre

Message par Dude »

Adri29 a écrit :De plus quand je clique sur exécuter
Qui t'as dit de faire ça ?
OOotremer971 a écrit :Le code est connecté à l'événement de feuille Contenu modifié
Forcément si tu exécutes directement, la routine ne reçoit pas le paramètre de l'événement.
Adri29
Membre OOrganisé
Membre OOrganisé
Messages : 77
Inscription : 27 nov. 2018 14:42

Re: [Calc] Afficher/cacher cellules en fonction d'une autre

Message par Adri29 »

Qui t'as dit de faire ça ?
Je pensais qu'il fallait à chaque modification cliquer sur outils -> Macros -> exécuter la macros
désoler de mon erreur de débutant

Pouvez vous m'expliquer ça

Code : Tout sélectionner

     Thiscomponent.Sheets(1).Rows.GetByIndex(8).IsVisible = oevt.Value
étant donné que j'essaye de me baser de ce code pour le vrai tableur :D

EDIT
Si j'ai bien compris

Code : Tout sélectionner

 Thiscomponent.Sheets(1)
Correspond au numéro de page
Thiscomponent.Sheets(0) -> Page 1
Thiscomponent.Sheets(1) -> Page 2
Thiscomponent.Sheets(2) -> Page 3

et

Code : Tout sélectionner

.Rows.GetByIndex(8)
C'est le numéro de ligne ou arrive le curseur sur la deuxième page
Est-ce exact?

Je n'arrive pas a afficher le petit curseur quand j'essaye par moi même
LibreOffice Version: 6.1.5.2 sous window 10.1
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25184
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Afficher/cacher cellules en fonction d'une autre

Message par Dude »

L'index des feuilles comme celui des lignes ou des colonnes démarre à zéro.
Adri29 a écrit :Correspond au numéro de page
Non, cela correspond à la position de la feuille.
Une page est une autre notion : une feuille peut être constituée de plusieurs pages.

Je t'invite à lire la documentation sur le sujet :
https://wiki.openoffice.org/wiki/FR/Doc ... readsheets
Adri29
Membre OOrganisé
Membre OOrganisé
Messages : 77
Inscription : 27 nov. 2018 14:42

Re: [Calc] Afficher/cacher cellules en fonction d'une autre

Message par Adri29 »

Très bien, je vais lire ça attentivement.
De plus, en ce moment même je cherche à assigner une plusieurs macros sur une même page, je pense qu'il est possible mais je n'y arrive pas.
J'ai aussi le problème du curseur que je n'arrive pas à mettre dans la cellule.

Mais pour le moment la formule de OOotremer971 fonctionne parfaitement et j'arrive à la modifier dans mon vrai tableur je suis content, merci beaucoup

EDIT: Les curseurs comme avait fait OOotremer971 c'est ok. à présent je cherche à assigner plusieurs macros dans une même page
LibreOffice Version: 6.1.5.2 sous window 10.1
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
Messages : 2744
Inscription : 16 avr. 2010 13:31

Re: [Résolu] [Calc] Afficher/cacher cellules d'une autre pag

Message par OOotremer971 »

Adri29 a écrit :à présent je cherche à assigner plusieurs macros dans une même page
Essaye un instant de te mettre à la place d'un novice qui effectue des recherches pour trouver seul des réponse à ses interrogations (un peu comme tu le fais actuellement). Ne penses tu pas alors qu'il serait plus facile pour lui de trouver réponses à ses interrogations si chacun des points qu'il cherche à résoudre se trouvaient dans des sujets spécifiques, bien distincts les uns des autres :?:
Si tu ouvres un sujet sur la recette de la confiture de fraise, évite de demander dans le même sujet comment le gaz est mis en bonbonne et comment sont fabriquées les casseroles :)

Tous cela pour dire que ta question initiale a trouvé réponse. Si tu as d'autres questions, ouvre autant de nouveaux sujets que de question à traiter. Tu aideras de la sorte les futurs débutants à trouver plus facilement réponse à leurs questions.
Merci
Cordialement.
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11