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 :

Macro Copier/Coller qui ne fonctionne pas à partir d'un bouton de formulaire


Sujet :

OpenOffice & LibreOffice

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 22
    Points : 22
    Points
    22
    Par défaut Macro Copier/Coller qui ne fonctionne pas à partir d'un bouton de formulaire
    Bonsoir à tous,

    J'ai créé une macro toute bête qui copie une plage de cellules pour en faire un collage spécial de dans un autre onglet. Cette macro fonctionne parfaitement bien lorsqu'on l'exécute à partir du gestionnaire de macros ou d'une commande assignée dans la barre de tâches. Malheureusement, lorsque j'assigne cette macro à un bouton de formulaire, elle ne fonctionne plus (sauf si je l'ai déjà lancé une première fois par le gestionnaire de tâches).
    Merci de votre attention.

  2. #2
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Citation Envoyé par Yadutaf Voir le message
    J'ai créé une macro toute bête [...] lorsque j'assigne cette macro à un bouton de formulaire, elle ne fonctionne plus (sauf si je l'ai déjà lancé une première fois par le gestionnaire de tâches).
    « elle ne fonctionne plus » ou « elle ne fonctionne pas » ???
    Dans les 2 cas, c'est plutôt vague comme explication !!!
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 22
    Points : 22
    Points
    22
    Par défaut
    Je sais que ça semble un peu vague mais je ne sais quoi dire d'autre. Pour être plus concis :

    La macro ne fonctionne pas lorsque j'essaie de l'exécuter depuis un bouton de formulaire mais elle fonctionne très bien à partir du gestionnaire de macro ou d'une commande de barre de tâche.

  4. #4
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Citation Envoyé par Yadutaf Voir le message
    Je sais que ça semble un peu vague mais je ne sais quoi dire d'autre...
    Peut-être le code de la macro !
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 22
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par Patrice740 Voir le message
    Peut-être le code de la macro !
    Oui, vous avez raison. C'est une macro que je me suis contenté d'enregistrer avec l'enregistreur de macro :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    sub Copier
    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 = "$Tournoi.$A$3:$D$52"
     
    dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
     
    rem ----------------------------------------------------------------------
    dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
     
    rem ----------------------------------------------------------------------
    dim args3(0) as new com.sun.star.beans.PropertyValue
    args3(0).Name = "Nr"
    args3(0).Value = 2
     
    dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args3())
     
    rem ----------------------------------------------------------------------
    dim args4(0) as new com.sun.star.beans.PropertyValue
    args4(0).Name = "ToPoint"
    args4(0).Value = "$A$2"
     
    dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args4())
     
    rem ----------------------------------------------------------------------
    dim args5(5) as new com.sun.star.beans.PropertyValue
    args5(0).Name = "Flags"
    args5(0).Value = "SV"
    args5(1).Name = "FormulaCommand"
    args5(1).Value = 0
    args5(2).Name = "SkipEmptyCells"
    args5(2).Value = false
    args5(3).Name = "Transpose"
    args5(3).Value = false
    args5(4).Name = "AsLink"
    args5(4).Value = false
    args5(5).Name = "MoveMode"
    args5(5).Value = 4
     
    dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args5())
     
     
    end sub

  6. #6
    Membre averti Avatar de Mobydick_62
    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2009
    Messages
    260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2009
    Messages : 260
    Points : 386
    Points
    386
    Par défaut Macro Copier/Coller qui ne fonctionne pas à partir d'un bouton de formulaire
    Bonjour. J'arrive un peu tard sur le sujet. As tu solutionné ton problème ?
    Quand on effectue une action sur un contrôle de formulaire (dans ton cas le bouton), le focus passe sur le formulaire.
    Avant exécution il faut remettre le focus sur ton document Calc :
    Donc le copier coller du dispatcher nécessite de redéfinir le focus sur le Frame.ContainerWindow courant.
    Il faut au début du code de ta macro insérer le code suivant : ThisComponent.CurrentController.Frame.ContainerWindow.setFocus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    sub Copier
    rem ----------------------------------------------------------------------
    rem define variables
     
    ThisComponent.CurrentController.Frame.ContainerWindow.setFocus
     
    dim document   as object
    dim dispatcher as object
    rem SUITE DE TON CODE
    Cordialement
    Libre Office Version: 7.4.3.2 (x64)
    Windows 10

  7. #7
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2020
    Messages : 9
    Points : 4
    Points
    4
    Par défaut Redirection du focus
    Bonjour,
    La ligne de commande que vous avez proposé pour le redirection du focus sur le document CALC a bien fonctionné
    Le ou la destinataire de votre message ne vous avait pas répondu , mais votre suggestion a résolu mon problème .
    Merci pour votre aide .

Discussions similaires

  1. Copier Coller qui ne fonctionne pas
    Par maitrebanjo dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 22/05/2015, 12h22
  2. [XL-2003] copier-coller qui ne fonctionne pas
    Par facteur dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/05/2010, 16h34
  3. copier coller qui ne fonctionne pas
    Par ericdev67 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/12/2009, 10h36
  4. [E-07] Copier/Coller qui ne marche pas
    Par bdx-77 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/12/2008, 07h00
  5. Coller qui ne fonctionne pas
    Par cynoq dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/12/2008, 08h31

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