[Résolu][Calc]Activation lors de l'utilisation d'un compteur

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 !
Cedric Heine
Membre lOOyal
Membre lOOyal
Messages : 34
Inscription : 13 août 2017 19:36

[Résolu][Calc]Activation lors de l'utilisation d'un compteur

Message par Cedric Heine »

Mon problème était de faire varier les seuils de minima et maxima d'un contrôle de type compteur.
Ces seuils devaient reprendre les références de cellules spécifiques.
Voici la macro qui a résout mon problème :

Code : Tout sélectionner

REM  *****  BASIC  *****

Sub MainPiaf(oEv As Object)
Dim fA As Object, Bouton As Object
Dim nomBouton As String, valeurMini As Long, valeurMaxi As Long
	fA = Thiscomponent.CurrentController.ActiveSheet
	bouton = oEv.Source
	nomBouton = bouton.Model.Name
	Select Case nomBouton
		Case "pg_COG"
			valeurMini = fA.GetCellRangeByName("Min_COG").Value
			valeurMaxi = fA.GetCellRangeByName("i10").Value
		Case "pg_COO"
			valeurMini = fA.GetCellRangeByName("g11").Value
			valeurMaxi = fA.GetCellRangeByName("i11").Value
		End Select
	Bouton.Model.setPropertyValues(Array("SpinValueMin","SpinValueMax","DefaultSpinValue"),Array(ValeurMini,valeurMaxi,ValeurMini))
End Sub
Et le fichier ainsi modifié en fin de post.

Merci à Piaf, Chbok et Zeguedon
______________________________________________________________________________________________________________________________
Voici le début du fil :

Bonjour,

J'ai reçus de l'aide pour réaliser une macro qui modifie les seul de minima et maxima d'un contrôle de type compteur.

Elle avait fonctionné, pourtant maintenant je ne parviens plus à l'utiliser.

Je vais dans l'onglet évènement des propriétés de mon compteur.
J'assigne une macro à la réception du focus.
Mais rien quand je clique sur le contrôle (compteur) il fonctionne sans avoir modifié sa valeur de minima et maxima...

Code : Tout sélectionner

REM  *****  BASIC  *****
Sub TestMinMaxp()
Dim oDoc As Object , Feuille As Object
Dim CellMin,CellMax As Object
Dim oForm,oCompteur As Object
oDoc = ThisComponent
Feuille = oDoc.getSheets.getByName("Joueur1") 
CellMin = Feuille.getCellRangeByName("V114")
CellMax = Feuille.getCellRangeByName("X114")
oForm =  Feuille.getDrawPage.getForms.getByIndex(0)
oCompteur = oForm.GetByName("Compteur13")
oCompteur.SpinValueMin = CellMin.Value
oCompteur.SpinValueMax = CellMax.Value
End Sub

Sub PP_Cognition()
Dim oDoc As Object , Feuille As Object
Dim CellMax As Object
Dim oForm,oCompteur As Object
oDoc = ThisComponent
Feuille = oDoc.getSheets.getByName("Joueur1") 
CellMax = Feuille.getCellRangeByName("j120")
oForm =  Feuille.getDrawPage.getForms.getByIndex(0)
oCompteur = oForm.GetByName("ppCOG")
oCompteur.SpinValueMax = CellMax.Value
End Sub
J'ai le problème pour ces deux macros...
J'ai même été dans macro pour l'activer manuellement mais cela ne semble rien faire de plus (rien).
Fermé et rouvrir le fichier n'y change rien non plus.

Auriez vous une idée du problème?
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Cedric Heine le 21 août 2017 07:27, modifié 9 fois.
Libre Office Version: 5.3.5.2
Windows 10
chbok
Membre lOOyal
Membre lOOyal
Messages : 42
Inscription : 03 déc. 2013 15:26

Re: [Calc] Activer une macro lors de l'utilisation d'un comp

Message par chbok »

Bonjour,
(Ca sent la feuille de personnage pour un jeu de rôle, non ?)

J'ai ouvert la barre d'outils "Contrôles de formulaire", et désactivé le mode "Ebauche"
Ensuite, les compteurs me semblent fonctionner.

Est-ce le problème ?

PS au passage : Compétances du personnage ---> Compétences
Version Libo (imposée) 7.2.2 (x64)
Cedric Heine
Membre lOOyal
Membre lOOyal
Messages : 34
Inscription : 13 août 2017 19:36

Re: [Calc]Activation lors de l'utilisation d'un compteur

Message par Cedric Heine »

Oui jeux de Rôle "Eclipse Phase" ;)
Merci pour la correction...

Me suis mal exprimé les contrôles fonctionnent mais ils n'activent pas la macro qui doit donner les seuil de minimum et maximum du contrôle.
Je corrige le premier post pour plus de clareté.
Libre Office Version: 5.3.5.2
Windows 10
zeguedon
ManitOOu
ManitOOu
Messages : 3031
Inscription : 02 juil. 2014 17:25

Re: [Calc]Activation lors de l'utilisation d'un compteur

Message par zeguedon »

Comment baliser [Résolu] ?
AOO
LibreOffice
Sous Linux
Cedric Heine
Membre lOOyal
Membre lOOyal
Messages : 34
Inscription : 13 août 2017 19:36

Re: [Calc]Activation lors de l'utilisation d'un compteur

Message par Cedric Heine »

Vous pensez que c'est un problème de macro?
J'arrive pas trop à comprendre sa structure, elle est plus compliquée que la première non?

Sur la réception du focus c'est normal? C'est un bon choix? cela devrait fonctionner?
Libre Office Version: 5.3.5.2
Windows 10
zeguedon
ManitOOu
ManitOOu
Messages : 3031
Inscription : 02 juil. 2014 17:25

Re: [Calc]Activation lors de l'utilisation d'un compteur

Message par zeguedon »

T'es-tu au moins donné la peine de tester la solution que je te propose, et peux-tu m'expliquer en quoi elle est plus compliquée ?

Merci.
Comment baliser [Résolu] ?
AOO
LibreOffice
Sous Linux
Cedric Heine
Membre lOOyal
Membre lOOyal
Messages : 34
Inscription : 13 août 2017 19:36

Re: [Calc]Activation lors de l'utilisation d'un compteur

Message par Cedric Heine »

Non je ne me suis pas au moins donné la peine de tester la solution que tu m'as proposée. (oui, c'est dans mes projets.)
J'imagine que votre remarque un peu acide n'est pas gratuite, vous m'accordez du temps et vous pensez peut être que je n'en tient pas compte.
Vous et les autres qui partagez vos connaissance gratuitement, rien ne vous y oblige, pourtant vous êtes là à proposer votre aide, c'est sympas, vraiment.
Je vous remercie sincèrement du temps que vous donnez pour résoudre des problèmes qui ne vous concernent pas.

Je suis sur ce forum depuis quelques jours seulement et j'ai l'impression que je dois systématiquement me justifier, parler avec des pincettes.
Mais vraiment en ce moment je me sens un peu agressé, rabaissé par de telles remarques (ce n'est pas la première), parfois je n'y prête pas attention parfois je répond sur un ton taquin.

Je vous respecte, je respecte le temps et l’effort fourni gracieusement, et j'espère que mes attitudes sur ce forum ne laissent pas trop de doute sur la question.

Je suis un peu chatouilleux lorsque je reçoit ce genre de critique, et je tenait à relever ici la chose. Juste le relever, pour mettre les chose à plat.

Elle est à mon sens, plus complexe étant donné que je peux l'utiliser pour plusieurs boutons et elle fait simplement plus de lignes...

Donc j'ai lu ce fil, il m'a semblé compliqué, j'ai compris que sur ma feuille, il n'était pas logique de devoir faire une macro par bouton (j'en aurai au moins 14)
Que j’allais devoir apprendre à faire mieux, j'ai fait le lien avec la solution que tu me proposais et toutes ces étapes prennent du temps, donc oui, maintenant, je vais la tester... Parce que maintenant je crois comprendre ce qu'elle a de plus... Mais je suis dans un processus d'apprentissage : j'ai besoin de comprendre.

N'empêche... Même si cela fonctionne et que votre solution est encore mieux adaptée à mon problème...
D'où vient le problème que j'ai en ce moment? Il me semble que cela doit venir soit de la macro que j'ai montré soit de l’histoire de focus.
Libre Office Version: 5.3.5.2
Windows 10
Cedric Heine
Membre lOOyal
Membre lOOyal
Messages : 34
Inscription : 13 août 2017 19:36

Re: [Calc]Activation lors de l'utilisation d'un compteur

Message par Cedric Heine »

J'ai testé la solution, j'ai le même problème, on dirait que la macro ne se lance pas :
- je l'ai ajoutée à la prise de focus: rien
- ajoutée au passage de la souris : rien
- lancée manuellement : rien
- j'ai enregistré une macro (ou je rentre juste une valeur dans une cellule) : rien
Donc je cherche ce qui peux empêcher les macros de fonctionner (pourtant j'ai bien l’avertissement comme quoi mon fichier contient des macro au lancement du fichier).

Je enregistrer et tester une macro toute simple pour voir si elle

Code : Tout sélectionner

Sub Main(oEvt As Object)
'xray oEvt
Dim fA As Object, Bouton As Object
Dim nomBouton As String, celMin As String, celMax As String
Dim valeurMini As Long, valeurMaxi As Long
fA = Thiscomponent.CurrentController.ActiveSheet
bouton = oEvt.Source
nomBouton = bouton.Model.Name
Select Case nomBouton
   Case "pg_COG"
      celMin = "x10"
      celMax = "Z10"
   Case "pg_COO"
      celMin = "x11"
      celMax = "z11"
   Case else
      Exit sub
   End Select
valeurMini = fA.GetCellRangeByName(celMin).Value
valeurMaxi = fa.GetCellRangeByName(celMax).Value
bouton.SetMinimum(valeurMini)
bouton.Setmaximum(valeurMaxi)
End Sub
Libre Office Version: 5.3.5.2
Windows 10
Cedric Heine
Membre lOOyal
Membre lOOyal
Messages : 34
Inscription : 13 août 2017 19:36

Re: [Calc]Activation lors de l'utilisation d'un compteur

Message par Cedric Heine »

J'ai déplacé les macros dans "mes macros".
La bête macro enregistrée (qui écrit une valeur dans une cellule) fonctionne lorsque je la lance manuellement.
J'ai aussi réussit à la lancer à l'aide d'un bouton.
J'ai tenté de lancer les deux macros qui modifient les minima et maxima d'un compteur avec ce bouton mais cela ne fonctionne pas...
Libre Office Version: 5.3.5.2
Windows 10
zeguedon
ManitOOu
ManitOOu
Messages : 3031
Inscription : 02 juil. 2014 17:25

Re: [Calc]Activation lors de l'utilisation d'un compteur

Message par zeguedon »

Bonjour,
Cedric Heine a écrit :Non je ne me suis pas au moins donné la peine de tester la solution que tu m'as proposée. (oui, c'est dans mes projets.)
Dans ce cas, je ne vois pas trop comment continuer à t'aider. Le minima aurait été de dire : oui le fichier fonctionne sur ma machine, ou, non le fichier ne fonctionne pas sur ma machine. A partir de là, on pourra commencer à chercher pourquoi cela ne fonctionne pas.


A+
Comment baliser [Résolu] ?
AOO
LibreOffice
Sous Linux
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Calc]Activation lors de l'utilisation d'un compteur

Message par Piaf »

Bonjour
Je ne sais pas ce que sont censées faire tes formules :)
Pour ce qui est des valeurs min et max des contrôles compteur pp, regarde si cela correspond à ce que tu attends.

Code : Tout sélectionner

Sub Main(oEv As Object)
Dim fA As Object, Bouton As Object
Dim nomBouton As String, valeurMini As Long, valeurMaxi As Long
	fA = Thiscomponent.CurrentController.ActiveSheet
	bouton = oEv.Source
	nomBouton = bouton.Model.Name
	Select Case nomBouton
		Case "ppCOG"
			valeurMini = fA.GetCellRangeByName("I15").Value
			valeurMaxi = fA.GetCellRangeByName("K15").Value
		Case "ppCOO"
			valeurMini = fA.GetCellRangeByName("I16").Value
			valeurMaxi = fA.GetCellRangeByName("K16").Value
		Case "ppINT"
			valeurMini = fA.GetCellRangeByName("I17").Value
			valeurMaxi = fA.GetCellRangeByName("K17").Value
		Case "ppREF"
			valeurMini = fA.GetCellRangeByName("I18").Value
			valeurMaxi = fA.GetCellRangeByName("K18").Value
		Case "ppAST"
			valeurMini = fA.GetCellRangeByName("I19").Value
			valeurMaxi = fA.GetCellRangeByName("K19").Value
		Case "ppSOM"
			valeurMini = fA.GetCellRangeByName("I20").Value
			valeurMaxi = fA.GetCellRangeByName("K20").Value
		Case "ppVOL"
			valeurMini = fA.GetCellRangeByName("I21").Value
			valeurMaxi = fA.GetCellRangeByName("K21").Value
	End Select
	Bouton.Model.setPropertyValues(Array("SpinValueMin","SpinValueMax","DefaultSpinValue"),Array(ValeurMini,valeurMaxi,ValeurMini))
End Sub
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Cedric Heine
Membre lOOyal
Membre lOOyal
Messages : 34
Inscription : 13 août 2017 19:36

Re: [Calc]Activation lors de l'utilisation d'un compteur

Message par Cedric Heine »

Merci pour ton aide...

j'ai deux problèmes :
1- Toujours la même chose lorsque je copie le code pour le mettre dans mon fichier (l'impression que rien ne fonctionne)
2- Je ne parviens pas à activer les compteurs du fichier que tu m'as transmis...

Voici le fichier tel qu'il est maintenant.
J'ai créé une page en utilisant les références de cellules de ta macro. (elle ne semble pas s'activer non plus)...
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 5.3.5.2
Windows 10
Cedric Heine
Membre lOOyal
Membre lOOyal
Messages : 34
Inscription : 13 août 2017 19:36

Re: [Calc]Activation lors de l'utilisation d'un compteur

Message par Cedric Heine »

Une erreur de structure de script s'est produite lors de l'exécution du script Standard.Module2.TroisiemeTEST de Basic.
Message : wrong number of parameters![/quote]

Code : Tout sélectionner

Sub TroisiemeTEST(oEv As Object)
Dim fA As Object, Bouton As Object
Dim nomBouton As String, valeurMini As Long, valeurMaxi As Long
   fA = Thiscomponent.CurrentController.ActiveSheet
   bouton = oEv.Source
   nomBouton = bouton.Model.Name
   Select Case nomBouton
      Case "ppCOG"
         valeurMini = fA.GetCellRangeByName("I15").Value
         valeurMaxi = fA.GetCellRangeByName("K15").Value
      Case "ppCOO"
         valeurMini = fA.GetCellRangeByName("I16").Value
         valeurMaxi = fA.GetCellRangeByName("K16").Value
      Case "ppINT"
         valeurMini = fA.GetCellRangeByName("I17").Value
         valeurMaxi = fA.GetCellRangeByName("K17").Value
      Case "ppREF"
         valeurMini = fA.GetCellRangeByName("I18").Value
         valeurMaxi = fA.GetCellRangeByName("K18").Value
      Case "ppAST"
         valeurMini = fA.GetCellRangeByName("I19").Value
         valeurMaxi = fA.GetCellRangeByName("K19").Value
      Case "ppSOM"
         valeurMini = fA.GetCellRangeByName("I20").Value
         valeurMaxi = fA.GetCellRangeByName("K20").Value
      Case "ppVOL"
         valeurMini = fA.GetCellRangeByName("I21").Value
         valeurMaxi = fA.GetCellRangeByName("K21").Value
   End Select
   Bouton.Model.setPropertyValues(Array("SpinValueMin","SpinValueMax","DefaultSpinValue"),Array(ValeurMini,valeurMaxi,ValeurMini))
End Sub
Là je suis un peu perdu... Il me semblait ne pas avoir touché au code cette fois...
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 5.3.5.2
Windows 10
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Calc]Activation lors de l'utilisation d'un compteur

Message par Piaf »

Re
Est-ce que le fichier joint fonctionne, la feuille testMacro ?
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Cedric Heine
Membre lOOyal
Membre lOOyal
Messages : 34
Inscription : 13 août 2017 19:36

Re: [Calc]Activation lors de l'utilisation d'un compteur

Message par Cedric Heine »

Oui! cela fonctionne!
Un grand merci...
Je vais voir ce que cela donne en modifiant la chose. en faisant un copié collé sur mon fichier...

Tu as vu d'où venait le problème?
Libre Office Version: 5.3.5.2
Windows 10
Cedric Heine
Membre lOOyal
Membre lOOyal
Messages : 34
Inscription : 13 août 2017 19:36

Re: [Calc]Activation lors de l'utilisation d'un compteur

Message par Cedric Heine »

Copié ta macro sur mon fichier plus récent.
Renommé macro modifié cellules minimum maximum et cela fonctionne...

Vraiment merci, je pensait que j'allais devoir faire sans...
Vais quand même comparer les macro pour voir la différence.
Libre Office Version: 5.3.5.2
Windows 10