IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenOffice & LibreOffice Discussion :

OpenOffice.org Basic - Récupérer la sélection [OpenOffice]


Sujet :

OpenOffice & LibreOffice

  1. #1
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 329
    Points : 366
    Points
    366
    Par défaut OpenOffice.org Basic - Récupérer la sélection
    Bonjour,

    Je suis en train de réaliser une macro OpenOffice (en Basic) qui me permettra de traduire dans une autre langue (via Google translator) une portion de texte sélectionnée, d'un simple clic de souris.

    J'ai déjà fait la partie web (envoi et récupération du texte), qui marche bien. Ce que par contre je n'arrive pas à faire, c'est d'accéder au texte sélectionné du document...

    Je m'explique ; j'ai fait cette petite macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub Traducteur
    	monDocument = StarDesktop.getCurrentComponent()
    	maSelection = monDocument.CurrentSelection
    	' si la sélection est multiple, la sélection 0 est vide
    	' donc on prend la 1
    	n = IIF(maSelection.Count>1,1,0)
    	monTexte = maSelection(n).text
    	MsgBox monTexte.String
    End Sub
    Elle est sensée afficher le texte que j'ai sélectionné dans une MsgBox.
    Le problème, c'est que si je tape le texte "Salut, c'est moi !" dans un document vide, que je sélectionne "Salut" et que le lance cette macro, ça m'affiche tout le texte du document, donc "Salut, c'est moi !", au lieu de "Salut".
    Bref, ça marche pas !

    Quelqu'un aurait-il la solution à mon problème ?
    (j'ai déjà cherché sur google et sur api.openoffice.org, mais je n'ai rien trouvé).

    Merci d'avance pour votre aide

  2. #2
    Membre chevronné
    Avatar de Bidouille
    Inscrit en
    Mars 2003
    Messages
    1 281
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 281
    Points : 1 999
    Points
    1 999
    Par défaut
    Tu as l'excellente macro CasseMajF3 qui justement a besoin d'une sélection pour fonctionner

  3. #3
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 329
    Points : 366
    Points
    366
    Par défaut
    Je me suis justement inspiré de cette macro pour faire la mienne... Le code que j'ai cité ci-dessus en est une reprise quasiment mot pour mot.

    CasseMajF3 récupère la sélection de l'utilisateur (la partie qui m'intéresse) et la parcourt lettre par lettre pour changer la casse.
    Le problème, c'est que même en faisant un copier-coller brut des premières lignes, ça ne marche pas
    Ca me dépasse...

  4. #4
    Membre chevronné
    Avatar de Bidouille
    Inscrit en
    Mars 2003
    Messages
    1 281
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 281
    Points : 1 999
    Points
    1 999
    Par défaut
    Est ce que la macro CasseMajF3 fonctionne ?

    Il faudrait également préciser ta version et ton OS.

  5. #5
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 329
    Points : 366
    Points
    366
    Par défaut
    Oui, CasseMajF3 fonctionne, c'est pour ça que je ne comprend pas...

    Sinon, je suis sous OOo 2.1 (version Novell) et Suse Linux 10.0

  6. #6
    Membre chevronné
    Avatar de Bidouille
    Inscrit en
    Mars 2003
    Messages
    1 281
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 281
    Points : 1 999
    Points
    1 999
    Par défaut
    L'édition Novell est un peu particulière, il faudrait tester ta macro avec la version officielle pour voir.

    D'un autre côté, tu as en principe un support assuré par Novell avec ta version.

  7. #7
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 329
    Points : 366
    Points
    366
    Par défaut
    J'ai fini par trouver ce qui n'allait pas : en fait, il fallait créer un objet curseur à partir de la sélection pour pouvoir travailler dessus.

    Maintenant ça marche, y compris sous les versions standard d'OOo.
    Voilà ma fonction principale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    Sub Traducteur
    	Dim monDocument as Object
    	Dim maSelection as Object
    	Dim textSelect as Object
    	Dim monTexte as Object
    	Dim textTraduit as String
    	Dim n as Long
     
    	REM - recuperer la selection
    	monDocument = StarDesktop.getCurrentComponent()
    	maSelection = monDocument.CurrentSelection
    	' si la sélection est multiple, la sélection 0 est vide
    	' donc on prend la 1
    	n = IIF(maSelection.Count>1, 1, 0)
    	texteSelect = maSelection(n).text
    	monTexte = textSelect.createTextCursorByRange(maSelection(n))
     
    	REM - traduire le texte
    	textTraduit = Traduire(monTexte.String, "francais", "anglais")
     
    	REM - remplacer selection par traduction
    	monTexte.String = texteTraduit
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [OpenOffice][Tableur] Compatibilité Openoffice.org basic et VBA ?
    Par ilcocodrillo dans le forum OpenOffice & LibreOffice
    Réponses: 6
    Dernier message: 26/09/2007, 19h47
  2. [OpenOffice][Tableur] [OPENOFFICE.org Basics] - OpenCalc & XSLT
    Par jacquesh dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 24/07/2007, 15h48
  3. Récupérer une sélection
    Par Poussera dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 13/04/2005, 11h16
  4. Récupérer la sélection d'un TreeView
    Par nostroyo dans le forum Composants VCL
    Réponses: 6
    Dernier message: 16/06/2003, 12h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo