Ooo (Calc), afficher message lors de la fermeture document

Bonjour

Je souhaite qu'un message (boîte de dialogue) s'affiche lorsque je ferme le classeur en utilisant OpenOffice Calc.

Comment faire svp ?

Merci d'avance.

PS : je suis un newb en macro, alors s'il faut une macro, allez-y doucement, merci.

Bonsoir Bil,

J’ai modifié légèrement la macro trouvée sur un forum. Je recherche l’auteur pour le nommer.

Fichier ci-joint :

https://www.excel-pratique.com/~files/doc/OO_test.ods

La macro affiche un message, sauvegarde le fichier, et ferme OpenOffice.

A modifier suivant tes désirs.

Cordialement

Bernard

Bonjour Bernard

J'ai testé le fichier mais ça ne semble pas fonctionner. J'ai bien modifié le fichier pour pouvoir l'enregistrer ensuite, mais à la fermeture du classeur, aucune boîte de dialogue s'affiche avec un message (aucune alerte).

Est ce que j'ai raté quelque chose ? Dois je avoir une configuration spéciale dans OpenOffice (Calc) ? Macro....

Tu as testé sur quelle version d'OpenOffice ? je suppose la 3.0 ?

Perso, j'ai testé sur la 3 et une version portable 2.2

Pour excel, j'avais trouvé ça sur le net (sur commentçamarche)

Tu ouvres ton Visual Basic Editor, soit par la barre visual basic ou clic droit sur un onglet de feuille dans les projet VBAProject tu vas trouver ThisWorkbook, tu colle le code ci-dessous

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Msg = "Avez-vous inscrit" & vbCrLf & "" & vbCrLf & " votre nom et la date de la dernière mise à jour sur la feuille accueil merci"

StyleBoîteDialogue = vbOKOnly + vbQuestion

Title = "Avant de fermer ce fichier,"

réponse = MsgBox(Msg, StyleBoîteDialogue, Title)

End Sub

Si il y a une possibilité d'adapter pour OpenOffice.

Bonjour Bil, le forum,

J’ai testé sur Open Office 3.0., sans aucun problème.

Clic sur le lien de mon message, puis Ouvrir/Enregistrer (fichier OO_test.zip).

Tu enregistres le fichier dans ton répertoire. Tu ouvres Open Office/Classeur.

Ensuite Clic sur Ouvrir/Choisir le répertoire/OO_test/Ouvrir.

La feuille doit apparaître.

Clic sur Outils/Macros/Exécuter la Macro.

Dans bibliothèque, Clic sur Mes Macros/Standard/Module1.

Dans Nom Macro apparaît la macro « fermer », clic sur Exécuter.

Le message apparaît. Clic sur OK pour terminer.

J’affecterai la macro à un bouton pour simplifier l’exécution.

Cordialement.

Bernard

Bernard BAUDOIN a écrit :

Clic sur Outils/Macros/Exécuter la Macro.

Dans bibliothèque, Clic sur Mes Macros/Standard/Module1.

Dans Nom Macro apparaît la macro « fermer », clic sur Exécuter.

Bernard

Ah voilà le souci, je n'ai pas la macro "fermer" dans "Mes macros". Il doit me manquer quelque chose sur ma config. OpenOffice, non ?

Bonjour Bill, le forum,

J’utilise la version OpenOffice.org 3.0.0.

Sur le fichier OO_test, tu dois avoir en :

A2 « FEUILLE TEST POUR SAUVEGARDE »

A4 « SAUVEGARDE LE FICHIER ET QUITTE OPENOFFICE ».

Si mes souvenirs sont bons, la macro Main est l’exemple de départ, et affiche :

Sub Main
End Sub
Remplace ce code par :
Sub fermer
    Msgbox("Le fichier sera sauvegardé, OpenOffice sera fermé")
    document = ThisComponent      
      If (HasUnoInterfaces(document,"com.sun.star.util.XCloseable") = TRUE) Then      
         document.Store()                              
         document.Close(TRUE)               
      End If    
End Sub

Ensuite lance la macro.

Je ne comprends pas pourquoi la macro n’apparaît pas.

Cordialement.

Bernard

En éditant la macro et en l'executant à la main, ça marche.

Par contre, je voudrais que cette macro soit tout le temps active, c'est à dire qu'à chaque fois que je ferme le classeur ou OpenOffice, il faut que la boîte de dialogue s'affiche (alerte).

Comment faire cela ? Merci.

Je crois que j'ai trouvé :

Il faut allé dans Outils/Personnaliser/Onglet Evenements

Se mettre sur la ligne Fermeture de document ou du document (au choix selon vos envies).

Puis Assigner la macro donné par Bernard plus haut.

Merci pour la macro.

Bonsoir

En fin de compte, fermer complètement Open Office n'est pas une bonne solution car quand vous ouvrez 2 fichiers (classeur), la macro vous ferme tout, les 2 fichiers en cours, alors que j'ai demandé que le classeur en cours (Fichier/Fermer).

De plus, ça fait des soucis de récupération de fichiers au prochain lancement d'Open Office. (.~lock."nomfichier".ods#).

Est il possible d'adapter la macro uniquement pour le classeur (fichier) en cours ?, et pas les autres. En gros, quand je ferme le classeur, je voudrais qu'Open Office ferme juste le fichier (avec toujours le message d'alerte), et non complètement Open Office.

Merci d'avance.

Bonjour Bil,

Si un seul classeur est ouvert, et que l’on exécute Fichier/Fermer, le classeur et Open Office sont fermés.

Ci-joint fichier sur lequel j’ai indiqué des tests lors de la fermeture des fichiers.

https://www.excel-pratique.com/~files/doc/test_02.ods

Je vais essayer d’améliorer le message en donnant la possibilité de revenir sur le fichier.

Cordialement

Bernard

Bonjour Bernard

Je ne peux tester la macro car la macro n'apparaît pas, comme sur le premier fichier. Je ne sais pas pourquoi ...

J'ai bien le fichier avec FEUIILLE TEST N0.02

FEUILLE TEST POUR SAUVEGARDE

AFFICHE UN MESSAGE

ETC...avec le message 1er Essai et 2è Essai...

Tu peux mettre la macro sur le thread stp que je teste cette nouvelle macro.

Merci d'avance.

Bonsoir Bil,

Pour la macro, j’ai simplement supprimé une ligne.

sub fermer
   Msgbox("Ce document va se fermer")
   document = ThisComponent      
   If (HasUnoInterfaces(document,"com.sun.star.util.XCloseable") = TRUE) Then 
        document.Store()                         
   End If   
End Sub

Bon test

Cordialement

Bernard

Bonjour Bernard

Je viens de tester rapidement ce matin la macro, ça a l'air d'être OK, merci.

Si il y a souci, je re-posterai

Rechercher des sujets similaires à "ooo calc afficher message lors fermeture document"