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 :

LibreOffice CALC - Macro modifiant la formule d'une cellule


Sujet :

OpenOffice & LibreOffice

  1. #1
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 132
    Points : 59
    Points
    59
    Par défaut LibreOffice CALC - Macro modifiant la formule d'une cellule
    Bonjour,

    J'ai besoin d'aide pour l'écriture d'une macro. Je suis en train de créer un fichier qui recense des données et je dois calculer en dernière ligne de tableau la moyenne.
    Il y a un bouton qui insère une ligne (la ligne 4) et macro déjà écrite, mais lorsque j'insère la ligne la formule se trouvant à la dernière ligne (ligne noir) ne se met pas à jour.
    Le tableau de base est :
    - Ligne 3 en tête
    - Ligne 4 entrée des données
    - Ligne 5 la moyenne
    La formule de base pour M5 par exemple est la suivante : =SOMME(M4:M4)/NBVAL(M4:M4).

    Lorsque j'insère une ligne, le tableau devient :
    - Ligne 3 en tête
    - Ligne 4 entrée des données
    - Ligne 5 entrée des données
    - Ligne 6 la moyenne
    La formule devient alors : =SOMME(M5:M5)/NBVAL(M5:M5).

    Alors que j'aimerai : =SOMME(M4:M5)/NBVAL(M4:M5).

    Et ainsi de suite à chaque nouvelle ligne créée.

    La ligne 4 ne changera jamais, c'est toujours la première ligne d'entrée des données mais la dernière change à chaque fois que je crée une nouvelle ligne ...

    Que faire ?

    Je vous joint le fichier.
    Merci d'avance
    Fichiers attachés Fichiers attachés

  2. #2
    Membre habitué
    Homme Profil pro
    Maitre d'Oeuvre, topographe en pré-retraite
    Inscrit en
    Juin 2016
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Maitre d'Oeuvre, topographe en pré-retraite
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juin 2016
    Messages : 83
    Points : 134
    Points
    134
    Par défaut
    Bjour,

    référence relative et absolue !
    ajouter donc un petit "$" aux références qui doivent rester fixes

    la formule de base devrait être =SOMME(M$4:M4)/NBVAL(M$4:M4) ou encore mieux =moyenne(M$4:M4)

  3. #3
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 132
    Points : 59
    Points
    59
    Par défaut
    Ok merci, mais où est ce que je l'ajoute ? Dans la macro ? Si oui comment ? Sinon dans la cellule directement ? Si oui, j'ai essayé mais rien ne change.

  4. #4
    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 LibreOffice CALC - Macro modifiant la formule d'une cellule
    Bonjour,

    Pour bien comprendre ton, problème :

    -Si tu ajoute une ligne, la ligne 6 (moyenne) devient : =SOMME(M5:M5)/NBVAL(M5:M5). C'est que je constate sur ton fichier exemple.

    Alors que tu aimerai : =SOMME(M4:M5)/NBVAL(M4:M5).

    Et si tu ajoute une deuxième ligne que deviendrait alors la formule de la ligne moyenne ?

    Car je suppose que si tu as mis un bouton c'est que l'ajout des lignes peut se faire autant de fois que nécessaires ?
    Dans ce cas on pourrait modifier la formule par macro, mais j'ai besoin d'être sûr.

    Cordialement
    Libre Office Version: 7.4.3.2 (x64)
    Windows 10

  5. #5
    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
    Bonjour,

    Une solution simple :
    - Toujours avoir au moins 2 lignes de données dont la dernière est vierge (et éventuellement masquée)
    - Utiliser la formule de Mobydick =SOMME(M$4:M5)/NBVAL(M$4:M5).
    - Insérer les nouvelles lignes avant la dernière ligne de données (vierge)
    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

  6. #6
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 132
    Points : 59
    Points
    59
    Par défaut
    C'est tout à fait ça !!

    Si je rajoute encore une ligne ça donne : =SOMME(M6:M6)/NBVAL(M6:M6) et la ligne 7 est la ligne moyenne


    Citation Envoyé par Mobydick_62 Voir le message
    Bonjour,

    Pour bien comprendre ton, problème :

    -Si tu ajoute une ligne, la ligne 6 (moyenne) devient : =SOMME(M5:M5)/NBVAL(M5:M5). C'est que je constate sur ton fichier exemple.

    Alors que tu aimerai : =SOMME(M4:M5)/NBVAL(M4:M5).

    Et si tu ajoute une deuxième ligne que deviendrait alors la formule de la ligne moyenne ?

    Car je suppose que si tu as mis un bouton c'est que l'ajout des lignes peut se faire autant de fois que nécessaires ?
    Dans ce cas on pourrait modifier la formule par macro, mais j'ai besoin d'être sûr.

    Cordialement

  7. #7
    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 LibreOffice CALC - Macro modifiant la formule d'une cellule
    Bonjour,

    Désolé, mais du mal à comprendre la logique des formules :

    Si insertion d'une première ligne :
    La ligne moyenne est en 6 et la formule doit être : =SOMME(M4:M5)/NBVAL(M4:M5)

    Si insertion d'une deuxième ligne:
    La ligne moyenne passe en 7 et la formule que tu veux c'est : =SOMME(M6:M6)/NBVAL(M6:M6) ?....Moi je m’attendais à =SOMME(M5:M6)/NBVAL(M5:M6)

    Si insertion d'une troisième ligne:
    La ligne moyenne passe en 8 et la formule devrait être quoi alors ?

    Cordialement
    Libre Office Version: 7.4.3.2 (x64)
    Windows 10

  8. #8
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 132
    Points : 59
    Points
    59
    Par défaut
    Ah, on ne s'est pas bien compris.

    Moi je veux que la formule finale soit : =SOMME(M4:Mx)/NBVAL(M4:Mx), x étant l'avant dernière ligne soit la ligne moyenne - 1.


    Citation Envoyé par Mobydick_62 Voir le message
    Bonjour,

    Désolé, mais du mal à comprendre la logique des formules :

    Si insertion d'une première ligne :
    La ligne moyenne est en 6 et la formule doit être : =SOMME(M4:M5)/NBVAL(M4:M5)

    Si insertion d'une deuxième ligne:
    La ligne moyenne passe en 7 et la formule que tu veux c'est : =SOMME(M6:M6)/NBVAL(M6:M6) ?....Moi je m’attendais à =SOMME(M5:M6)/NBVAL(M5:M6)

    Si insertion d'une troisième ligne:
    La ligne moyenne passe en 8 et la formule devrait être quoi alors ?

    Cordialement

  9. #9
    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 LibreOffice CALC - Macro modifiant la formule d'une cellule
    Ah OK j'avais pas trop compris

    Donc on peut donc faire facilement par macro. Je te fais çà dans la soirée.
    Par ailleurs quand tu insère une nouvelle ligne tu poses tes formules (c'est parfait) mais j'ai remarqué que les formats des cellules (celles en euros) ne sont pas conservées.
    Je vais voir çà aussi.

    Cordialement
    Libre Office Version: 7.4.3.2 (x64)
    Windows 10

  10. #10
    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 LibreOffice CALC - Macro modifiant la formule d'une cellule
    Re

    En pièce jointe le fichier modifié.
    A tester

    CordialementTableau Camille-Modifié.ods
    Libre Office Version: 7.4.3.2 (x64)
    Windows 10

  11. #11
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 132
    Points : 59
    Points
    59
    Par défaut
    Super merci beaucoup !! Les formules fonctionnent c'est top !!

    Par contre, les cellules en format monétaires sont au format %. Quand je mets 10000 en M4 ca met met : 10000,00% ...

    Pour les cellules au format % nickel merci bien.



    Citation Envoyé par Mobydick_62 Voir le message
    Re

    En pièce jointe le fichier modifié.
    A tester

    CordialementTableau Camille-Modifié.ods

  12. #12
    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 LibreOffice CALC - Macro modifiant la formule d'une cellule
    Bonsoir.
    Chez moi çà fonctionne nickel. Mais je sais qu'en fonction des versions ou des postes çà peut changer.

    A la place des lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oFeuille.getCellRangeByName("M4").numberformat = 108
    Essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oFeuille.getCellRangeByName("M4").numberformat = 106
    Et dis moi. Sinon on pourra trouver une autre solution pour les formats

    Cordialement
    Libre Office Version: 7.4.3.2 (x64)
    Windows 10

  13. #13
    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 LibreOffice CALC - Macro modifiant la formule d'une cellule
    Bonjour

    La nuit portant conseil....... j'ai trouvé mieux.

    Comme les cellules de la ligne 4 contiennent de nombreuses propriétés (dates, euros, pourcentage, couleurs) il est donc préférable d'utiliser le dispatcher pour tout d'abord copier la ligne 4
    Donc la ligne 4 est copié dans le presse papier même si elle contient déjà des données.
    Ensuite insertion de la nouvelle ligne et collage. Ainsi la nouvelle ligne insérée est complétement vierge et identique. Plus besoin par macro de réinsérer des formules et autre formatage....
    En pièce jointe le nouveau fichier.
    Cordialement

    Tableau Camille-Modifié.ods
    Libre Office Version: 7.4.3.2 (x64)
    Windows 10

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/09/2020, 08h31
  2. Modifier la formule d'une cellule via VBA
    Par ArtistePeintredu44 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/07/2018, 22h15
  3. [Macro Excel] Fonction qui calcule une formule dans une cellule
    Par Enthau dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/07/2008, 17h31
  4. [Formule]Macro pour masquer des formules dans une cellule
    Par Hellx dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/04/2007, 09h21
  5. [VBA] Macro qui envoie une formule dans une cellule
    Par Okoss dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/04/2007, 23h32

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