Rechercher : dans
Par :

Macros : débutant

Dernière réponse le 27 mar 2008 à 22:55:54 Verveine, le 1 mar 2008 à 19:49:21 
 Signaler ce message aux modérateurs

Bonjour,
Merci de m'aider pour ma première macro dans un document writer .odt, où j'ai inséré un certain nombre de cellules numériques avec des formules. A présent, je voudrais passer à un formulaire ou macro si possible avec des boutons à cocher.
Mes documents sont des modèles à compléter et il m'arrive souvent de les voir rendus mal complétés avec des erreurs diverses. Je souhaite pouvoir intégrer une boîte de message vers la fin style "Avez vous tout vérifié si tels points avec des boutons à cocher - sont bons". Pour ce dernier rappel de contrôle qualité, e voudrai le laisser en masqué comme mes instructions pour guider les utilisateurs.
Je connais uniquement la formule recherchev. J'ai téléchargé les tutos pour vba ou macros mais ai besoin de qq infos pour les 1ères étapes en détail.

Comment faire un programme qui puisse alerter l'utilisateur qu'à tel endroit il a oublié de compléter (si est vide) - et s'il acomplété est-ce bon (par exemple une zone date mmmm/aaaa - s'il m'a mis que le mmm sans aaaa).

merci d'avance,
cordialement,
verveine

Configuration: Windows XP
Firefox 2.0.0.12

Meilleures réponses pour « macros : débutant » dans :
[Linux] Débuter sous Linux VoirDÉBUTER SOUS LINUX Qu'est-ce que Linux ? Si vous venez de Windows I - LES LIVE-CDS I-1 Quelles distributions choisir ? I-2 Utilisation II - INSTALLER LINUX II-1 Partitionner son disque dur II-2 Multiboot Windows/Linux II-3 Quelles...
Début du vidage de mémoire physique (Kernel-stack-inpage-error) VoirSi Windows affiche un écran bleu avec le message suivant :kernel_stack_inpage errorAvec également des informations similaires à celles-ci : ***stop: 0x0000007 (0x000000e.0x00000000.0x00901000) début du vidage de la mémoire physique La page...
[Programmation] Comment débuter, quel langage? VoirComment débuter, quel langage? Introduction Ceux que l'on peut utiliser Delphi/Pascal Java Python .Net Smalltalk Ceux que l'on peut utiliser à la rigueur C/C++ PHP Ada Lisp/Caml/... Ceux que l'on peut ne pas utiliser
Télécharger MOREFUNC (Macro complémentaire EXCEL) VoirMorefunc est une macro complémentaire proposant 67 nouvelles fonctions de feuille de calcul pour Excel. Ces fonctions sont compatibles avec Excel 95 à 2007. Elles ne sont pas portables sur d'autres plate-formes que Windows, ni sur d'autres...
Télécharger Super Macro VoirSuper Macro est un logiciel gratuit qui permet de créer des macros sous Windows afin de déclencher diverses actions automatiques. En plus d’être gratuit, ce logiciel est facile à utiliser et ne requiert aucune connaissance en programmation. On doit...
Exécuter une macro VoirExécuter une macro Excel et Calc proposent plusieurs façons d’exécuter une macro : en la sélectionnant dans une liste, dans la boîte de dialogue Macro ; par un raccourci clavier ; en l’attachant à un bouton de la barre d’outils ; ...

1

Fxbrg, le 1 mar 2008 à 19:56:12

Bonjour,

Tu as deux solutions :
- soit tu crées un formulaire qui s'ouvre à l'ouverture du modèle, dont tu ne laisses pas sortir l'utilisateur si il n'a pas rentré les données idoines et au bon format, puis si tout est bon, tu te sers des champs du formulaire pour remplir ton document,
- soit en fin de saisie du document, tu "scannes" le dit document et vérifies, puis tu balances un message box ou un formulaire pour que l'utilisateur recommence, etc...

Bref, la première solution est la plus simple, si ton document n'est pas trop important...tu formates tes champs, tu utilises des listes non modifiables pour être sûr que les users ne rentrent pas n'importe quoi, etc...

Bon courage :-)

Répondre à Fxbrg

4

verveine, le 2 mar 2008 à 12:30:42

Bonjour !
Merci pour ta réponse rapide.
Mon document est assez complexe et je ne peux pas me substiuer à mes rédacteurs, car ils gèrent eux-même leurs dossiers à partir de mes modèles mis à disposition. Je suis le destinataire final des docs signés. C'est à ce moment là que je les reçois pour saisie et le contrôle s'opère forcément, ayant à consulter les éléments à rentrer.

Je souhaite créer une boîte de message vers la fin de la rédaction (phase pré-signature) pour que l'utilisateur jette un dernier coup d'oeil sur ce qu'il vient de renseigner.
J'ai été voir dans le net tout sur le b à ba des syntaxe de vba - des macros etc. - dois donc les étudier moi-même pour augmenter la qualité de mes modèles par un petit prog. En attendant de savoir ce qu'est un "sub main - end if" etc. et que mon autoformation soit valable pour une première application :

comment faire pour commencer par une simple boîte à message vers la fin du doc modèle ? (un formulaire serait trop abstrait pour ces rédaceurs qui ont déjà du mal à bien faire à partir du "visible" ou visuel où tout est guidé par mes instructions masquées et voire clignotantes !)
Merci de me donner la démarche pour un doc .odt.

D'avance merci et bon dimanche,
verveine

Répondre à verveine

5

Fxbrg, le 2 mar 2008 à 21:24:22
  • +1

Salut :-)

Juste pour te mettre le pied à l'étrier clique sur affichage, barre d'outils, choisis Conception formulaires et contrôles formulaires. Clique sur l'icone avec une equerre et un crayon (passe en mode conception), sur la barre de contrôle, choisis Bouton, dessine le sur ton document, puis double clique dessus et choisi la macro qui te plait... (genre wordcount, juste pour le fun... :-) Reclique sur l'icone equerre, sélectionne ton texte et clique sur le bouton...

Et c'est parti :-)

Répondre à Fxbrg

6

Fxbrg, le 2 mar 2008 à 23:23:45

Encore moi... :-)

Je viens de m'amuser avec deux trois trucs, mais je persiste à croire que faire un contrôle à postériori d'un document rempli, (si je comprends bien), sans contrainte, ça va être coton... Il va falloir faire des analyses de texte du parsing, bref, c'est pas cool...

Si ce n'est pas confidentiel défense, tu pourrais mettre un exemple en ligne, on serait de meilleur conseil :-)

Répondre à Fxbrg

7

verveine, le 4 mar 2008 à 00:40:38

Salut,
Bizarre, j'ai cru poster un message de réponse à ton dernier post et je ne vois rien aujourd'hui.

Pour le document, je ne vois que cette façon d'améliorer la qualité.
Est-ce que tu pourras me dire comment faire 1 boîte de dialogue avec comme message ?

titre : "Un rappel pour la qualité de votre document"
Contenu : "Avez-vous vérifié si tous les éléments sont complétés correctement sans oubli ?"
pour le destinataire "OK" "FERMER"

J'ai trouvé les macros pour les boîtes de dialogue, mais aucune ne correspond à ce que je voulais faire.
Il ne reste plus qu'à faire à partir d'une boîte vide.
J'ai trouvé un tuto pour access, mais c'est du sql. J'ai testé et çà a marché sur Access.
Mais mon doc est fait ailleurs...

Merci de m'aider.
cordialement,

Répondre à verveine

8

Fxbrg, le 4 mar 2008 à 08:42:14

Crée cette petite macro, puis tu l'affectes à un bouton en bas de ta page...

Sub kikou
msgbox "Avez-vous vérifié si tous les éléments sont complétés correctement sans oubli ?",1,"Un rappel pour la qualité de vos documents"
End Sub

Désolé, les boutons sont ce qu'ils sont (annuler et non pas fermer), mais ça devrait le faire :-)

Répondre à Fxbrg

10

verveine, le 4 mar 2008 à 20:12:33

Bonsoir fxbrg,
Merci pour ton aide !
J'ai enfin su affecter une macro à un bouton - avec ta petite commande.
Maintenant un pb : comment faire pour que mon bouton ne s'imprime pas sur le document ? J'ai essayé de le mettre sur la marge droite par ex. en dehors de la zone du texte. Peut-on masquer un bouton ? et peut-on aussi mettre en forme le texte qu'on met dans le bouton (si l'on en met un) ?

Encore peut-être une macro ?
Merci d'avance fxbrg !
verveine

Répondre à verveine

11

verveine, le 4 mar 2008 à 20:49:19

En fait, je viens de trouver la solution !
J'ai masqué le paragraphe où j'ai mis le bouton et le tour est joué ! j'ai même mis un fond bien fluo pour inviter les étourdis de vérifier.

Merci et bonne soirée à tous,
cordialement,
et merci spécial à fxbrg :) (c'est bien ce signe le sourire smiley ?)

Répondre à verveine

12

Fxbrg, le 4 mar 2008 à 21:34:03

Non, non le smiley c'est :-)

lol

Content que tu aies trouvé... :-)

Répondre à Fxbrg

2

assia, le 1 mar 2008 à 22:40:19

Bonsoir

je voudrais que vous m'aidez a faire une macro ou autre formul qui me facilite la tache dans mon travail
car en feson la situation monsuel de la tresorerie j'ai pas pu trouvè l'astuse pour le cumul des depenses et recette de chaque moi car ma base de donnes contiens plusieur info lier avec collage special avec lieson car chaque fois les donné se change alor je serai obliger de copier manuellement les donnèes dons la case cumul apres j'ajoute les donnès du mois qui vient
aide moi svp a trv la solution
merci

Répondre à assia

3

Fxbrg, le 1 mar 2008 à 23:30:30

Assia, crée ton propre message...

:-)

Répondre à Fxbrg

9

Fxbrg, le 4 mar 2008 à 09:06:13

Super tutorial sur les boites de dialogue :

http://christianwtd.free.fr/index.php?rubrique=BasDialog01

Bonne lecture!!

:-)

Répondre à Fxbrg

13

verveine, le 7 mar 2008 à 00:11:03

Bonsoir fxbrg !
Merci encore pour ton tuyau. J'y suis allée voir et ai fait un exo ce soir en suivant le tuto. J'ai adapté un peu le contenu et la présentation pour améliorer encore ce j'ai pu faire suite à ton aide.
Voici ce que j'ai rencontré comme pb en copiant le prog du site que tu m'as indiqué :

Sub ControleSaisie
Dim oDialog As Object, oPDialog As Object
Dim oRetourOui As Object, oRetourNon As Object
Dim oTxt As Object
DialogLibraries.LoadLibrary("Standard")
oDialog = DialogLibraries.Standard.Dialog1
oPDialog = CreateUnoDialog(oDialog)
'
oTxt = oPDialog.getControl("Label1")
oTxt.Text = "Avez-vous opéré un dernier contrôle ?"
oRetourOui = oPDialog.getControl("CommandButton1")
oRetourOui.Label = "OK"
'
oRetourNon = oPDialog.getControl("CommandButton2")

'
oPDialog.setTitle("Une dernière vérification pour la qualité de nos documents")
'
oPDialog.Execute()

End Sub

J'ai dû couper juste au dessous de oRetourNon = oPDialog.getControl("CommandButton2") par que j'ai eu un message d'erreur de codage m'avertissant que lla méthode n'existerait pas -alors que j'ai recopié le prog du site. Une fois cette partie coupée, ma macro a marché mais les touches "ok" et annuler ne sont plus actives. J'ai essayé de modifié en mettant oRetourLabel2 au lieu de Label1 pour = "Annuler" mais rien à faire...

Peux-tu stp, me dire pourquoi ce pb ?
Merci !
(j'ai fait une belle boîte avec des choses à cocher et celà va améliorer vachement mon pense-bête (enfin, je suis fière d'avoir su suivre ce tuto jusqu'à cet endroit...)
verveine

Répondre à verveine

14

Fxbrg, le 7 mar 2008 à 09:11:10

Salut Verveine! :-)

Dim oDialog As Object, oPDialog As Object
Dim oRetourOui As Object
dim oRetourNon As Object
Dim oTxt As Object
DialogLibraries.LoadLibrary("Standard")
oDialog = DialogLibraries.Standard.Dialog1
oPDialog = CreateUnoDialog(oDialog)
'
oTxt = oPDialog.getControl("Label1")
oTxt.Text = "Avez-vous opéré un dernier contrôle ?"

oRetourOui = oPDialog.getControl("CommandButton1")
oRetourOui.Label = "OK"
oRetourNon = oPDialog.getControl("CommandButton2")
oRetourNon.Label = "Non"
'
oPDialog.setTitle("Une dernière vérification pour la qualité de nos documents")
'
oPDialog.Execute()



Ici, ça marche (oOo 2.3)


J'ai essayé de modifié en mettant oRetourLabel2 au lieu de Label1 pour = "Annuler" mais rien à faire...
Là je crois qu'il y a confusion :-) . Pour affecter un nom à l'objet oRetourNon, qui est le petit nom du deuxième bouton (CommandButton2), tu affectes à sa propriété Label la valeur "Non". Il ne s'agit pas de changer Label par Label1 ou Label2...

Dis-moi si ça marche chez toi,

:-)

Répondre à Fxbrg

15

verveine, le 7 mar 2008 à 15:04:55

Salut fxbrg !
En fait, après mon post j'ai tout simplement copier la ligne dessus et coller sur la ligne vide puis modifier la commande... (je crois que j'avais réécrit la commande avec un "o" et çà n'a pas marché !) - et çà a marché.

En revanche, j'ai pas pu retrouver tout ce que j'avais contruit avec le tuto une fois tout refermé. J'ai pas compris pourquoi ? J'ai recommencé ce matin et pareil... (ctd ni la macro ni la boîte de dialogue). J'avais voulu affecter la boîte de dialogue à un bouton et idem rien ne se passe.

J'ai rééessayé à l'instant et j'ai pu exécuter la macro après l'avoir déclaré dans la bibliothèque sous odialog après standard. C'est tout ce que je peux faire. Je n'ai pas pu affecter cette macro à un bouton, et à chq fois que je le faisais, elle ne prenait pas...

J'ai du sauter des étapes ou alors si tu peux m'expliquer comment faire après avoir créer ma boite de dialogue de pouvoir l'utiliser comme macro sur un bouton ? et non pas comme une simple macro qui s'exécute sur commande seulement ?
J'espère que je suis compréhensible...
Voici ma macro :
REM ***** BASIC *****

Sub AutoControle_Saisie
Dim oDialog As Object, oPDialog As Object
Dim oRetourOui As Object, oRetourNon As Object
Dim oTxt As Object

DialogLibraries.LoadLibrary("Standard")
oDialog = DialogLibraries.Standard.Dialog1
oPDialog = CreateUnoDialog(oDialog)
'
oTxt = oPDialog.getControl("Label1")
oTxt.Text = "Les éléments à vérifier"
oRetourOui = oPDialog.getControl("CommandButton1")
oRetourOui.Label = "OUI"
'
oRetourNon = oPDialog.getControl("CommandButton2")
oRetourNon.Label = "NON"
'
oPDialog.setTitle("AUTO CONTROLE DE QUALITE")
'
oPDialog.Execute()
End Sub

qui marche.
merci,
verveine

Répondre à verveine

16

Fxbrg, le 7 mar 2008 à 16:11:17

En fait, après mon post j'ai tout simplement copier la ligne dessus et coller sur la ligne vide puis modifier la commande... (je crois que j'avais réécrit la commande avec un "o" et çà n'a pas marché !) - et çà a marché.

Cool :-)

En revanche, j'ai pas pu retrouver tout ce que j'avais contruit avec le tuto une fois tout refermé. J'ai pas compris pourquoi ? J'ai recommencé ce matin et pareil... (ctd ni la macro ni la boîte de dialogue). J'avais voulu affecter la boîte de dialogue à un bouton et idem rien ne se passe.

Euh... as-tu enregistré ton document? et la macro? C'est vrai que la procédure d'enregistrement n'est pas très intuitive...

J'ai rééessayé à l'instant et j'ai pu exécuter la macro après l'avoir déclaré dans la bibliothèque sous odialog après standard. C'est tout ce que je peux faire. Je n'ai pas pu affecter cette macro à un bouton, et à chq fois que je le faisais, elle ne prenait pas...

Pour affecter ta macro à un bouton dans ta feuille (et non dans le formulaire) :
- Affichae/Barre d'outils, coche Contrôles Formulaires
- clique sur l'icone avec l'equerre (mode conception)
- clique sur l'icone bouton et dessine le sur ta feuille
- double clique sur le bouton
- onglet Evènements
- clique sur la petite icone avec les trois points à droite de la ligne "Lors du déclenchement"
- clic Macro
- clic le + devant le nom de ton doc puis devant standard puis le nom du module et choisis ta macro
- OK, OK et fermer la boite drd propriétés du bouton

Repasse en mode normal (icone equerre) et clique sur le bouton...
et hop!! :-)

Dans ton cas, tu pourrais affecter cette macro à l'action Enregistrement... POur ça, Outils/personnaliser, puis onglet évènements, clic sur enregistrement du document, puis sur macro et idem, choisis ta macro, referme le tout..

Modifie quo ique ce soit, clic sur l'icone d'enregistrement, et hop, voilà ta boite de dialogue...

C'est y pas cool?

lol


Bon week-end!

Répondre à Fxbrg

17

verveine, le 7 mar 2008 à 16:47:54

C'est très cool, fxbrg ! -:)

Tu viens de me donner une superbe idée ! je n'aurai même plus besoin de mettre des boutons de contrôle ; il suffira que j'affecte la macro à la fermeture du document par ex (ne sachant pas si mes utilisateurs vont "enregistrer" ou "enregistrer sous"... j'ai opté pour l'enclenchement de la macro à la fermeture du document. Et le tour est joué !

Il ne me reste plus qu'à bien préparer ma boîte de dialogue avec les éléments dedans de rappel, et à cocher. Je pourrai également ajouter comme dans le tuto une 2è boîte pour leur dire "Merci !" une fois que la 1ère sera fermée.

Encore merci fxbrg !
bon we !

(par contre, j'ai du mal à suivre certains tuto open office pour créer les btes de dialog...)

Répondre à verveine

18

Fxbrg, le 7 mar 2008 à 16:55:56

Encore merci fxbrg !
bon we !</ita>

De rien, idem :-)

<Ita>(par contre, j'ai du mal à suivre certains tuto open office pour créer les btes de dialog...)

Sans peine, ce serait même pas drôle!! lol Ceci dit, regarde les versions de oOo utilisées dans les tutos, souvent ils sont faits avec une versioin 1.x, et les menus ont beaucoup changé (par exemple, pour affecter la macro à une action du document, avant c'était dans Outils/Adaptation, alors que maintenant c'est dans Outils/Personnaliser... si tu n'as pas été confronté au problème, tu risques pas de l'inventer!! lol

Bon week-end again, à bientôt si besoin,

JF

Répondre à Fxbrg

20

verveine, le 13 mar 2008 à 12:10:01

Bonjour fxbrg !
J'ai cru bien faire de lancer un nouveau sujet sur le bouton "fermer" pour demander de l'aide concernant la commande "close" ou "exit" au bouton. N'ayant aucune réponse à mon post, je reviens là demander si tu pouvais m'aider pour celà.

Voilà, on est toujours dans ma macro contrôle qualité. Comme je me suis aperçu que les boutons "ok" "annuler" n'ont aucune fonction attachée à leur présence sur la boîte de dialogue, je les ai enlevés. En revanche, j'aurais voulu que le bouton "fermer" puisse servir à fermer la boîte de dialog au lieu de recourir à la croix. Et, je n'ai pas trouvé cette commande dans le tuto.

Toi ou qq pourrait-il m'aider à déclarer ce bouton dans ma macro et à écrire un ligne de commande ?
Merci d'avance,
verveine

Répondre à verveine

21

Fxbrg, le 13 mar 2008 à 14:33:42
  • +1

Salut Verveine!

Tu peux remettre ici le code de ta macro?
Have fun!!
:-)

Répondre à Fxbrg

22

verveine, le 13 mar 2008 à 16:27:32

Voici le code tel que je l'ai posté :

Sub AutoControle_Saisie
Dim oDialog As Object, oPDialog As Object
Dim oRetourOui As Object, oRetourNon As Object
Dim oTxt As Object

DialogLibraries.LoadLibrary("Standard")
oDialog = DialogLibraries.Standard.Dialog1
oPDialog = CreateUnoDialog(oDialog)
'
oTxt = oPDialog.getControl("Label1")
oTxt.Text = "Les éléments à vérifier :"

'
oPDialog.setTitle("AUTO CONTROLE QUALITE")
'
oPDialog.Execute()
End Sub

et voici la commande d'origine du tuto que j'ai adaptée pour mon document :

1. Sub QuestionAugmentation
2. Dim oDialog As Object, oPDialog As Object
3. Dim oRetourOui As Object, oRetourNon As Object
4. Dim oTxt As Object
5.
6. DialogLibraries.LoadLibrary("Standard")
7. oDialog = DialogLibraries.Standard.Dialog1
8. oPDialog = CreateUnoDialog(oDialog)
9. '
10. oTxt = oPDialog.getControl("Label1")
11. oTxt.Text = "Voulez-vous être augmenté ?"
12. oRetourOui = oPDialog.getControl("CommandButton1")
13. oRetourOui.Label = "OUI"
14. '
15. oRetourNon = oPDialog.getControl("CommandButton2")
16. oRetourNon.Label = "NON"
17. '
18. oPDialog.setTitle("Petit test")
19. '
20. oPDialog.Execute()
21. End Sub


Comme vous avez pu constater, j'ai enlevé les lignes sur les deux boutons "oui" et "non pour le motif évoqué.
Merci d'avance pour ton aide.
Verveine

Répondre à verveine

24

Fxbrg, le 13 mar 2008 à 16:39:15

Hello!

Il suffit qur ta boite de dialog, tu ajoutes un bouton, tu lui donnes le label "Fermer" et le type de bouton OK ou Annuler. En cliquant dessus, comme il n'y a rien d'associé, ça ferme la boite et c'est tout... Have fun!!
:-)

Répondre à Fxbrg

25

verveine, le 13 mar 2008 à 16:49:31

Merci fxbrg pour ta réponse rapide !
J'ai déjà fait l'essai de mettre un bouton "fermer" mais il ne m'a rien fermé du tout.
Voici l'un des tests pour la déclarer le bouton "fermer" sans résultat :

Sub AutoControle_Saisie
Dim oDialog As Object, oPDialog As Object
Dim oRetourOui As Object, oRetourNon As Object
Dim oRetourFERMER As Object
Dim oTxt As Object

DialogLibraries.LoadLibrary("Standard")
oDialog = DialogLibraries.Standard.Dialog1
oPDialog = CreateUnoDialog(oDialog)
'
oTxt = oPDialog.getControl("Label1")
oTxt.Text = "Les éléments à vérifier :"
oRetourFermer = oPDialog.getControl("CommandButton2")
oRetourFermer.Label = "FERMER"
'
oTxt = oPDialog.getControl("Label1")
oTxt.Text = "Les éléments à vérifier :"

'
oPDialog.setTitle("AUTO CONTROLE QUALITE")
'
oPDialog.Execute()

End Sub

Ne faut-il pas affecter une fonction à ce bouton comme celle pour oPDialog qui a pour fonction la création d'une boîte de dialog "CreateUnoDialog(oDialog)" ? Et la fonction fermer, en code c'est quoi ? (close ? exit ?)
verveine

Répondre à verveine

26

Fxbrg, le 13 mar 2008 à 22:25:37

Re...:-)

Tu n'as pas du déclarer ton bouton correctement dans ta boite de dialogue... Sur la boite, clic droit sur le bouton, propriétés, puis dans Général, descends dans la lite et change le type de bouton "Standard" (par défaut) pour "annuler"

Ferme la boite des propriétes, reviens sur le code du module, passe en mode test, et vois ce qui se passe... Ici ça marche!! lol

Regarde le fichier exemple ci-joint :

http://www.cijoint.fr/cjlink.php?file=cj200803/cij10721510927225.odt Have fun!!
:-)

Répondre à Fxbrg

27

verveine, le 15 mar 2008 à 10:51:23

Salut JF !
J'étais bien occupée et n'ai pas pu revenir te lire avant ce matin !
Super JF ! j'ai testé ce que tu as dit et c'est ok ! J'avais pas vu qu'il fallait déclarer dans Propriétés - "type de bouton" pour qu'il soit actif.
Voilà maintenant j'ai ma boîte de dialog qui fonctionne parfaitement.

Encore merci et passe un bon we !
Je reviendrai sûrement demander de l'aide, si tu veux bien une prochaine fois. En attendant, j'ai d'autres boulots qui m'attendent....

salut ! ...:) !
verveine

Répondre à verveine

28

Fxbrg, le 15 mar 2008 à 11:45:44

No problemo! Have fun!!
:-)

Répondre à Fxbrg

29

verveine, le 22 mar 2008 à 11:12:15

Salut fxbrg !
Es-tu là ?
Si oui, voici ma nouvelle question :
j'ai créé une macro dans un classeur calc et j'ai voulu affecté un événement à cette macro (affichage d'une bte de dialog après enregistrer sous), mais une fois tout enregistré mon classeur et ma macro - je ne l'ai pas retrouvée à la réouverture du classeur !
J'ai repris le code utilisé sur le doc writer pour écrire ma macro, à savoir déclaration des boutons et le texte pour l'affichage du message de la boite de dialog.
Mon classeur est enregistré en .xls, est-ce celà qui n'a pas marché ?
Merci d'avance.
verveine

Répondre à verveine

30

Fxbrg, le 26 mar 2008 à 00:01:11

Hello!!

Désolé, j'étais busy :-)

Si tu n'as pas trouvé la solution à ton problème, merci de me mettre un petit fichier exemple...

A plus tard, Have fun!!
:-)

Répondre à Fxbrg

31

verveine, le 26 mar 2008 à 22:46:49

Salut, fxbrg !
C'est sympa de revenir ici me répondre ! merci !
Enfin, j'ai trouvé la solution mais qui ne s'applique qu'à mon fichier calc. Dès l'instant où je passe à excel, ma macro ne marche plus. Elle a disparu tout bonnement.

Pour une application plus durable de ma macro, ce serait intéressant de coder par un langage accepté par excel.
On peut reprendre l'exemple simple du précédent code :

Sub Test_compatibilite
Dim oDialog As Object, oPDialog As Object
Dim oRetourOui As Object, oRetourNon As Object
Dim oTxt As Object

DialogLibraries.LoadLibrary("Standard")
oDialog = DialogLibraries.Standard.Dialog1
oPDialog = CreateUnoDialog(oDialog)
'
oTxt = oPDialog.getControl("Label1")
oTxt.Text = "N'oubliez pas de suivre les instructions !"
oRetourOui = oPDialog.getControl("CommandButton1")
oRetourOui.Label = "OUI"
'
oRetourNon = oPDialog.getControl("CommandButton2")
oRetourNon.Label = "NON"
'
oPDialog.setTitle("Petit test")
'
oPDialog.Execute()
End Sub

merci,
verveine
(ps : afin de respecter les règles du forum, ce serait peut-être mieux de créer un nouveau sujet ?)

Répondre à verveine

32

Fxbrg, le 27 mar 2008 à 12:44:18

Salut Verveine!

Effectivement ce serait mieux de créer un nouveau fil... mais il n'existe pas, à ma connaissance, de possibilité de lire une macro oOo avec Excel (VBA donc) ni l'inverse, les deux langages sont trop différents... C'est, hélas, une limite du passage de MSOffice à oOo... Ton fichier doit être lu par les deux logiciels impérativement?

Have fun!!
:-)

Répondre à Fxbrg

33

 verveine, le 27 mar 2008 à 22:55:54

Salut fxbrg !
Non pas forcément, car j'espère et conseille les utilisateurs de télécharger tjours le modèle pour préparer leur doc. Partant d'un fichier calc ils me le rendront en xls. De cette façon, ils auront à chq fois vu mes macros s'exécuter.
J'ai été voir dans développez.com, il semble y avoir des moyens (assez lourds pour les initiés) de coder de façon à ce que la conversion soit faite (un exécutable qui scan les code à télécharger -je te passerai les liens).
J'ai su que c'est normal mon pb après avoir posté ma quesion et vu qu'il y en avait déjà d'autres semblables de posées ici même.

voir les explications du site dans le :

"V. Déclencher une macro Open Office depuis Excel"
http://silkyroad.developpez.com/VBA/PiloterOpenOffice/#LV

Il faut que je retrouve le site où j'ai vu qu'on peut télécharger un exécutable pour passer du langage vba ooo vers excel (ou vise versa)
A +
merci fxbrg ! :-)

Répondre à verveine

19

verveine, le 7 mar 2008 à 20:10:20

JF !
A force de faire, j'ai enfin trouvé : j'ai pu affecté ma boîte de dialog à mon dernier bouton en la créant dans la liste des macros du fichier existant.
Si avant çà ne marchait pas c'ést parce que mon open office était paramétré avec une option sécurisée pour l'activation des macros extérieures... (j'ai donc appliqué la règle de me poser la question, si oui ou non j'active la macro).
Voilà, maintenant j'ai des docs super pro et je peux enfin te dire à + pour une autre macro (j'ai attrapé le virus !)

super cool comme tu dis ! lol

Répondre à verveine

23

imedtac, le 13 mar 2008 à 16:30:19

Mais mon pb est purement informatique
je veux prog en java une connexion bluetooth via port série virtuel
je c pas comment ouvrir une connexion

Répondre à imedtac