Re: [prog] Pb de recherche dans calc
Les textes toto et toto2 sont-ils dans deux cellules contigües? Avec findAll je sais que le résultat est une liste constituée de cellules ou de zones (les cellules contigües contenant le texte cherché étant regroupées dans une seule zone). Autrement dit si 2 cellules contigües contiennent le texte, elle ne comptent que pour une zone dans le résultat (il faut ensuite éventuellement tester si c'est une cellule ou une zone). Si oui, se pourrait-il que, dans ce cas, il y ait un comportement différent selon que la première des cellules contient exactement ou non le texte cherché, la recherche donnant une seule zone si la première cellule contient exactement le texte cherché (toto) et deux zones si la première cellule contient une partie (tot) du texte cherché. Si toto et toto2 sont dans deux cellules contigües, il faudrait regarder si le phénomène se produit de la même façon en mettant toto et toto2 dans deux cellules non contigües. Pascal Le 06/01/2011 17:40, open-office a écrit : Bonjour, Je vais essayer d'être claire Dans un tableau calc, je crée une macro qui recherche des noms avec le code suivant (merci la communauté, je l'ai trouvé sur le site) /Cherche = maZone.createSearchDescriptor with Cherche .SearchString = toto .SearchWords = false end with trouve = maZone.findAll(Cherche) if IsNull(trouve) then msgbox non trouvé exit sub endif msgbox Nombre d'occurrences : trouve.Count/ Mon problème est que si dans mon fichier j'ai toto et toto2 et que je recherche toto il ne me trouve que le premier, idem si j'ai deux fois toto, alors que si je cherche tot il me trouve bien les deux. Y-a-t-il un paramètre à rajouter pour que lorsque je cherche toto je trouve toutes les occurrences de toto ? merci - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org
Re: [prog] Pb de recherche dans calc
Je viens de prendre le temps de faire quelques tests pour constater que mon hypothèse sur le comportement de findAll est fausse. J'ai essayé avec plusieurs dispositions de cellules, contigües ou non, et en mélangeant de différentes façons les cellule contenant exactement le texte cherché ou un texte plus long que le texte cherché: tout semble bien se passer chez moi, les recherches donnent le même résultat dans les deux cas, je ne reproduis pas votre erreur. Par contre, je répète que des cellules contigües répondant toutes à la recherche et formant une zone rectangulaire ne comptent que pour 1 pour Count. Attention! je me suis fait avoir au début parce que je n'avais pas fini la saisie d'une des cellules (oubli de taper Entrée) et donc bien que la cellule semblait contenir le texte cherché elle n'était pas trouvée. Le 06/01/2011 21:21, Pascal Chantriaux a écrit : Les textes toto et toto2 sont-ils dans deux cellules contigües? Avec findAll je sais que le résultat est une liste constituée de cellules ou de zones (les cellules contigües contenant le texte cherché étant regroupées dans une seule zone). Autrement dit si 2 cellules contigües contiennent le texte, elle ne comptent que pour une zone dans le résultat (il faut ensuite éventuellement tester si c'est une cellule ou une zone). Si oui, se pourrait-il que, dans ce cas, il y ait un comportement différent selon que la première des cellules contient exactement ou non le texte cherché, la recherche donnant une seule zone si la première cellule contient exactement le texte cherché (toto) et deux zones si la première cellule contient une partie (tot) du texte cherché. Si toto et toto2 sont dans deux cellules contigües, il faudrait regarder si le phénomène se produit de la même façon en mettant toto et toto2 dans deux cellules non contigües. Pascal Le 06/01/2011 17:40, open-office a écrit : Bonjour, Je vais essayer d'être claire Dans un tableau calc, je crée une macro qui recherche des noms avec le code suivant (merci la communauté, je l'ai trouvé sur le site) /Cherche = maZone.createSearchDescriptor with Cherche .SearchString = toto .SearchWords = false end with trouve = maZone.findAll(Cherche) if IsNull(trouve) then msgbox non trouvé exit sub endif msgbox Nombre d'occurrences : trouve.Count/ Mon problème est que si dans mon fichier j'ai toto et toto2 et que je recherche toto il ne me trouve que le premier, idem si j'ai deux fois toto, alors que si je cherche tot il me trouve bien les deux. Y-a-t-il un paramètre à rajouter pour que lorsque je cherche toto je trouve toutes les occurrences de toto ? merci - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org
Re: [prog] Différence entre function et sub
Bonjour, 1) Dans le livre Programmation OpenOffice.org 3 de Marcelly/Godard page 465 il est expliqué qu'une fonction calc ne peu pas modifier la cellule en cours ou une autre cellule et que l'API ignore les actions que peut produire la fonction. Il s'agit donc bien d'une fonction au sens mathématique du terme, elle renvoie une valeur mais ne modifie pas l'environnement. Inutile donc de tenter de modifier une cellule en appelant une fonction depuis cette cellule ou une autre. 2) Par contre, je fais une petite remarque concernant les sub et les fonctions de OOoBasic dans le cadre d'une exécution ordinaire par macro. Là, il n'y pratiquement pas de différence entre sub et function. Par exemple si on code : sub test() as long print salut test = 5 end sub sub essai dim num as long num = test print num end sub l'exécution de essai affiche salut puis 5. Le sub test se comporte exactement comme une fonction. Inversement si on code : function truc() print Hello end function sub essai2 truc end sub l'exécution de essai2 affiche Hello. La fonction truc se comporte exactement comme une sub. En fait, OpenOffice ne semble avoir qu'une sorte de sous-programme, la différence de nom n'étant qu'une déclaration d'intention du contexte dans lequl on souhaite l'utiliser. Bien entendu, je ne recommande pas d'utiliser ce genre de codage et, personnellement, je fais bien attention à ne définir : - que des fonctions qui ne font que renvoyer une valeur et ne modifie pas l'environnement (cad qui n'agissent pas) - que des sub (actions) qui ne renvoient pas de valeur (sauf éventuellement un code d'erreur d'exécution par exemple, cela peut être pratique) mais il faut savoir que OOoBasic permet la confusion des 2 ce qui peut empêcher de détecter rapidement certaines erreur. Pascal - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org
Re: [prog] Différence entre function et sub
Bonjour, Avec votre code, j'ai testé ces deux cas : cas 1 : je définis Engins2 en tant que fonction comme vous l'avez fait puis je définis sub test dim e as variant e = Engins2 end sub et j'exécute test cas 2 : je définis Engins2 en tant que sub comme vous l'avez fait puis je définis sub test Engins2 end sub et j'exécute test Dans les deux cas il se passe exactement la même chose : la coloration en rouge sombre de la cellule B2. Où y a-t-il un problème ? Que voulez-vous dire par j'appelle cette fonction depuis une cellule ? Pascal xavier roguiez a écrit : Bonjour Je dois passer à quelque chose d'évident, c'est pourquoi je viens chercher une explication rationnelle.. Je voulais naïvement créer une fonction qui en fonction d'un paramètre me change la couleur de la cellule (pour l'instant nombre de ne sert à rien, c'est pour illustrer l'ECM. function Engins2(nombre as integer) as variant Dim oDocument as object, oFeuilles as object Dim oFeuille as object, oCell as object, oZone as object oDocument = thisComponent oFeuilles = oDocument.Sheets oFeuille = oFeuilles.getByName(Feuille1) oCell=oFeuille.getCellByPosition(1,1) oCell.CellBackColor=RGB(150,0,0) end function Si j'appelle cette fonction depuis une cellule elle est sans effet, oCell contient bien les valeurs proprement dite, mais les affectations ne sont pas faites. sub Engins2() Dim oDocument as object, oFeuilles as object Dim oFeuille as object, oCell as object, oZone as object oDocument = thisComponent oFeuilles = oDocument.Sheets oFeuille = oFeuilles.getByName(Feuille1) oCell=oFeuille.getCellByPosition(1,1) oCell.CellBackColor=RGB(150,0,0) end sub Par contre, ce codage fonctionne, si j'affecte la macro à un bouton ou je la lance via le lanceur de macros... Quelle est l'explication de ce comportement ? On ne peut pas créer de fonction qui utilise l'API ? D'avance merci pour toute information xavier - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org
[prog] Re : [prog] boite de dialogue et champ date
Bonjour, Et en remplaçant CDate par CDateToISO ? C'est-à-dire : k.Model.Date = CDate(feuille_bilan.getCellByPosition(3,iLigne).Value) par : k.Model.Date = CDateToIso(feuille_bilan.getCellByPosition(3,iLigne).Value) En tout cas c'est ce que je fais, mais sans passer par le modele, en fait il me semble que je fais plutôt : k.Date = CDateToIso(feuille_bilan.getCellByPosition(3,iLigne).Value) Pascal - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org
Re: [prog] Question de méthode
Bonjour, 1) En quoi storeAsURL et storeToURL peuvent-ils déclencher une erreur d'E/S ? Je les utilise régulièrement. Je n'ai eu des problèmes qu'avec la version 3.0 de OOo qui comportait un bug dans le verrouillage des fichiers ouverts (si j'ai bien compris). 2) Pourquoi utiliser l'enregistreur est-il déconseillé ? En fait, je pose la question car, l'ayant utilisé récemment (alors que je n'ai pas l'habitude de la faire car je ne comprends pas toujours ce qu'il produit), j'ai eu une déconvenue : il semble que le code utilisant le dispatcher produit, lié à la version d'OOo utilisée lors de l'enregistrement de la macro, puisse provoquer plus facilement une erreur lorsqu'il est utilisé avec une version plus ancienne de OOo. Est-ce le cas ? D'avance, merci. Pascal c c a écrit : Bonjour, Désolée d'apprendre que mes messages font planter certains logiciels de messagerie. Pour en revenir à l'enregistreur, j'ai essayé au début mais à part des opérations simples et sans paramètres je ne m'ensos pas. Exemple le copier coller entre deux classeurs s'enregistre (voir code ci-dessous) mais ne s'execute même pas. Donc tant pis je continue à chercher et à embéter le monde sub Main rem -- rem define variables dim document as object dim dispatcher as object rem -- rem get access to the document document = ThisComponent.CurrentController.Frame dispatcher = createUnoService(com.sun.star.frame.DispatchHelper) rem -- dim args1(0) as new com.sun.star.beans.PropertyValue args1(0).Name = ToPoint args1(0).Value = $G$50:$G$82 dispatcher.executeDispatch(document, .uno:GoToCell, , 0, args1()) rem -- dispatcher.executeDispatch(document, .uno:Copy, , 0, Array()) end sub Merci quand même Claude From: fabs@wanadoo.fr To: prog@fr.openoffice.org Date: Fri, 13 Nov 2009 14:55:18 +0400 Subject: Re: [prog] Question de méthode c c a écrit : Bonjour, Bonjour, Je me suis lancée dans la conversion de macros MsOffice en OO et grâce aux exemples trouvés sur le Net et surtout à cette liste, je progresse relativement bien. Mais il doit me manquer une certaine logique car lorsque je cherche dans l'aide OO je trouve raremment ce que je voudrais. Je m'explique. J'ai eu quelques soucis avec le StoresUrl et Bernard Marcelly m'a gentiment répondu que La doc de l'API indique que storeAsURL (et storeToURL) peut déclencher une erreur d'entrée-sortie com::sun::star::io::IOException.. Comme j'avais aussi un problème pour comprendre toutes les propriétés que l'on peut passer au soreasurl comme par exemple les valeurs possibles de format, d'attribut etc... , j'ai à nouveau cherché storeasurl en me disant que je n'avais pas vu l'indication de l'erreur d'entrée-sortie. Mais je ne dois pas chercher comme il faudrait car je n'ai pas trouvé. Je vais peut-être me faire taper sur les doigts, mais personnellement, pour beaucoup d'actions, je préfère souvent le dispatcher (l'enregistreur de macro) à l'API. J'ai moins de problèmes et c'est plus simple, même si on ne connait pas toujours les arguments possibles. Je l'utilise en particulier pour ouvrir un nouveau document, écrire du texte, etc... et je viens de tester avec enregistrer, et enregistrer sous, ça marche et ça me donne les codes respectifs suivants (j'ai enlever les remarques): sub Enregistrer dim document as object dim dispatcher as object document = ThisComponent.CurrentController.Frame dispatcher = createUnoService(com.sun.star.frame.DispatchHelper) dispatcher.executeDispatch(document, .uno:Save, , 0, Array()) end sub sub EnregistrerSous dim document as object dim dispatcher as object document = ThisComponent.CurrentController.Frame dispatcher = createUnoService(com.sun.star.frame.DispatchHelper) dim args1(1) as new com.sun.star.beans.PropertyValue args1(0).Name = URL args1(0).Value = file:///home/fabien/test2.odt args1(1).Name = FilterName args1(1).Value = writer8 dispatcher.executeDispatch(document, .uno:SaveAs, , 0, args1()) end sub Les arguments sont ici faciles à comprendre. Peut-être à tester? Fabien. PS: je ne sais pas pourquoi, quand je clique sur répondre sur les messages de c c avec mon logiciel de messagerie (Kontact), celui-ci plante. Ce qui n'est pas avec les autres messages. D'où ma réponse à c c via François. Si quelqu'un a une explication... -- www.gestionnaire-exos.fr - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org _ Tchattez en direct en en vidéo avec vos amis ! http://www.windowslive.fr/messenger/
[prog] Re : Re: [prog] Paramètres par référ ence
Bonjour, dim Nrcc,Mrcc,epsh1,epsb1 as double ne définit pas Nrcc et Mrcc comme double mais comme variant. La syntaxe basic impose de donner le type de chaque variable séparément. En fait : dim Nrcc,Mrcc,epsh1,epsb1 as double signifie : dim Nrcc as variant, Mrcc as variant, epsh1 as variant, epsb1 as double Il est donc déjà normal que en remplaçant dim Nrcc,Mrcc,epsh1,epsb1 as double par dim Nrcc as double, Mrcc as double ,etc... on puisse avaoir un comportement différent. Pascal - Message d'origine - De: xavier roguiez x...@geo.hmg.inpg.fr Date: Mardi, Juin 9, 2009 10:46 pm Objet: Re: [prog] Paramètres par référence xavier roguiez a écrit : Bonsoir Je me trouve confronté à un problème dont je ne comprends ni les tenants ni les aboutissants;, est ce que quelqu'un peut m'aider ? J'ai sorti l'ECM suivant : option explicit sub interaction_Rect() dim Nrcc,Mrcc,epsh1,epsb1 as double Nrcc=2: Mrcc=2 print Nrcc,Mrcc 'affiche 2 2 normal EffC_Rect(Nrcc,Mrcc) print Nrcc,Mrcc 'affiche 2 2 pas normal ? end sub sub EffC_Rect(Nrc2 as double,Mrc2 as double) Nrc2=10: Mrc2=10 end sub Par contre si je modifie les déclarations d'entêtes à savoir : dim Nrcc,Mrcc as double En fait il faut modifier pour obtenir le bon résultat la déclaration en dim Nrcc as double dim Mrcc as double alors le comportement redevient normal... print Nrcc,Mrcc 'affiche 2 2 normal EffC_Rect(Nrcc,Mrcc) print Nrcc,Mrcc 'affiche 10 10 normal ! Avez vous une idée ? D'avance merci xavier -- --- To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org
[prog] Re : [prog] Paramètres par référence
Pour compléter ma réponse, voici un exemple : sub main dim x as double x=2 modif(x) print x end sub sub modif(x as double) print x x=3 end sub Lors de l'exécution de main, on a bien les affichages successifs : 2 (le print de la macro modif) 3 (le print de main après l'exécution de modif). Si on modifie juste double en integer dans dim x : sub main dim x as integer x=2 modif(x) print x end sub sub modif(x as double) print x x=3 end sub lors de l'exécution de main, on a alors les affichages successifs : 2 (le print de la macro modif) 2 (le print de main après l'exécution de modif) au lieu de 3. Cela prouve que la conversion impicite de type double vers integer en sortie de modif pose problème. Or je pense que, dans votre exemple, le fait de ne pas définir le type de Nrcc fait que la ligne Nrcc=2 le définit implicitement comme un integer. - Message d'origine - De: pascal.chantri...@ac-grenoble.fr Date: Mercredi, Juin 10, 2009 0:34 am Objet: [prog] Re : Re: [prog] Paramètres par référence Bonjour, dim Nrcc,Mrcc,epsh1,epsb1 as double ne définit pas Nrcc et Mrcc comme double mais comme variant. La syntaxe basic impose de donner le type de chaque variable séparément.En fait : dim Nrcc,Mrcc,epsh1,epsb1 as double signifie : dim Nrcc as variant, Mrcc as variant, epsh1 as variant, epsb1 as double Il est donc déjà normal que en remplaçant dim Nrcc,Mrcc,epsh1,epsb1 as double par dim Nrcc as double, Mrcc as double ,etc... on puisse avaoir un comportement différent. Pascal - Message d'origine - De: xavier roguiez x...@geo.hmg.inpg.fr Date: Mardi, Juin 9, 2009 10:46 pm Objet: Re: [prog] Paramètres par référence xavier roguiez a écrit : Bonsoir Je me trouve confronté à un problème dont je ne comprends ni les tenants ni les aboutissants;, est ce que quelqu'un peut m'aider ? J'ai sorti l'ECM suivant : option explicit sub interaction_Rect() dim Nrcc,Mrcc,epsh1,epsb1 as double Nrcc=2: Mrcc=2 print Nrcc,Mrcc 'affiche 2 2 normal EffC_Rect(Nrcc,Mrcc) print Nrcc,Mrcc 'affiche 2 2 pas normal ? end sub sub EffC_Rect(Nrc2 as double,Mrc2 as double) Nrc2=10: Mrc2=10 end sub Par contre si je modifie les déclarations d'entêtes à savoir : dim Nrcc,Mrcc as double En fait il faut modifier pour obtenir le bon résultat la déclaration en dim Nrcc as double dim Mrcc as double alors le comportement redevient normal... print Nrcc,Mrcc 'affiche 2 2 normal EffC_Rect(Nrcc,Mrcc) print Nrcc,Mrcc 'affiche 10 10 normal ! Avez vous une idée ? D'avance merci xavier -- --- To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org -- -- - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org
[prog] nom de variable
Bonjour, Je pose les deux questions (liées) suivantes à tout hasard bien que je suppose que les réponses vont être négatives : 1) Existe-t-il un moyen de récupérer le nom d'une variable basic sous forme d'une chaine de caractère ? J'aimerai disposer d'une fonction qui me permette, si par exemple j'ai une variable définie par Dim maVariable As ... de récupérer maVariable 2) Existe-t-il un moyen d'accéder à une variable basic en passant en paramètre son nom sous forme d'une chaine de caractère ? J'aimerai disposer d'une fonction qui me permette, si par exemple j'ai une variable définie par Dim maVariable As ... de la lire ou de lui affecter une valeur en récupérant son nom maVariable dans une variable chaine nomDeMaVariable. Merci d'avance, Pascal - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org
[prog] Imprimer une feuille par son nom dans calc
Bonjour, Je n'arrive pas à trouver s'il est possible d'imprimer par macro une feuille d'un classeur en la désignant par son nom. Le but serait d'avoir quelque chose qui ne dépende ni du nombre de pages situé avant la feuille, ni du nombre de pages de la feuille, ni de la feuille active en cours, ni de l'option globale d'impression du document (doc entier ou feuille sélectionnée). Je n'ai trouvé qu'un message sur le sujet et il ne semble pas avoir eu de réponse. Merci d'avance si quelqu'un a une idée. Pascal - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org
Re: [prog] Imprimer une feuille par son nom dans calc
Bonjour, Bernard Marcelly a écrit : Bonjour Pascal, Message de Pascal Chantriaux date 2009-04-07 09:04 : Bonjour, Je n'arrive pas à trouver s'il est possible d'imprimer par macro une feuille d'un classeur en la désignant par son nom. Le but serait d'avoir quelque chose qui ne dépende ni du nombre de pages situé avant la feuille, ni du nombre de pages de la feuille, ni de la feuille active en cours, ni de l'option globale d'impression du document (doc entier ou feuille sélectionnée). Sur toutes les feuilles, supprimer les zones d'impression existantes. Créer une zone d'impression sur la feuille souhaitée et imprimer. Bernard Merci de ta réponse. C'est ce à quoi j'étais arrivé. J'ai ajouté à mon document une feuille auxiliaire contenant la liste des feuilles imprimables avec une colonne contenant la zone d'impression, une autre les lignes à répéter, une autre l'orientation du papier... et ma macro récupère pour chaque feuille les infos dans cette feuille. Mais je me demandais si il n'y avais pas plus simple. Je vais aussi regarder la solution de Jean-Marc que je viens de voir arriver sur la liste. Pascal - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org
Re: [prog] Imprimer une feuille par son nom dans calc
Bonjour, Merci de la réponse. Je n'avais pas pensé à utiliser le numéro d'index de la feuille. Je vais regarder cela demain. Pascal Jean-Marc.delmas a écrit : Pascal, J'ai par le passé cherché à reproduire par programmation les possibilités d'impression offertes par le GUI. Le moins que je puisse dire est que si la documentation existe elle n'est ni mise en évidence ni regroupée en un seul lieu. C'est pourquoi je me suis fait sur l'impression une sorte de pense-bête constitué de deux fichiers imprim.ods et imprim.odt qui pour le premier donne quelques procédures et utilitaires d'impression Calc pendant que le second donne un exemple pour Writer et des explications nécessaires pour obtenir ce que l'on veut pour ces deux outils. Ainsi tu verras qu'à moins d'un changement très improbable, il n'existe pas de méthode implémentée dans l'API qui à partir du nom d'une feuille peut en imprimer le contenu. Deux options s'offrent à toi pour résoudre le problème : 1) Tu veux imprimer tout le contenu de la feuille et ne veux pas créer de printArea. Il te faut alors transformer le nom de la feuille en son numéro d'index, la sélectionner via le controlleur d'écran associé, positionner les options d'impression sur les feuilles sélectionnées et imprimer. Il n'est pas difficile de connaître le numéro d'index d'une feuille dont on connaît le nom puique qu'il s'agit de la propiété Sheet de la propriété CellAddress de n'importe quelle cellule de la feuille, A1 par exemple. 2) Tu ne veux qu'une partie de la feuille. Il faut alors comme te l'a écrit Bernard que tu passes par la création d'une printArea en plus de la sélection de la feuille que tu veux imprimer. De cette manière seules les feuilles sélectionnées participent à l'impression. Autrement toutes les printArea présentes dans le document risquent d'être imprimées. Je te joins les fichiers imprim.ods et imprim.odt que je m'étais confectionnés. Puissent-ils te servir autant qu'ils m'ont été utiles. Enfin ce mail étant public que tous les membres de la communauté intéressés par le contenu de ces deux fichiers n'hésitent pas à s'en servir, je les y invite très confraternellement. Cordialement Jean-Marc - Original Message - From: pascal.chantri...@ac-grenoble.fr To: prog@fr.openoffice.org Sent: Tuesday, April 07, 2009 9:04 AM Subject: [prog] Imprimer une feuille par son nom dans calc Bonjour, Je n'arrive pas à trouver s'il est possible d'imprimer par macro une feuille d'un classeur en la désignant par son nom. Le but serait d'avoir quelque chose qui ne dépende ni du nombre de pages situé avant la feuille, ni du nombre de pages de la feuille, ni de la feuille active en cours, ni de l'option globale d'impression du document (doc entier ou feuille sélectionnée). Je n'ai trouvé qu'un message sur le sujet et il ne semble pas avoir eu de réponse. Merci d'avance si quelqu'un a une idée. Pascal - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org
[prog] Re : Re: [prog] Enregistrement perturbé
Je ne peux rien dire de précis car j'ai mauvaise mémoire mais j'ai constaté plusieurs fois (c'était sous OOo 2 sous windows xp en installation locale) que des mises à jour des macros que j'étais persuadé d'avoir enregistrées n'était pas prises en compte lorsque que je rouvrais le document la fois suivante. Je ne sais plus si cela était lié au fait que je fermais l'EDI avant ou après le document. Depuis je veille toujours à enregistrer deux fois, une fois depuis l'EDI puis une fois depuis le document (en faisant une modification sans conséquence pour activer l'icône Enregistrer qui s'est désactivé du fait de l'enregistrement dans les macros) et là je n'ai plus de problème. Pascal - Message d'origine - De: Bernard Marcelly marce...@club-internet.fr Date: Mercredi, Mars 18, 2009 8:50 am Objet: Re: [prog] Enregistrement perturbé Bonjour, Message de Delmas date 2009-03-17 23:37 : - Lorsqu'une macro est modifiée et que l'onglet Enregistrer du menu Fichier est activé, je parle ici du menu Fichier accessible à partir d'une feuille et non de l'EDI, les modifications des feuilles sont toujours enregistrées et jamais celles des macros. C'est très génant pour la mise au point. - Lorsqu'une macro est modifiée et que l'onglet Enregistrer est activé, je parle ici du menu Fichier accessible de l'EDI, les modifications des macros ne sont pas systématiquement enregistrées. (...) Enfin alors que le dysfonctionnement, (à mon sens), de l'enregistrement via les feuilles de calcul est systématique, celui que je constate dans l'EDI est totalement aléatoire. (...) Quelqu'un parmi nous a-t-il aussi constaté quelque chose qui ressemble à ce que je vous décris ou dois-je en venir à penser que c'est moi qui deviens dingo et qui suis plus perturbé que l' Enregistrement de mon travail ? Tu ne précises pas quel OS tu utilises, si les fichiers sont sur un disque dur du PC ou ailleurs (disque réseau, clé USB etc), s'il y a une sauvegarde automatique. Je pense avoir une certaine expérience des macros. Je n'ai jamais constaté cela, sur aucune version, avec Windows 98 puis Windows XP. Peut-être que mes habitudes évitent ces anomalies. La seule bizarrerie constatée avec les versions 3 est qu'une modification dans l'EDI active l'icône disquette de l'EDI, mais pas celle de la fenêtre document. L'icône ne s'active que quand la fenêtre du document devient active. Si le fichier Calc est sur un disque accessible dans le réseau, tout peut arriver avec la 3.0 si un autre utilisateur modifie aussi ce fichier. Si ta version d'OpenOffice.org a récupéré une configuration d'ancienne version tu peux essayer de reprendre à zéro la configuration utilisateur: mémoriser tes macros de Mes macros, puis arrêter OOo, renommer ou effacer le dossier utilisateur, relancer OOo et configurer tout depuis l'interface utilisateur (pas de bricolage dans les fichiers). Bernard - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org
Re: [prog] Mot de passe bibliotheque
Bonjour, Merci beaucoup de votre réponse. Votre macro fonctionne très bien, c'est bien ce que je cherchais. Je ne connaissais pas isLibraryPasswordProtected ni verifyLibraryPassword. Cela va mieux avec ! Je maintiens cependant que si on cherche à ouvrir la bibliothèque sans utiliser ces fonctions, donc sans donner le mot de passe, et qu'on tente de modifier le contenu d'un module, il n'y a pas de message d'erreur mais on n'a ensuite plus accès à la bibliothèque, le mot de passe est refusé (que ce soit via une macro ou via l'EDI). Et ce bien que, contrairement à ce que je pensais dans mon précédent message, on ait en fait pas accès au contenu des modules qui effectivement ne s'affiche pas (donc qui n'a pas pu être lu). En tout cas sur mon système, si je copie votre macro telle quelle en enlevant simplement les 3 lignes if (libCont.isLibraryPasswordProtected(libName) = true) then libCont.verifyLibraryPassword(libName, passw) end if je n'ai aucun message d'erreur mais les macros du document traité ne sont plus accessibles. En tout cas, encore merci! Pascal Thibault Vataire a écrit : Bonjour, Je n'arrive pas à reproduire votre problème : 1/ lorsqu'une de mes librairies est protégée par mot de passe, je n'arrive pas à lire/modifier sont contenu avec une autre macro. 2/ lorsque j'ouvre cette librairie avec le mot de passe, je peux lire/modifier le contenu et le sauvegarder. Cela n'empêche en rien d'accéder à son contenu par la suite, que ce soit par macro ou par l'interface graphique. Voici un exemple de la manière dont je procède : option explicit sub main dim const passw = password dim const libName = mdp dim const modName = Module1 dim doc as object dim libr as object dim libCont as object dim modContent as string doc = starDesktop.loadComponentFromUrl( convertToUrl(/tmp/test_mdp.ods), _ _blank, _ com.sun.star.frame.FrameSearchFlag.CREATE, _ array()) libCont = doc.basicLibraries libCont.loadLibrary(libName) libr = libCont.getByName(libName) 'rien ne s'afficher à cause du mot de passe modContent = libr.getByName(modName) msgbox(modContent) 'affiche le contenu du module if (libCont.isLibraryPasswordProtected(libName) = true) then libCont.verifyLibraryPassword(libName, passw) end if modContent = libr.getByName(modName) 'modifie, met à jour le module et re-affiche le contenu libr.replaceByName(modName, (modContent chr(10) 'commentaire ajouté au module.)) modContent = libr.getByName(modName) msgbox(modContent) doc.store() doc.dispose() end sub Est-ce également de cette manière que vous modifiez le contenu de la macro? Peux-être n'ai-je pas bien compris votre problème? Cordialement, T. Vataire - Mail Original - De: Pascal Chantriaux pascal.chantri...@free.fr À: prog@fr.openoffice.org Envoyé: Dimanche 8 Mars 2009 08h26:39 GMT +01:00 Amsterdam / Berlin / Berne / Rome / Stockholm / Vienne Objet: [prog] Mot de passe bibliotheque Bonjour, J'ai écrit une macro qui, à partir d'un document calc A, ouvre un autre document calc B qui contenant une bibliothèque de macro M protégée par mot de passe pour éliminer les lignes de commentaire de M afin de réduire la taille du document B. Je suis surpris qu'on puisse faire cela sans donner le mot de passe de la bibliothèque (je n'ai pas trouvé comment le faire et cela ne semble pas empêcher la macro d'agir) Cette macro fonctionne bien comme j'ai pu le constater en la faisant tourner en laissant le document B ouvert par contre si elle sauve ensuite le document B, il n'y a plus moyen d'ouvrir la bibliothèque M, il refuse le mot de passe ainsi que le mot de passe vide. Ce comportement est-il connu ? D'avance, merci. Pascal - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org
[prog] RE : [prog] Ouverture en lecture seule
Je viens de faire des tests avec les MEMES fichiers et je n'ai pas l'erreur aujourd'hui. En tout cas pas de surprise quand je fais enregistrer sous, c'est bien le bon répertoire. Par contre, je viens de constater quelque chose de très surprenant : par une macro (cf ci-dessous) du document A je peux ouvrir un autre document classeur.ods plusieurs fois et les différentes instances de ce document classeur.ods portent le même nom. J'ai donc plusieurs documents classeur.ods ouverts en même temps et j'ai vérifié qu'ils pointaient bien tous sur le même fichier d'origine. J'ai également constaté que je pouvait modifier et enregistrer chaque document sans qu'il y ait aucune mise à jour dans les autres, chaque enregistrement d'un document écrasant le fichier précédent sans que les autres document semblent au courant. Ce comportement est-il normal sachant que lors de l'ouverture manuelle de fichiers il y a un verrouillage qui empêche cettte situation de se produire ? -- la macro (toute bête) -- Sub TesterOuverture Dim doc as object, adr as string adr = convertToURL(F:\classeur.ods) Dim args() As New com.sun.star.beans.PropertyValue On Error Resume Next doc = StarDesktop.LoadComponentFromURL(adr, _blank, 0, args()) End Sub - Message d'origine - De: Pascal Chantriaux pascal.chantri...@free.fr Date: Dimanche, Mars 8, 2009 11:19 am Objet: Re: [prog] RE : [prog] RE : [prog] Ouverture en lecture seule Je n'ai pas pensé à vérifier cela, je regarderai demain quand j'aurais accès à l'ordinateur qui pose problème. Merci de l'idée. Pascal ALLART Philippe a écrit : Et quand tu fais enregistrer sous sur le document, quand il est en lecture seule, est-ce que le répertoire proposé par défaut est bien celui auquel tu t'attends? Ph. -- De : Pascal Chantriaux [pascal.chantri...@ac-grenoble.fr] Date d'envoi : dimanche 8 mars 2009 10:55 À : prog@fr.openoffice.org Objet : Re: [prog] RE : [prog] Ouverture en lecture seule C'est un fichier qui s'ouvre normalement (en lecture/écriture) quand on l'ouvre manuellement. ALLART Philippe a écrit : Bonjour, est-ce que ça ne viendrait pas du système de fichier, qui serait en lecture seule sous Vista? Ph. -- De : Pascal Chantriaux [pascal.chantri...@ac-grenoble.fr] Date d'envoi : dimanche 8 mars 2009 08:12 À : prog@fr.openoffice.org Objet : [prog] Ouverture en lecture seule Bonjour, A partir d'un document calc, j'ouvre par macro un autre document calc pour le modifier. Or cette macro, qui marche bien sur mon ordinateur sous windows xp, ne fonctionne pas sous un autre ordinateur sous windows vista car le document s'ouvre alors en lecture seule. J'ai essayé de forcer le ReadOnly bien que cela ne soit en principe pas nécessaire vu que c'est l'option par défaut mais cela ne change rien. Y aurait-il un problème connu lié au système d'exploitation ? D'avance, merci. Pascal - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org -- --- To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org -- --- To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org
Re: [prog] RE : [prog] Ouverture en lecture seule
C'est un fichier qui s'ouvre normalement (en lecture/écriture) quand on l'ouvre manuellement. ALLART Philippe a écrit : Bonjour, est-ce que ça ne viendrait pas du système de fichier, qui serait en lecture seule sous Vista? Ph. -- De : Pascal Chantriaux [pascal.chantri...@ac-grenoble.fr] Date d'envoi : dimanche 8 mars 2009 08:12 À : prog@fr.openoffice.org Objet : [prog] Ouverture en lecture seule Bonjour, A partir d'un document calc, j'ouvre par macro un autre document calc pour le modifier. Or cette macro, qui marche bien sur mon ordinateur sous windows xp, ne fonctionne pas sous un autre ordinateur sous windows vista car le document s'ouvre alors en lecture seule. J'ai essayé de forcer le ReadOnly bien que cela ne soit en principe pas nécessaire vu que c'est l'option par défaut mais cela ne change rien. Y aurait-il un problème connu lié au système d'exploitation ? D'avance, merci. Pascal - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org
[prog] Ouverture en lecture seule
Bonjour, A partir d'un document calc, j'ouvre par macro un autre document calc pour le modifier. Or cette macro, qui marche bien sur mon ordinateur sous windows xp, ne fonctionne pas sous un autre ordinateur sous windows vista car le document s'ouvre alors en lecture seule. J'ai essayé de forcer le ReadOnly bien que cela ne soit en principe pas nécessaire vu que c'est l'option par défaut mais cela ne change rien. Y aurait-il un problème connu lié au système d'exploitation ? D'avance, merci. Pascal - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org
[prog] Mot de passe bibliotheque
Bonjour, J'ai écrit une macro qui, à partir d'un document calc A, ouvre un autre document calc B qui contenant une bibliothèque de macro M protégée par mot de passe pour éliminer les lignes de commentaire de M afin de réduire la taille du document B. Je suis surpris qu'on puisse faire cela sans donner le mot de passe de la bibliothèque (je n'ai pas trouvé comment le faire et cela ne semble pas empêcher la macro d'agir) Cette macro fonctionne bien comme j'ai pu le constater en la faisant tourner en laissant le document B ouvert par contre si elle sauve ensuite le document B, il n'y a plus moyen d'ouvrir la bibliothèque M, il refuse le mot de passe ainsi que le mot de passe vide. Ce comportement est-il connu ? D'avance, merci. Pascal - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org
Re: [prog] étirement formule calc en ba sic
Un truc comme ça par exemple ? Sub recopierVersLeBas(nF, nZ As String) Dim feuille As Object, zone As Object, direction As Integer feuille = ThisComponent.Sheets.getByName(nF) zone = feuille.getCellRangeByName(nZ) direction = com.sun.star.sheet.FillDirection.TO_BOTTOM zone.fillAuto(direction, 1) End Sub nF : nom de la feuille nZ : nom de la zone complète (y compris la première ligne qui sera copiée dans les suivantes) Pascal Gabriel a écrit : Bonjour, Je recherche une formule basic pour faire un étirement de formule calc comme on le fait à la main avec la poignée de recopie. J'ai cherché sur la toile, sans résultat. J'ai utilisé l'enregistreur de macro, mais erreur à l'utilisation dans une boucle. Je suis sous ubuntu avec openoffice 3 téléchargé sur le cite francophone. Merci - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org - To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org For additional commands, e-mail: prog-h...@fr.openoffice.org
[prog] protection base
Bonjour, Il semble que la protection d'un fichier .dbo d'une base intégrée openoffice soit impossible (en essayant avec storeAsURL cela m'empêche ensuite de me connecter à la fois à la base d'origine et à sa copie). C'est quand même curieux qu'on ne puisse pas protéger une base de donnée avec un mot de passe ; s'il y a un type de document pour lequel une protection serait nécessaire, c'est bien celui-là. Pascal - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [prog] protection base
Bonjour, Bernard Marcelly a écrit : C'est une des limitations de la base intégrée. http://www.openoffice.org/issues/show_bug.cgi?id=55894 Utiliser un autre moteur de base de données, exemple MySQL. Au moins je sais que ce n'est pas la peine que je persiste dans ma recherche. Je ne pense pas que je vais prendre un serveur externe car, d'une part cela impose des contraintes (installation) que ne souhaitent pas les personnes à qui s'adresse ce que je développe, et d'autre part je n'ai pas les moyens de tester que tout fonctionne vraiment pareil sous toutes les plates-formes éventuelles. Je vais continuer avec ma simulation d'une base de données sous Calc avec macros. Tout est dans le même fichier, qui peut être protégé, ça fonctionne aussi bien sous windows, mac ou linux (à condition d'avoir des polices de mêmes tailles pour les document imprimés, cela peut maintenant se régler avec les Liberation Fonts) et macros et dialogues font merveille, en particulier grâce à l'utilisation intensive du livre Programmation OpenOffice.org 2, je profite de l'occasion pour vous en remercier. Pascal - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [prog] Pb StoreToUrl
Les deux méthodes ne font pas tout-à-fait la même chose puisque puisque avec storeAsURL le document sauvegardé devient le document courant alors qu'avec storeToURL le document courant garde son nom. La méthode storeToURL étant destinée à enregistrer un document sous un autre nom que le fichier de travail, si le document de travail a déjà son fichier toto.sdc et qu'on fait un storeToURL(toto.sdc,...) il peut être logique que OOo vérifie que cet fichier n'est pas déjà ouvert par ailleurs même si c'est par OOo. A ce moment-là, si il y a un changement de comportement entre les versions 2.3 et 2.4, est-ce que cela ne pourrait pas être la correction d'un bug? Jean-Philippe THEVENOUX a écrit : Merci Après quelques tests, je me suis aperçu que la fonction StoreAsUrl marchait très bien et le résultat était le même ... donc je vais pas chercher plus loin ! Si quelqu'un a des infos, ca peut être sympa de les faire passer, mais sinon, ben tant pis :) Bonne journée !! Message de Jean-Philippe THEVENOUX date 2008-04-23 09:43 : Bonjour J'ai une application faite sous OOo qui travaille sur des fichiers Excel. L'appli ouvre un fichier de travail, et enregistre les données au fur et à mesure en utilisant la fonction storeToUrl Mais depuis la version 2.4, cette fonction peut enregistrer un nouveau fichier, mais plante en cas de mise à jour Bonjour, Le plantage a-t-il lieu pour tout document Excel ou un particulier?, ou pour certaines modifications? Le plantage a-t-il lieu en sauvant manuellement le document (sauver comme Excel 97)? Je pense qu'il s'agit d'un cas particulier à signaler avec un rapport (Issue), une fois le problème cerné. Un crash peut inciter les développeurs à inclure la correction dans la 2.4.1. Bernard - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]