Additionner la valeur d'une cellule à une autre

Bonjour

Voici une nouvelle question envoyée à l'aide du formulaire de demande d'aide (http://fr.libreoffice.org/get-help/poser-une-question/).
Si vous répondez, merci de penser à utiliser la fonction "répondre à tous" de votre logiciel de courrier électronique de façon que le demandeur reçoive une copie de votre réponse.

Email:: 97jimenezkevin@gmail.com
Sujet:: Additionner la valeur d'une cellule à une autre
OS:: Windows 10
Version:: 6.0.x
Question:: Bonjour,

Je voudrais additionner la valeur numérique de la cellule A2 à la valeur numérique entrée manuellement dans la cellule B2. Une fois effectuer je voudrais que la case B2 soit de nouveau vide.
La cellule A2 doit alors s'incrémenter à chaque fois que je rentre une valeur dans la cellule B2.

Bonjour

De base, mais j'ai l'impression que ce n'est pas ça que tu cherches
=Si(b2="";a2;a2+b2)
Si tu veux le faire en a2, il y a une fonction qui te permet de récupérer la valeur actuelle de la cellule -pour éviter le recursif. Elle a été citée récemment.

Si tu veux conserver le résultat précédent de a2+b2 pour l'ajouter=incrémenter, là soit tu prends une cellule intermédiaire soit il te faudra une macro pour stocker une variable (et matérialiser la boucle...)

Claire

Bonjour,

Il semble que votre question n'ait pas de sens. A quoi sert de saisir une valeur en B2, de l'additionner à A2, si c'est pour oublier le résultat sitôt après ? Pourquoi ne pas incrémenter directement A2 quand vous en avez besoin ?

Thierry

En faite mon tableau finir aura beaucoup de case que je veux incrémenter.
Je veux juste écrire le nombre que je veux rajouter dans une case sans
avoir à effacer ce qui est déjà inscrit puis écrire la nouvelle valeur.
C'est pour cela que je veux une sorte de case qui me sert juste pour écrire
une valeur et que le reste se fasse tout seul.

Bonjour,
Puisqu'il s'agit d'incrémenter une valeur dans une cellule définie, est-ce qu'un Compteur lié à cette cellule ne serait pas plus adapté ?

Jean-Michel PIERRE
Tél : 06.19.55.73.22

J'en ai parler à d'autre personne et ils m'ont conseillé d'utiliser une
macro.

[image: image.png]
En gros voilà ce que je voudrais.

Thierry,
J'ai dit B2 et A2 pour simplifier pour l'exemple. Mais au final les cases
ne seront pas cote à cote.

En fait, c'est votre terminologie qui pose problème. Dans une tête d'informaticien moyen, lorsqu'on incrémente une valeur ça veut dire par défaut qu'on lui ajoute 1. Il semble que vous souhaitiez en fait ajouter la nouvelle valeur (saisie dans B2 dans votre exemple) au contenu pré-existant de votre cellule de résultat (A2 dans votre exemple).

D'après le morceau de feuille de calcul, vous souhaitez procéder en trois pas : Saisie, puis vérification/validation/addition, puis effacement de la cellule de saisie.
Très clairement il vous faut une macro, en effet. Reste à bien réfléchir à votre approche, car si vous nous dites que vous voulez appliquer le même processus à un grand nombre de données, je vous vois mal écrire une macro par paire saisie-résultat.

Thierry

C'est tout à fait ça. Je veux rajouter le nombre écrit dans la case B2( de
l'exemple) à la valeur de la case A2 (de l'exemple) puis effacé la valeur
que je viens de rentrer dans la case B2 (de l'exemple).
Je suis en train de travailler sur une macro mais je n'y arrive pas du tout
je ne m'y connais pas assez.

Re-Bonjour

je n'ai pas vu l'image (elle ne passe pas dans les listes) mais vu ce
que décrit Thierry

=> pour modifier un contenu sans intervenir dessus directement ou par
formule, la macro apparait indispensable MAIS c'est probablement
beaucoup d'énergie pour quelque chose qui n'est pas si énorme.

=> si l'incrément est le même pour toutes les lignes Feuille / remplir
les cellules / séries (à voir si ça répond à ton besoin mais plus de
cellule intermédiaire à vider...)

=> si remplir ne convient pas : une feuille de calcul, une feuille
"d'affichage" basée sur les valeurs de la feuille d'origine mais qui ne
reprends pas la valeur ajoutée...

=> ou encore, collage spécial avec opération : copier la valeur en B2
(ou ailleurs), collage spécial sur la colonne A /collage
spécial/addition

Sur ces 2 dernières propositions, tu peux placer les choses que tu ne
veux pas afficher dans des colonnes/lignes/feuilles masquées au final.
Et si à chaque fois c'est le même incrément pour toutes les lignes, la
touche suppr c'est bien aussi ! :slight_smile:

=> la fonction dont je parlais ce matin est actuelle() elle permet de
travailler sur la valeur d'une cellule dans celle-ci, mais je ne pense
pas que ça convienne

et pour qu'on te fasse de vraies propositions, il nous faut un fichier
exemple, pas en pj de message, mais via framadrop par exemple...
https://framadrop.org/

Claire

Bonsoir,

Voici quelques lignes qui devraient vous servir de guide :
'———————————————— Début -----------------------------
' Hypothèses de départ :
' La feuille de calcul est située en première position dans le classeur (feuille No 0)
' La saisie se fait dans la cellule B2
' Le résultat est donné dans la cellule A2
' A faire : Placer un bouton où ça va bien, et lier ce bouton à cette macro pour qu'elle se déclenche lorsqu'on click dessus. Pour cela :
' - Insérer - Contrôles de formulaire - Bouton
' - Choisir l'emplacement, dessiner un bouton
'- Click droit sur le bouton pendant qu'il est sélectionné en mode conception, puis click sur Contrôle.
'- Dans Evènements, Exécuter action, chercher la macro que vous venez de saisir.
' Ensuite, saisir une valeur dans B2, cliquer sur le bouton...

Sub Main
  Dim oDoc As Object
  Dim valeur As Integer
  Dim resultat As Integer

  oDoc = thisComponent
  
' Récupération de la valeur entrée et de la valeur courante
  valeur = oDoc.Sheets(0).getCellRangeByName("B2").String
  resultat = oDoc.Sheets(0).getCellRangeByName("A2").String

' Calcul de la nouvelle valeur de A2
  resultat = resultat + valeur
  
' Mise en place de la nouvelle valeur dans A2
  oDoc.Sheets(0).getCellRangeByName("A2").value = resultat

' Mise de la cellule de saisie à 0
  oDoc.Sheets(0).getCellRangeByName("B2").value = 0
End Sub

————————————————— Fin ——————————————————————

Mettez-les telles quelles dans le Module1 du document que vous voulez traiter. Ce n'est qu'un exemple.

Thierry

Écoute,

Pour la touche clavier, je te laisse voir. Tu vas dans l'administration des
macros et tu regardes "assignation", sauf erreur.

Par contre, bien sûr, tu peux la multiplier. Mais normalement c'est pas
fait pour ça. Tu ferais mieux d'écrire une boucle qui parcourt les cellules
de la colonne de saisie et qui cherche les valeurs différentes de 0, pour
faire l'addition quand elle en trouve.

Si vraiment tu butes, fais moi signe. Note que tu peux faire un truc comme :

Dim ligne as integer
ligne = 2
valeur = oDoc.Sheets(0).getCellRangeByName("B" & ligne).String

Thierry

Fais gaffe au type de données, je n'ai fait aucune vérification. Et si veux
additionner blah avec 2, ça va mal se passer...