Formule hyper complexe a trouver!! aidez-moi!

dcfan_f1 -  
 dcfan_f1 -
Bonjour à tous,
J'aurais besoin de votre aide pour trouver une façon de faire dans excel.

Je comptabilise des données et j'aimerais optimiser ma feuille de calcul. Si, par exemple, je compte un nombre de billets dans la case A1, que le chiffre de cette case est 35 et que j'aimerais y ajouter deux billets, au lieu d'effacer la case et d'y inscrire 37 ( le nouveau total ), j'aimerais pouvoir inscrire "2" dans la case A2 et que le chiffre dans A1 change pour le nouveau total. Du même coup, que la case A2 redevienne vide pour que je puisse y inscrire un nouveau nombre à ajouter, est-ce possible?

Car en ce moment, pour certaine case, je suis rendu à 2357 et + et que de changer le chiffre manuellement peu amener plus facilement des erreurs. De plus, une erreur d'addition, même si elle peut sembler très facile, peut arriver.

De plus, y aurait-t-il une formuel pour mettre en surbrillance une case précise, si une autre se situe entre deux valeurs?
Par exemple, si A3 se situe entre 100 et 119, j'aimerais que A5 soit ensurbrillance. Si A3 se situe entre 120 et 139, c'est A6 qui devrait être en surbrillance au lieu de A5, et ainsi de suite.
Merci pour votre aide!!!

2 réponses

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Salut,

    C'est possible mais en VBA si tu as quelques notions

    clic droit sur l'onglet de feuille concernée/Visualiser le code
    et colle ce code

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("A2")) Is Nothing Then
    Range("A1") = Range("A1") + Range("A2")
    Range("A2").Clear
    End If
    End Sub

    on peut l'écrire plus technique

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, [A2]) Is Nothing Then
    [A1] = [A1] + [A2]
    [A2].Clear
    End If
    End Sub

    ou

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("A2")) Is Nothing Then
    Cells(1, 1) = Cells(1, 1) + Cells(2, 1)
    Cells(2, 1).Clear
    End If
    End Sub

    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    1
    1. dcfan_f1
       
      C'est super, ca marche, mais le seul hic, c'est que ma feuille excel plante à chaque fois! Je n'ai aucune connaissance dans virtual basic, est-ce que je fais une manip tout croche? Est-ce qu'il faut arreter la macro à chaque fois? Parce que je ne peux plus rien inscrire une fois que j'ai utilisé la macro
      0
    2. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   957
       
      Salut le forum

      Modifie le code ainsi

      Private Sub Worksheet_Change(ByVal Target As Range) 
      If Not Application.Intersect(Target, Range("A2")) Is Nothing Then 
      Application.EnableEvents = False 
      Range("A1") = Range("A1") + Range("A2") 
      Range("A2").Clear 
      End If 
      Application.EnableEvents = True 
      End Sub 
      

      Mytå
      0
  2. dcfan_f1
     
    WOW SUPER! Ca l'a marché avec la modif de myta!!

    Merci a tous!! vous etes génial
    0