[fr-users] Re: Calc - styles chargés par macro erronés
Bonjour Michel Michel Rudelle wrote Euréka, ça marche du tonnerre ! J'ai ramé un peu, j'ai suivi l'idée et je me suis aidé de la bible et de Xray. J'aurais dû expliquer mieux ? Au final je ne vois pas de différence d'avec le code que je t'avais donné Hormis le fait de tester sur 0 au lieu de -1 le retour de queryKey. Pour ce cas particulier il y a peu de chances que l'api évolue mais de manière générale cette modification ne me semble pas une bonne idée: *Pour le moment* la fonction renvoie -1 (donc qq chose de négatif) mais si un développeur rajoute des conditions et codes... Il vaut mieux prendre strictement la valeur indiquée. Voir API http://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1util_1_1XNumberFormats.html#ac5022a94174fe108615eeaccd7a0e59c Michel Rudelle wrote Pourquoi la clé du même format de nombre est-elle différente dans les deux documents ??? Je n'ai pas regardé le mécanisme de création de la clé mais je doute qu'il soit fondé sur le texte du format, plus vraisemblablement sur l'ordre de création. Cordialement Pierre-Yves -- View this message in context: http://nabble.documentfoundation.org/Calc-styles-charges-par-macro-errones-tp4153307p4153805.html Sent from the Users mailing list archive at Nabble.com. -- Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour savoir comment vous désinscrire Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/ Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être supprimés
[fr-users] Re: Calc - styles chargés par macro erronés
Suite... Michel Rudelle wrote Je viens de découvrir que le code que tu m'avais transmis n'est visible QUE sur Nabble mais n'est pas dans ma messagerie. Je n'étais pas allé sur Nable et faute de voir le code dont tu parlais, je suis parti à la découverte avec seulement le fil conducteur qui était dans le corps du message. C'est très formateur ! Oui mais je me sens un peu bête quand même parce que... Michel Rudelle wrote Et un mystère de plus, pourquoi ce code n'est pas dans ma messagerie ? ...c'est sans doute parce que je l'ai balisé avec la mise en forme Nabble (raw text). Le mieux est quand même parfois l'ennemi du bien. Désolé pour cette erreur... et bravo pour la recherche en profondeur dans l'Api :) Cordialement Pierre-Yves -- View this message in context: http://nabble.documentfoundation.org/Calc-styles-charges-par-macro-errones-tp4153307p4153808.html Sent from the Users mailing list archive at Nabble.com. -- Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour savoir comment vous désinscrire Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/ Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être supprimés
RE: [fr-users] Re: Calc - styles chargés par macro erronés
Bonjour Pierre-Yves, Euh, non tu n'aurais pas pu expliquer mieux, la preuve j'y suis arrivé, mais: Je viens de découvrir que le code que tu m'avais transmis n'est visible QUE sur Nabble mais n'est pas dans ma messagerie. Je n'étais pas allé sur Nable et faute de voir le code dont tu parlais, je suis parti à la découverte avec seulement le fil conducteur qui était dans le corps du message. C'est très formateur ! Et un mystère de plus, pourquoi ce code n'est pas dans ma messagerie ? Cordialement Michel -Message d'origine- De : pierre-yves samyn [mailto:pierre-yves.sa...@laposte.net] Envoyé : mardi 7 juillet 2015 08:36 À : users@fr.libreoffice.org Objet : [fr-users] Re: Calc - styles chargés par macro erronés Bonjour Michel Michel Rudelle wrote Euréka, ça marche du tonnerre ! J'ai ramé un peu, j'ai suivi l'idée et je me suis aidé de la bible et de Xray. J'aurais dû expliquer mieux ? Au final je ne vois pas de différence d'avec le code que je t'avais donné Hormis le fait de tester sur 0 au lieu de -1 le retour de queryKey. Pour ce cas particulier il y a peu de chances que l'api évolue mais de manière générale cette modification ne me semble pas une bonne idée: *Pour le moment* la fonction renvoie -1 (donc qq chose de négatif) mais si un développeur rajoute des conditions et codes... Il vaut mieux prendre strictement la valeur indiquée. Voir API http://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1ut il_1_1XNumberFormats.html#ac5022a94174fe108615eeaccd7a0e59c Michel Rudelle wrote Pourquoi la clé du même format de nombre est-elle différente dans les deux documents ??? Je n'ai pas regardé le mécanisme de création de la clé mais je doute qu'il soit fondé sur le texte du format, plus vraisemblablement sur l'ordre de création. Cordialement Pierre-Yves -- View this message in context: http://nabble.documentfoundation.org/Calc- styles-charges-par-macro-errones-tp4153307p4153805.html Sent from the Users mailing list archive at Nabble.com. -- Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour savoir comment vous désinscrire Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/ Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être supprimés -- Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour savoir comment vous désinscrire Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/ Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être supprimés
RE: [fr-users] Re: Calc - styles chargés par macro erronés
Bonsoir Pierre-Yves, -Message d'origine- De : pierre-yves samyn [mailto:pierre-yves.sa...@laposte.net] Envoyé : dimanche 5 juillet 2015 12:54 À : users@fr.libreoffice.org Objet : [fr-users] Re: Calc - styles chargés par macro erronés Bonjour Michel Michel Rudelle wrote Je copie des styles de cellule dun classeur vers un autre grâce à la procédure suivante : ... si certains styles sont corrects, dautres ont perdu leur définition en route ! ... Jai cherché mais nai pas trouvé de bug correspondant. Ben... c'est parce que ce n'est pas un bug me semble-t-il. Tu récupères les styles mais les styles utilisent des formats qui en l'occurrence sont personnalisés, donc, propres au classeur source. La solution est de récupérer aussi ces formats. Ci-dessous un code à tester (il y a peut-être plus performant mais là tout de suite j'ai fait avec ce que je savais sans rechercher plus avant dans l'Api). Explications : J'utilise loadStylesFromDocument puisque tu récupères les styles de thiscomponent. Pas besoin de passer par un chargement url. Quand les styles sont chargés... Pour chaque style de cellule de la source (thiscomponent)... À partir de la clé on récupère son format... Si c'est un format utilisateur... On recherche ce format dans la cible (formats de syntheseSF)... Si on ne trouve pas ce format on l'ajoute ce qui donne une nouvelle clé... Que l'on attribue au style de même nom dans la cible (syntheseSF) PS: je fais l'hypothèse que la locale était la même entre les classeurs... J'espère que c'est (relativement) clair... :) Euréka, ça marche du tonnerre ! J'ai ramé un peu, j'ai suivi l'idée et je me suis aidé de la bible et de Xray. Mais il reste un mystère: Pourquoi la clé du même format de nombre est-elle différente dans les deux documents ??? Encore merci, Michel PS: Voici le petit bout de Procédure que j'ai fait pour ça: Sub copieFormatNombre(docOrigine As Object, docCible As Object, nomDuStyle As String) ' docOrigine et docCible sont deux documents ouverts ' nomDuStyle est le nom du style dans les deux documents 'retour avec le style mis correctement à jour dans le document cible Dim maLangue As New com.sun.star.lang.Locale Dim cleDoc1 As Long, cleDoc2 As Long, x As Long Dim unFormat As Object, nomDuFormat As String '1/ dans le document d'origine, recherche du format de nombre personnalisé utilisé dans le style copié 'récupérer le NumberFormat correspondant (la clé) cleDoc1 = docOrigine.StyleFamilies.getByName(CellStyles).getByName(nomDuStyle).Numbe rFormat 'récupérer l'objet format correspondant à ce NumberFormat pour en obtenir le nom (en fait ce que l'on voit dans Description du Format) unFormat = docOrigine.NumberFormats.getByKey(cleDoc1) nomDuFormat = unFormat.FormatString '2/ recherche de l'existence de ce format dans le document cible et ajout dans le style s'il n'existe pas maLangue.Language = fr maLangue.Country = FR x = docCible.NumberFormats.queryKey(nomDuFormat, maLangue, False) 'renvoie le NumberFormat si le format est présent, sinon négatif If x 0 Then cleDoc2 = docCible.NumberFormats.addNew(nomDuFormat, maLangue) docCible.StyleFamilies.getByName(CellStyles).getByName(nomDuStyle).NumberF ormat = cleDoc2 End If End Sub -- Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour savoir comment vous désinscrire Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/ Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être supprimés