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 calculate sous CALC ? Possible ? [LibreOffice][Tableur]


Sujet :

OpenOffice & LibreOffice

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 51
    Points : 19
    Points
    19
    Par défaut Macro calculate sous CALC ? Possible ?
    Bonjour,

    Je souhaiterais savoir s'il est possible dans libreoffice calc de ne calculer qu'une plage de cellule définie ?
    En effet, j'ai plein de formules réparties sur plusieurs onglets et le calcul automatique prend beaucoup de temps.
    Sous excel en macro VBA il y avait le "calculate" mais quid en basic sous calc ? Je n'ai rien trouvé.

    Une idée ?

    Merci !

  2. #2
    Membre éprouvé
    Homme Profil pro
    utilisateur
    Inscrit en
    Janvier 2017
    Messages
    669
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : utilisateur
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2017
    Messages : 669
    Points : 1 109
    Points
    1 109
    Par défaut
    Bonjour alucard_xs

    j'utilise la macro ci-dessous, affectée à l'évènement de feuille clic droit pour réactiver le calcul quand c'est utile
    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
    Sub recalcul
    Dim calcul as boolean
    Dim debut as variant
    if not thisComponent.isAutomaticCalculationEnabled() then
     
            If MsgBox ("Attention calcul automatique désactivé !" _
                 &chr(13) &" Voulez-vous recalculer maintenant",292, now()) = 6 Then
                debut=now()
                thisComponent.enableAutomaticCalculation(true)
                thisComponent.calculate      'mise à jour des formules modifiées
                thisComponent.calculateAll
                thisComponent.enableAutomaticCalculation(false)
                thisComponent.store
                msgbox ("Recalcul terminé," & chr(10) & "debut : " & debut _
                 & " fin : " & now() & chr(10) & "le recalcul automatique a été désactivé ",16,now())
     
     
            End IF
        endif
    end sub
    LibreOffice 7.5.9.2.M1 (x64) FR-YT 05/12/23
    OS : Windows 11.0

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 51
    Points : 19
    Points
    19
    Par défaut
    Bonjour et merci pour ta réponse, par contre, avec ta macro, je ne suis pas certain que cela me permette de mettre à jour uniquement une plage de cellule (ou un seul onglet) mais tout le classeur entier et c'est surtout cela que je ne souhaite pas.
    Ta macro ne met à jour qu'un seul onglet sur lequel on applique la macro ?

  4. #4
    Membre éprouvé
    Homme Profil pro
    utilisateur
    Inscrit en
    Janvier 2017
    Messages
    669
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : utilisateur
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2017
    Messages : 669
    Points : 1 109
    Points
    1 109
    Par défaut
    Ta macro ne met à jour qu'un seul onglet sur lequel on applique la macro ?
    Non, le calcul est bloqué pour le classeur entier, ce qui permet de mettre à jour tous les onglets avant de faire reprendre le calcul de l'intégralité du classeur. Vous pourrez sans doute saucissonner la macro pour mettre telle ou telle partie du classeur à jour et de proche en proche finir par avoir fait tous les calculs "séparément" et aboutir au même résultat.

    Si vous ne changez que quelques valeurs dans un onglet quelconque, le recalcul se fait évidemment sur les valeurs modifiées, mais la cohérence du classeur entier est vérifiée.
    LibreOffice 7.5.9.2.M1 (x64) FR-YT 05/12/23
    OS : Windows 11.0

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 51
    Points : 19
    Points
    19
    Par défaut
    Merci pour cette réponse mais je ne vois pas vraiment l’intérêt de cette macro par rapport à décocher l'option "recalculer automatiquement" et faire F9 quand bon me semble.
    C'est vraiment faire un recalcul que sur un seul onglet qui m’intéresse.

  6. #6
    Membre éprouvé
    Homme Profil pro
    utilisateur
    Inscrit en
    Janvier 2017
    Messages
    669
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : utilisateur
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2017
    Messages : 669
    Points : 1 109
    Points
    1 109
    Par défaut
    Je ne peux pas vous comprendre

    En effet, j'ai plein de formules réparties sur plusieurs onglets et le calcul automatique prend beaucoup de temps.
    je ne vois pas vraiment l’intérêt de cette macro par rapport à décocher l'option "recalculer automatiquement" et faire F9 quand bon me semble.
    Vous le verrez dès que vous en aurez assez de faire F9 quand bon vous semble et que vous utiliserez cette macro ou une autre qui vous sera proposée à bon escient.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     thisComponent.calculateAll
                thisComponent.enableAutomaticCalculation(false)
                thisComponent.store
    Après avoir tout recalculé, le recalcul est désactivé, et le document est enregistré, sans autre intervention de l'utilisateur, vous ètes prêt pour injecter de nouvelles données et évaluer les nouveaux résultats, par un clic droit...et ok

    N'oubliez pas de partager la solution que vous retiendrez, on pourrait s'en servir également

    Merci
    LibreOffice 7.5.9.2.M1 (x64) FR-YT 05/12/23
    OS : Windows 11.0

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

Discussions similaires

  1. [XL-2007] Création macro calculs de sous-totaux
    Par jchen dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 13/06/2012, 16h37
  2. [OpenOffice][Tableur] recherche une formule de calcul sous calc
    Par adunakor dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 18/07/2011, 11h29
  3. [OpenOffice][Tableur] macro ouverture sous calc
    Par taztahiti dans le forum OpenOffice & LibreOffice
    Réponses: 8
    Dernier message: 28/02/2010, 08h06
  4. [OpenOffice][Tableur] [calc] macro "enregistrer sous"
    Par chegerg dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 24/03/2009, 06h00
  5. calcul sous delphi
    Par djedje-08 dans le forum Langage
    Réponses: 5
    Dernier message: 08/02/2003, 17h39

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