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 :

Problème lors de la conversion d'une macro Excel


Sujet :

OpenOffice & LibreOffice

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Août 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Problème lors de la conversion d'une macro Excel
    Bonjour à tous

    j'ai transféré mes applications de excel sous window à libreoffice calc sous mac

    Je rencontre des problèmes au niveau des macros, concernant les niveaux de variables.

    En particulier je cherche à fixer le nom de la feuille et les références d'une cellule de cette feuille, que je quitte pour aller chercher une valeur dans une autre feuille et que je veux copier à l'aide d'une macro dans la cellule quittée précédemment.

    Ci après l'instruction qui fonctionnait avec Excell, que je n'arrive pas à introduire dans Libreoffice.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Workbook_SheetDeactivate(ByVal Fl As Object)
    Dim af As Worksheet
    Set af = ActiveSheet
    With Application: .EnableEvents = 0: .ScreenUpdating = 0: End With
    Fl.Activate
    feuille = ActiveSheet.Name
    cellule = ActiveCell.Address
    af.Activate
    With Application: .ScreenUpdating = 0: .EnableEvents = 1: End With
    End Sub
    Merci d'avance, cordialement

  2. #2
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Points : 1 493
    Points
    1 493
    Billets dans le blog
    1
    Par défaut
    Bonjour DubDub48
    Au risque de passer pour un ignare, j'avoue ne pas comprendre la question qui ressemble à un copier-coller; mais je me trompe sûrement !
    Pourrais-tu détailler un peu le principe de cette macro et comment elle est déclenchée, utilisée.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Août 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Libre Office calc
    Citation Envoyé par Michel Voir le message
    Bonjour DubDub48
    Au risque de passer pour un ignare, j'avoue ne pas comprendre la question qui ressemble à un copier-coller; mais je me trompe sûrement !
    Pourrais-tu détailler un peu le principe de cette macro et comment elle est déclenchée, utilisée.
    Bonjour Michel

    Est ce que je peux t'envoyer mon fichier à partir duquel je pourrais t'expliquer ma démarche.

    En gros, je quite une feuille "Etude TCE" sur laquelle je fais des sous détails de prix et je vais chercher une valeur dans une autre feuille à l'aide d'un filtre que je veux copier dans la cellule que je viens de quitter sur la feuille "Etude TCE" .

    Cela revient à conserver en mémoire les coordonnées de la cellule quittée.

    En attendant ci après les macro qui me permettent de faire ma manip.

    Avec la macro 1 je change de feuille
    Avec la macro 5 je revient sur la feuille "Etude TCE" après avoir cherché ma valeur dans une table avec un filtre.

    Cela marche bien sur Excell car les variables feuille et cellule sont identifiées dans un module qui est dans worksheet mais je ne retrouve pas l'équivalent dans libre office.

    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
    Sub Macro1()
    ' Macro1 Macro
    ' Aller à liste des taches
    x = ActiveSheet.Name
    y = Selection.Address
     'pour vérif avant ==>
    MsgBox ("feuille (" & x & ") cellule (" & y & " )")
    Sheets("Liste des tâches").Select
     Range("A2").Select
    End Sub
     
    Sub Macro5()
    If feuille = "" Then Exit Sub
     With Application
     .ScreenUpdating = 0
      Range("A4").Copy
    Sheets(feuille).Range(cellule).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    .CutCopyMode = False
    .ScreenUpdating = 1
    End With
    Sheets(feuille).Select
    End Sub

  4. #4
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Points : 1 493
    Points
    1 493
    Billets dans le blog
    1
    Par défaut
    Bonjour DubDub48
    Je pense que les réponses à tes problèmes d'identification et feuille et ce cellule sont dans la FAQ http://openoffice-libreoffice.develo...feuille-active
    Exemple:
    Comment afficher le nom de la feuille active ?

    Code vb :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim oDoc As Object , Feuille As Object 
     
    oDoc=ThisComponent 
     
    Feuille = oDoc.getCurrentController().getActiveSheet() 
    MsgBox Feuille.getName() 
     
    'Une autre solution 
    MsgBox oDoc.CurrentController.ActiveSheet.getName

Discussions similaires

  1. [LibreOffice][Tableur] Dupliquer des lignes d'une feuille libre office calc sur une autre feuille
    Par loul1933 dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 06/11/2014, 11h07
  2. [LibreOffice][Tableur] Calcul dans CALC Libre office
    Par Eolienne dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 04/11/2013, 07h45
  3. [VB6-OOo]Open Office Calc
    Par Kokito dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 24/11/2006, 16h11

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