[Résolu][Calc] Blocage affichage écran sans effet

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 !
Avatar de l’utilisateur
Phem
Fraîchement OOthentifié
Messages : 7
Inscription : 16 mars 2018 00:40

[Résolu][Calc] Blocage affichage écran sans effet

Message par Phem »

Bonjour à tous : )

J'ai appris sur plusieurs Fils et documents que la commande "ThisComponent.LockControllers" permet de figer l'affichage écran pendant l'exécution d'une procédure.
Cela fait deux ou trois fois que j'essaye de l'utiliser mais sans obtenir le moindre effet. :|
Par exemple : j'utilise une liste de cases à cocher qui permet de décider si on veut ou non afficher chaque colonne. Les cellules liées sont sur la feuille "P" et affichent "Vrai" ou "Faux". Quand on valide son choix on lance via un bouton la procédure AMCol qui exécute le travail.
J'aimerais que l'utilisateur n'assiste pas à la "valse" des colonnes, sans compter l'incidence sur le temps d'exécution, j'ai donc placé LockControllers et UnLockControllers en début et fin de mon code mais ça n'a aucun effet (même pas un message d'erreur), on voit bien les colonnes disparaitre une par une.
Est-ce qu'il y aurait des pré-requis ou des limites à l'utilisation de cette fonction :?:

Code : Tout sélectionner

Sub AMCol2
ThisComponent.LockControllers
	For C = 0 to 19
	If ThisComponent.Sheets.getByName("P").getCellbyposition(C,1).value = VRAI then
	ThisComponent.Sheets.getByName("E").Columns(C).isVisible = True
	Else
	ThisComponent.Sheets.getByName("E").Columns(C).isVisible = False
	End If
	Next
ThisComponent.UnLockControllers
End Sub
Dernière modification par Phem le 09 avr. 2018 13:50, modifié 2 fois.
LibreOffice 5.4.5.1 (x64) / Win10 migr?? de Win7
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12200
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: [Basic] Blocage affichage écran sans effet

Message par Bidouille »

Pour la bonne tenue de ce forum, relisez ses règles :
[Basic] ne doit être utilisé que pour un problème non lié à un module alors que vous parlez de Calc.

Pour être aidé efficacement par les bénévoles et surtout leur faire gagner du temps, veuillez fournir les éléments suivants :
  1. insérer dans le corps du message le code de la macro exposant le problème
  2. joindre un document explicatif intégrant cette macro avec les données de départ (feuille1) et le résultat à obtenir (feuille2)
  3. fournir un mode pas-à-pas permettant de reproduire ce qui a été fait ou ce que vous cherchez à faire pour arriver au problème
  4. ajouter des copies écran (situation avant / après) si cela permet de mieux comprendre
Merci de publier ces informations à la suite.
Avatar de l’utilisateur
Phem
Fraîchement OOthentifié
Messages : 7
Inscription : 16 mars 2018 00:40

Re: [Calc] Blocage affichage écran sans effet

Message par Phem »

Re,

Ne pouvant partager le document original, j'avais préparé un document exemple mais là bien sûr ça marche :marto:
Par élimination, j'en conclu que l'instruction"LockControllers" est perturbée par l'appel de fonctions personnelles qui pourtant ne touchent pas aux feuilles.
Bref il va falloir que je farfouille bien plus loin...
Je préfères donc clôturer le sujet afin d'éviter de polluer le fofo avec un problème mal cerné(enfin si un jour ma touche "éditer" fait sa réapparition).
Si je trouve le vrai pourquoi du comment j'en ferais bien sûr profiter la communauté.

A++ :)
LibreOffice 5.4.5.1 (x64) / Win10 migr?? de Win7