[Résolu][Calc] surveiller cellule avec un message d'alerte pour le classeur

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 !
Alain-81
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 02 déc. 2018 20:55

[Résolu][Calc] surveiller cellule avec un message d'alerte pour le classeur

Message par Alain-81 »


La modération vous a écrit: Veuillez noter que les balises s'écrivent avec la première lettre en majuscule, le reste en minuscules, le tout entre crochets. [Calc] remplace [CALC] dans votre titre•

Bjr
J'ai trouvé une petite macro pour afficher une alerte quand une cellule dépasse une certaine valeur.

Code : Tout sélectionner

Function alerte(arg1 as Integer)
if arg1 > 10 then msgbox ("Attention ")
End function
Sur ce post :
viewtopic.php?f=8&t=54582
Cela me va. Mais cela ne fonctionne que sur la page active.

J'aimerais la même chose, surveiller une cellule dans un onglet. Mais je voudrais que l'alerte s'affiche même quand je suis sur n'importe quel autre onglet.
Mon classeur fait quarante pages et le cellule que je surveille est un total sur la page Récap.
Cela doit être possible en adaptant la macro ?
merci
Dernière modification par Alain-81 le 10 nov. 2024 18:26, modifié 1 fois.
LibreOffice 24.8.2.1 / Windows 11
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1480
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: [Calc] surveiller cellule Msg d'alerte pour le classeur

Message par jeanmi2403 »

Bonsoir,
Intéressé par le sujet, je l'ai branchée sur l'événement du classeur "Le statut Modifié a été changé" (Outils>Personnaliser).
L'événement se déclenche bien, mais on ne voit le message que lorsqu'on vient sur la feuille où se trouve la formule.
Donc, peu d'espoir, à mon avis.
Cordialement,
Jean-Michel
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
Avatar de l’utilisateur
yclik
HédOOniste
HédOOniste
Messages : 1823
Inscription : 15 déc. 2010 08:33

Re: [Calc] surveiller cellule Msg d'alerte pour le classeur

Message par yclik »

Bonjour

une proposition à tester
en ajoutant une fonction suivi à côté de la valeur saisie Feuille 1 et 2 en A2
alerte sur recap.ods

Code : Tout sélectionner

Function Alerte(arg1 as Integer)
if arg1 > 10 then msgbox ("Attention ")
End function

Function Suivi(arg2 as Integer)
if arg2 >0 then call SuiviAlerte
End function

Sub SuiviAlerte
Dim oDoc as Object rem le document
Dim Sheets as object rem les feuilles

Dim Nombre as integer
oDoc=ThisComponent
 Sheet = oDoc.Sheets.getByName("Recap")

NbRecap=Sheet.getCellRangeByName ("A2").Value
If NbRecap > 10 then msgbox ("Attention valeur > à 10 ") else exit sub
end Sub
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 4.1.14 sous Windows 11
Alain-81
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 02 déc. 2018 20:55

Re: [Calc] surveiller cellule Msg d'alerte pour le classeur

Message par Alain-81 »

Merci yclic
Oui ça fonctionne bien. Je trouve quand même un inconvénient de faire le suivi sur chaque feuille. Surtout que j'ai plusieurs sous totaux sur les feuilles (40) et il n'y a que sur la feuille récap où j'ai le total général.

Je pense que je vais pour le moment garder la fonction citée plus haut.

Code : Tout sélectionner

Function alerte(arg1 as Integer)
if arg1 > 10 then msgbox ("Attention ")
End function
Et je mets un rappel sur chaque page de la fonction en page Récap.

Code : Tout sélectionner

=alerte(RECAP.C37)
Ça fonctionne aussi.

En tout cas merci beaucoup Yclic de t'être penché sur le sujet.
LibreOffice 24.8.2.1 / Windows 11
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1480
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: [Calc] surveiller cellule Msg d'alerte pour le classeur

Message par jeanmi2403 »

Bojour,
Par curiosité, j'ai mis en place ta solution ( sur 3 feuilles) et j'ai constaté plusieurs choses :
  • Lorsqu'il y a dépassement après saisie, on a bien le message, mais on l'a aussi sur chaque feuille en se déplaçant de feuille en feuille
  • De même, au moment de l'enregistrement (après un dépassement) j'ai autant d'avertissements que de feuilles
  • Également au chargement si le fichier a été enregistré avec un dépassement
Cordialement,
Dernière modification par jeanmi2403 le 15 nov. 2024 22:05, modifié 1 fois.
Jean-Michel
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
Avatar de l’utilisateur
luky-luke
InconditiOOnnel
InconditiOOnnel
Messages : 948
Inscription : 27 nov. 2010 00:17
Localisation : gâtine deux-sèvrienne

Re: [Calc] surveiller cellule Msg d'alerte pour le classeur

Message par luky-luke »

Bonjour,
A tester en ajoutant une macro de recalcul,

Code : Tout sélectionner

Sub SuiviAlerte
Dim oDoc as Object rem le document
Dim Sheets as object rem les feuilles
Dim Nombre as integer
Recalcul
oDoc=ThisComponent
 Sheet = oDoc.Sheets.getByName("Recap")
NbRecap=Sheet.getCellRangeByName ("A2").Value
If NbRecap > 10 then msgbox ("Attention valeur > à 10 ") else exit sub
end Sub

sub Recalcul
dim document   as object
dim dispatcher as object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:CalculateHard", "", 0, Array())
end sub
Plus de fonction Suivi sur toutes les feuilles "en principe".
Cordialement
Luke
LibO 7.4.7.2 Raspberry pi et Libo 7.6.5.2 LinuxMint 22
Xray ne tient pas lieu de tout, mais une pratique sans Xray ne vaut pas grand chose
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1480
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: [Calc] surveiller cellule Msg d'alerte pour le classeur

Message par jeanmi2403 »

Bonsoir,
Et comment est lancée la macro ?
Bonne soirée,
Jean-Michel
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
Avatar de l’utilisateur
luky-luke
InconditiOOnnel
InconditiOOnnel
Messages : 948
Inscription : 27 nov. 2010 00:17
Localisation : gâtine deux-sèvrienne

Re: [Calc] surveiller cellule Msg d'alerte pour le classeur

Message par luky-luke »

Bonjour,
jeanmi2403 a écrit : 15 nov. 2024 22:11 Et comment est lancée la macro ?
>Événements de la feuille...>Contenu modifié
Assigner la macro SuiviAlerte sur l'ensemble des feuilles sauf sur la feuille Recap.

La macro Recalcul est enregistré à l'aide de l'enregisteur de macro :
>Données>Calculer>Recalculer sans condition
Elle force le recalcul sur toutes les feuilles. En mode "normal" le recalcul ne se fait qu'au moment où la feuille Recap devient active.
Cordialement
Luke
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibO 7.4.7.2 Raspberry pi et Libo 7.6.5.2 LinuxMint 22
Xray ne tient pas lieu de tout, mais une pratique sans Xray ne vaut pas grand chose
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1480
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: [Calc] surveiller cellule Msg d'alerte pour le classeur

Message par jeanmi2403 »

Bonsoir,
luky-luke a écrit :>Événements de la feuille...>Contenu modifié
Mai bien sûr !!
J'avais branché sur un événement du classeur....
Cordialement,
Jean-Michel
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
Alain-81
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 02 déc. 2018 20:55

Re: [Calc] surveiller cellule Msg d'alerte pour le classeur

Message par Alain-81 »

Bjr
Désolé pour la réponse tardive et ma demande de béotien.
Cette macro me va, mais a la place de :

Code : Tout sélectionner

 If NbRecap > [b]10[/b] 
Comme faire pour prendre la valeur d'une cellule ?
Merci
LibreOffice 24.8.2.1 / Windows 11
Avatar de l’utilisateur
yclik
HédOOniste
HédOOniste
Messages : 1823
Inscription : 15 déc. 2010 08:33

Re: [Calc] surveiller cellule Msg d'alerte pour le classeur

Message par yclik »

Bonsoir
si le max est en cellule A1

Code : Tout sélectionner

Nbmax=Sheet.getCellRangeByName ("A1").Value
If NbRecap > Nbmax
OpenOffice 4.1.14 sous Windows 11
Alain-81
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 02 déc. 2018 20:55

Re: [Calc] surveiller cellule Msg d'alerte pour le classeur

Message par Alain-81 »

Merci Yclic,
c'est parfait et ça me va très bien !

Merci pour cette aide précieuse.

Alain A
LibreOffice 24.8.2.1 / Windows 11