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 :

[Calc] Macro Excel à convertir en Open Office


Sujet :

OpenOffice & LibreOffice

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut [Calc] Macro Excel à convertir en Open Office
    Bonjour,
    Je fais appel à votre expertise car j'ai un petit soucis avec Open Office. Je m'explique:
    L'entreprise dans laquelle je travaille utilise Excel notamment pour générer des étiquettes temporaires (de production).
    L'opérateur scanne une série de codes barres pour renseigner plusieurs champs (A2:M2) dans la feuille de saisie (nom de la feuille = Datos). Lorsqu'il a terminé, il valide sa saisie en cliquant sur un bouton à la fin de la ligne, et là, une macro s'exécute (toute simple). Elle permet d'imprimer l'étiquette avec les informations renseignées, d'effacer le contenu des informations saisies au préalable et de repositionner le curseur sur le champs A2 pour recommencer une nouvelle saisie. La feuille qui contient le format de l'étiquette est masquée (nom de la feuille = Etiqueta).

    Pour des raisons de coût, ma société a décidé de migrer vers Open Office. En conséquence, il m'est nécessaire de refaire (assez rapidement) la macro sous Calc. Mais là...comme je débute, je ne sais pas trop comment m'y prendre.

    Voici le code initial, si quelqu'un peut me proposer un équivalent pour Calc se serait vraiment super:

    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Imprimir()
    '
    ' Imprimir Macro
    '
    Sheets("Etiqueta").Visible = True
    Sheets("Etiqueta").Activate
    ActiveSheet.PrintOut
    Sheets("Etiqueta").Visible = False
          Sheets("Datos").Select
        Range("A2:M2").Select
        Selection.ClearContents
        Range("A2").Select
    End Sub

    Merci d'avance pour votre aide précieuse.

  2. #2
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    Bonjour,
    sans être un grand spécialiste n'hésite pas à parcourir la FAQ d'open office tu trouveras des réponses a tes questions.
    j'ai essayé de faire le code qui te concerne, étant moi même un débutant sous open office . Il n'y a que la partie du code pour imprimer la feuille dont je ne suis pas sur, le reste c'est OK. voici le code :
    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
    Sub Macro_test
    dim oDoc as object, osh1 as object, osh2 as object
    dim oCC as object,maplage as object,ocel as object
    dim document   as object, dispatcher as object
     
    oDoc = thiscomponent
    oCC = oDoc.currentcontroller
     
    'Affiche la feuille masquée nommée "Etiqueta"
    osh1 = oDoc.getsheets.getbyname("Etiqueta")
    osh1.IsVisible = True
     
    'rend le feuille Etiqueta active
    oCC.activesheet = osh1
     
    rem - 'IMPRIME LA FEUILLE ACTIVE ----------------------------------------
    document   = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
    dispatcher.executeDispatch(document, ".uno:PrintDefault", "", 0, Array())
    rem ----------------------------------------------------------------------
     
    'masque le feuille Etiqueta
    osh1.IsVisible = False
     
    'active la feuille Datos
    osh2 = oDoc.getsheets.getbyname ("Datos")
    oCC.activesheet = osh2
     
    'vide le contenu de A2:M2
    maplage = osh2.getcellrangebyname ("A2:M2")
    maplage.clearContents(com.sun.star.sheet.CellFlags.VALUE +_
      com.sun.star.sheet.CellFlags.DATETIME +com.sun.star.sheet.CellFlags.STRING +_
      com.sun.star.sheet.CellFlags.ANNOTATION +com.sun.star.sheet.CellFlags.FORMULA)
     
    'sélectionne A2
    ocel = osh2.getcellrangebyname("A2")
    oCC.select (ocel)
    End Sub
    tiens moi au courant.
    @+

    Si vous avez trouvé la solution à votre problème n'oubliez pas d'appuyer sur
    Et n'oubliez pas de voter en appuyant sur si ce message a repondu à vos attentes.
    Ou sur si ce n'est pas le cas

Discussions similaires

  1. [OpenOffice][Base de données] Projet en excel transformer sous open office .org
    Par neo-n dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 27/05/2010, 14h14
  2. Utiliser des macros Excel sous open office
    Par Memes dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 08/11/2007, 21h46
  3. Migrer macro excel vers open office (VB vers Ooo) comment faire?
    Par cyberdevelopment dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/02/2007, 21h04
  4. Peux-t'on exécuter des macros excel avec Open Office
    Par Lexot2 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/09/2006, 22h30
  5. Réponses: 1
    Dernier message: 21/03/2006, 09h53

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