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

Pour toutes vos questions à propos de LibreOffice/OOo Calc ...

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

Messagepar bil » 31 Jan 2009, 12:25

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.
bil
Jeune membre
 
Messages: 35
Inscription: 19 Jan 2008, 23:10

Messagepar Bernard BAUDOIN » 31 Jan 2009, 23:05

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 :
http://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
Bernard BAUDOIN
Membre fidèle
 
Messages: 240
Inscription: 12 Juin 2007, 01:38
Version Excel: 2003, 2007 FR

Messagepar bil » 01 Fév 2009, 11:09

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.
bil
Jeune membre
 
Messages: 35
Inscription: 19 Jan 2008, 23:10

Messagepar Bernard BAUDOIN » 01 Fév 2009, 13:09

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
Membre fidèle
 
Messages: 240
Inscription: 12 Juin 2007, 01:38
Version Excel: 2003, 2007 FR

Messagepar bil » 01 Fév 2009, 13:22

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 ?

La capture d'écran dans Mes Macros/Standard/Module1 :

Image
Dernière édition par bil le 01 Fév 2009, 13:23, édité 1 fois.
bil
Jeune membre
 
Messages: 35
Inscription: 19 Jan 2008, 23:10

Messagepar bil » 01 Fév 2009, 13:23

Mauvaise manipulation.

Post à supprimer, doublon avec le précédent message, désolé.
bil
Jeune membre
 
Messages: 35
Inscription: 19 Jan 2008, 23:10

Messagepar Bernard BAUDOIN » 01 Fév 2009, 18:01

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
Bernard BAUDOIN
Membre fidèle
 
Messages: 240
Inscription: 12 Juin 2007, 01:38
Version Excel: 2003, 2007 FR

Messagepar bil » 01 Fév 2009, 18:18

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.
bil
Jeune membre
 
Messages: 35
Inscription: 19 Jan 2008, 23:10

Messagepar bil » 01 Fév 2009, 20:54

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. :)
bil
Jeune membre
 
Messages: 35
Inscription: 19 Jan 2008, 23:10

Messagepar bil » 04 Fév 2009, 23:26

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.
bil
Jeune membre
 
Messages: 35
Inscription: 19 Jan 2008, 23:10

Suivante

Retourner vers Calc

 


  • Sujets similaires
    Réponses
    Vus
    Dernier message

Utilisateurs en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité