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 copie feuille sans les formules


Sujet :

OpenOffice & LibreOffice

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Avril 2019
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Avril 2019
    Messages : 43
    Points : 12
    Points
    12
    Par défaut Macro copie feuille sans les formules
    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
    End Sub
     
    Sub CopieFeuilleActive_NouveauClasseur  
      Dim oFrame As Object  
      Dim oDisp As Object  
      Dim Args(2) As New com.sun.star.beans.PropertyValue  
     
      oFrame = ThisComponent.CurrentController.Frame  
      oDisp = createUnoService("com.sun.star.frame.DispatchHelper")  
     
      Args(0).Name = "DocName"  
      Args(0).Value = ""  
      Args(1).Name = "Index"  
      Args(1).Value = 65535  
      Args(2).Name = "Copy"  
      Args(2).Value = True  
     
      oDisp.ExecuteDispatch(oFrame, ".uno:Move", "", 0, Args())  
    End Sub
    Bonjour,

    Voici la macro pour la copie de la feuille mais problème la feuille en question est chargée en formules et prends un temps fou pour se copier alors je pensais si il était possible qu'il serait préférable de faire un copier coller uniquement des valeurs bruts.
    Merci d'avance pour vos lumières !!!

  2. #2
    Membre averti Avatar de Mobydick_62
    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2009
    Messages
    261
    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 : 261
    Points : 388
    Points
    388
    Par défaut Macro copie feuille sans les formules
    Bonjour,

    Que veux tu vraiment faire ?
    - Copier une feuille complète vers une autre feuille du même classeur ?
    - Copier une feuille complète vers une autre classeur ?

    Le titre de ta sub :
    Sub CopieFeuilleActive_NouveauClasseur
    donne le doute.

    Aussi si ce n'est que le résultat des formules que tu veux copier, alors effectivement il est inutile de copier/coller les formules avec.

    Peux tu préciser ?

    Cordialement
    Libre Office Version: 7.4.3.2 (x64)
    Windows 10

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Avril 2019
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Avril 2019
    Messages : 43
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par Mobydick_62 Voir le message
    Bonjour,

    Que veux tu vraiment faire ?

    - Copier une feuille complète vers une autre classeur ?
    Oui c'est bien ça mon objectif arriver à copier une feuille vers un autre classeur mais sans les formules afin d’accélérer le processus

  4. #4
    Membre averti Avatar de Mobydick_62
    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2009
    Messages
    261
    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 : 261
    Points : 388
    Points
    388
    Par défaut Macro copie feuille sans les formules
    Bonjour,
    Ci-dessous le code. Le collage se fait sur un nouveau classeur. Si c'est sur un classeur existant et ouvert le code sera différent (mais tu le précises pas).

    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
    'Copie d'une feuille d'un classeur vers un nouveau classeur
    Sub CopieFeuilleActive_NouveauClasseur()
     Dim oCalcSource As Object, oCalcDest As Object 
     Dim oFeuilleSource As Object, oFeuilleDest as Object
     Dim oFrame As Object, oDisp As Object
     
     'Document source
     oCalcSource = thiscomponent
     
     'Je désigne la feuille source et l'active(si elle ne l'est pas)
     oFeuilleSource = oCalcSource.getSheets.getByName("Feuille1")
     oCalcSource.CurrentController.ActiveSheet = oFeuilleSource
     
     'Copie
     oFrame = oCalcSource.CurrentController.Frame 
     oDisp = createUnoService("com.sun.star.frame.DispatchHelper")
     oDisp.executeDispatch(oFrame, ".uno:SelectAll", "", 0, Array())
     oDisp.executeDispatch(oFrame, ".uno:Copy", "", 0, Array())
     
     'J'ouvre un nouveau document Calc    
     oCalcDest = StarDesktop.LoadComponentFromURL("private:factory/scalc","_blank",0,array())   
     
     'Je désigne la feuille qui va recevoir les données  
     oFeuilleDest = oCalcDest.getSheets.getByName("Feuille1")
     'Activation de cette feuille
     oCalcDest.CurrentController.ActiveSheet = oFeuilleDest
     'Selection de la frame
     oFrame = oCalcDest.CurrentController.Frame 
     oDisp = createUnoService("com.sun.star.frame.DispatchHelper")
     
     'Collage des données sans les formules     
      oDisp.executeDispatch(oFrame, ".uno:PasteOnlyValue", "", 0, Array())
     
    End Sub
    Cordialement
    Libre Office Version: 7.4.3.2 (x64)
    Windows 10

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Avril 2019
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Avril 2019
    Messages : 43
    Points : 12
    Points
    12
    Par défaut
    Cela marche parfaitement bien la rapidité d’exécution est au rendez-vous mais il subsiste un petit problème la copie des chiffres s'effetue très bien sans les formules sauf que dans mon tableau certaines cellules sont du texte ou encore des dates et là la copie ne fonctionne pas....
    Grand merci à vous fin connaisseur des secrets de calc votre aide m'est précieuse

  6. #6
    Membre averti Avatar de Mobydick_62
    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2009
    Messages
    261
    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 : 261
    Points : 388
    Points
    388
    Par défaut Macro copie feuille sans les formules
    Dans ce cas :

    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
    'Copie d'une feuille d'un classeur vers un nouveau classeur
    Sub CopieFeuilleActive_NouveauClasseur()
     Dim oFeuilleSource As Object, oFeuilleDest as Object
     Dim oFrame As Object, oDisp As Object
     Dim oCalcSource As Object, oCalcDest As Object 
     Dim args(5) As New com.sun.star.beans.PropertyValue
     
     'Document source
     oCalcSource = thiscomponent
     
     'Je désigne la feuille source et l'active(si elle ne l'est pas)
     oFeuilleSource = oCalcSource.getSheets.getByName("Feuille1")
     oCalcSource.CurrentController.ActiveSheet = oFeuilleSource
     
     'Copie
     oFrame = oCalcSource.CurrentController.Frame 
     oDisp = createUnoService("com.sun.star.frame.DispatchHelper")
     oDisp.executeDispatch(oFrame, ".uno:SelectAll", "", 0, Array())
     oDisp.executeDispatch(oFrame, ".uno:Copy", "", 0, Array())
     
     'J'ouvre un nouveau document Calc    
     oCalcDest = StarDesktop.LoadComponentFromURL("private:factory/scalc","_blank",0,array())   
     
     'Je désigne la feuille qui va recevoir les données  
     oFeuilleDest = oCalcDest.getSheets.getByName("Feuille1")
     'Activation de cette feuille
     oCalcDest.CurrentController.ActiveSheet = oFeuilleDest
     'Selection de la frame
     oFrame = oCalcDest.CurrentController.Frame 
     oDisp = createUnoService("com.sun.star.frame.DispatchHelper")
     
     'Propriété du collage spécial
     args(0).Name = "Flags"
     args(0).Value = "SVDT"
     args(1).Name = "FormulaCommand"
     args(1).Value = 0
     args(2).Name = "SkipEmptyCells"
     args(2).Value = false
     args(3).Name = "Transpose"
     args(3).Value = false
     args(4).Name = "AsLink"
     args(4).Value = false
     args(5).Name = "MoveMode"
     args(5).Value = 4
     
    oDisp.executeDispatch(oFrame, ".uno:InsertContents", "", 0, args()) 
     
    End Sub
    Cordialement
    Libre Office Version: 7.4.3.2 (x64)
    Windows 10

  7. #7
    Membre à l'essai
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Avril 2019
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Avril 2019
    Messages : 43
    Points : 12
    Points
    12
    Par défaut
    bonjour,

    alors oui la copie de la feuille fonctionne mais pourrait on attribuer cette macro à une feuille en particulier d'un classeur bien definit car en basant la macro sur la feuille active celle ci bug de temps à autre et ne copie pas la bonne feuille.*

    Merci d'avance

  8. #8
    Membre averti Avatar de Mobydick_62
    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2009
    Messages
    261
    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 : 261
    Points : 388
    Points
    388
    Par défaut Macro copie feuille sans les formules
    Bonsoir,
    En pièce jointe le fichier exemple.
    En considérant que la feuille du tableau qui reçoit les données soit vierge et qu'elle existe.
    Sinon il faudra revenir vers moi.
    Cordialement

    Copie-Feuille.ods
    Libre Office Version: 7.4.3.2 (x64)
    Windows 10

Discussions similaires

  1. Copie de valeur sans les formules
    Par Chewee08 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/07/2017, 11h09
  2. [LibreOffice][Tableur] Copier/Coller plage de cellules sans les formules en macro basic
    Par mike76 dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 30/08/2016, 08h59
  3. Copier une feuille SANS les formules (justes les valeurs)
    Par yaya_la_rafale dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/09/2015, 17h12
  4. [XL-2007] copy destination sans les formules qui sont dans certaines Cellules de la source
    Par scoubi77 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/09/2014, 10h48
  5. [XL-2003] Copier feuille d'un classeur à un autre sans les formules des worksheets
    Par tioch dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 16/08/2011, 15h34

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