Bouton/macro pour additionner une cellule

Résolu
Bonjour,

Je recherche une manip pour créer une macro avec un bouton, qui permette d'additionner une cellule avec une autre, si possible sans toucher à l'itération et sans passer par VBA.

En gros, imaginons A1=1 et A2=1.

J'aimerais que quand je clique sur le bouton, la cellule A1 devienne 2 et A2 devienne 0.

Est-ce possible avec l'enregistrement d'une macro simple ?

Merci beaucoup =)

Windows7
Excel 2007

5 réponses

  1. Bonjour

    Enregistrer une macro c'est déjà passer par du VBA !
    Et associer le code au bouton aussi

    Mais pour ce que tu veux faire pas possible en enregistrant une macro

    Il faut créer le bouton (Onglet Developpeur Inserer Controle Active X et l'icone bouton)

    Double clic sur le bouton, l'éditeur VBA s'ouvre

    Entre les lignes :
    Private Sub CommandButton1_Click()

    End Sub

    mettre le code suivant :
    Range("A1")=range("A1")+range("A2") : range("A2")=0

    Cdlmnt
    3
    1. Contributeur
      Bonjour à tous,

      Autre proposition.
      Sélectionne toutes tes cellules recevant une addition et nomme la plage pl_add.
      Et met ce code sur ton bouton :
      Sub add()
          Dim c As Range
          For Each c In [pl_add]
              c = c + c.Offset(, 1)
              c.Offset(, 1) = ""
          Next c
      End Sub


      eric
      1
      1. Il ne se passe rien, mais il est possible que je n'ai pas bien fait la manip'...
        Je continue à fouiner 8)
        0
      2. En fait si, ça marche, et ça déchire. Faut que je bosse ça pour que ça gère sur toute ma page et voir si j'y arrive sans me planter, mais ça m'a l'air parfait.
        Merci encore à vous deux !
        0
      3. Contributeur
        Bonjour,

        ok, je met en résolu pour toi (en haut vers ton titre, pour la prochaine fois)
        eric
        0
    2. D'acc, il fallait que je tente le coup quand même ^^

      Je passerai donc par VBA.

      Je vais avoir beaucoup de cellules à additionner de cette façon, je vais devoir créer autant de lignes de code sur VBA ? Ou bien une formule magique me permettra de les regrouper (pour appliquer le même effet à plusieurs cellules, puis effacer le contenu de plusieurs cellules) ?

      Merci beaucoup en tout cas, via55 =)
      0
      1. Si tu veux appliquer pour plusieurs cellules ce n'est pas par un bouton qu'il faut passer mais par un double-clic sur la cellule dans laquelle doit s'additionner celle du dessous.

        Alt F11 pour ouvrir l'éditeur VBA
        puis tu copies cette macro et tu la colles dans la page blanche de l'éditeur
        elle s'appliquera à toute cellule de la plage dans laquelle tu double-cliqueras

        Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        li = Target.Row
        col = Target.Column
        Target.Value = Target.Value + Cells(li + 1, col): Cells(li + 1, col) = 0
        End Sub
        0
      2. Okay, je vais étudier ces deux possibilités en potassant VBA.

        L'idée, c'était de gagner du temps en remplissant plusieurs endroits de ma page, voir plusieurs pages différentes en cliquant sur un seul bouton. Double cliquer sur toutes les cellules à modifier, c'est moins glop.

        Mais merci encore via55, je vais fouiner dans cette direction !
        0
      3. Oui mais comment avec un seul bouton qu'Excel puisse savoir quelles cellules traiter ?
        Ou alors si ta feuille est constituée de telle manière qu'une cellule sur 2 est à traiter ( A1 +A2, puis A3 + A4, 15+A6 etc) on peut envisager une macro qui boucle sur toute la colonne et additionne une cellule sur deux et qui là serait commandée par un bouton

        Si c'est le cas je t'indiquerai la macro pour le faire.

        Cdlmnt
        0
      4. Alors là, tu me poses une colle.
        Je pensais qu'une macro affectait les cellules qu'on lui disait d'affecter. Quand j'enregistre une macro, je clique sur A1, puis sur G8 etc... Et par la suite, en cliquant sur le bouton lié à cette macro, ça modifiera les cellules A1, G8 etc. Enfin, je pensais faire un truc dans ce genre.
        Les cellules ne changeront pas.

        En fait il y aura par exemple 50 cellules réparties sur toute la page, qui devront se voir additionner la cellule à leur droite, qui elle devra être vidée.
        L'idée c'est de verrouiller tout le document pour qu'une personne à qui j'envoie le fichier excel ne puisse avoir accès qu'aux cellules qui serviront de base à l'addition (et donc à droite des cellules cibles, dans mon exemple B1 et H8). Ensuite, un bouton devra me permettre d'ordonner à toutes les cellules cibles (A1, G8...) d'être augmenté de la valeur situé dans la cellule à leur droite (B1, H8...) et de vider ces dernières.

        Concrètement, voilà ce à quoi je tend :)

        Je ne pense pas être clair, mais si ce n'est pas le cas c'est pas grave, tu m'as déjà bien orienté !
        0
    3. Oops, question à la c*n :

      quelle propriété changer pour que ça ne soit pas la cellule directement à droite, mais celle encore à droite ? Donc C1 et I8 ?
      0
      1. Ok, trouvé, je ne vous embête plus, vous êtes géniaux :)
        0