incrémenter une valeur dans une cellule

camiche

XLDnaute Junior
Bonsoir à toutes et à tous
Je fais parti d'une association et paie une participation à la séance de 2 euros
sur la semaine , je peux y aller 3 fois ce qui me fait 3*2=6euros
J'ai établi un calendrier avec les semaines (s1-s2_s3.......s28)
je cherche une formule ( ci cela existe) qui me permette d'additionner la valeur 2 dans la même cellule
exemple pour la s1, si j'ai une participation je tape la valeur 2, pas de problème
pour la s2 j'ai 2 participations je voudrai taper dans la cellule la valeur 2 pour la 1ère participation puis pour la 2ème participation retaper la valeur 2 et incrémenter cette valeur de façon à obtenir 4
la même chose si j'ai 3 participation , je tape 3 fois la valeur 2 dans la même cellule et j'obtiens 6
est-ce possible ou suis-je tordu dans mon raisonnement?
je sais que vous allez me répondre qu'il serai plus facile de taper 4 ou 6
Mais je suis admiratif quand je vois avec quelle facilité vous arrivez à résoudre tous le problème
Merci
Camiche
 

camiche

XLDnaute Junior
Bonjour Calvus
désolé d'avoir tardé à répondre mais j'ai eu des problèmes de connections
voici le fichier joint
j'espère être clair dans ma demande
au plaisir de te lire
Camiche
 

Pièces jointes

  • porcelaine2_budget.xlsx
    14.1 KB · Affichages: 31

job75

XLDnaute Barbatruc
Bonsoir camiche, Calvus,

Voyez le fichier joint et ces macros évènementielles dans le code de la feuille :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ListBox1.Visible = False
End Sub

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
With ActiveCell
  If .Row = 1 Or .Column < 8 Or Cells(.Row, 1) = "" Or Cells(1, .Column) = "" Then Exit Sub
  Cancel = True
  ListBox1.Top = .Top
  ListBox1.Left = .Offset(, 1).Left
End With
ListBox1.ListIndex = -1
ListBox1.Visible = True
End Sub

Private Sub ListBox1_Change()
Dim montant#, L%
montant = 2 'modifiable
L = ListBox1.ListIndex
If L = -1 Then Exit Sub
ActiveCell = ActiveCell + IIf(L = 0, montant, IIf(L = 1, -montant, 0))
If ActiveCell < montant Then ActiveCell = ""
ListBox1.Visible = False
End Sub
A+
 

Pièces jointes

  • porcelaine2_budget(1).xlsm
    31.2 KB · Affichages: 30

job75

XLDnaute Barbatruc
Bonjour camiche, Calvus, le forum,

Une variante, meilleure à mon avis, avec ce fichier (2) :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ListBox1.Visible = False
End Sub

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
With ActiveCell
  If .Row = 1 Or .Column < 8 Or Cells(.Row, 1) = "" Or Cells(1, .Column) = "" Then Exit Sub
End With
Cancel = True
Afficher
End Sub

Private Sub ListBox1_Change()
Dim montant#, L%
montant = 2 'modifiable
L = ListBox1.ListIndex
If L = -1 Then Exit Sub
ActiveCell = ActiveCell + IIf(L = 0, montant, IIf(L = 1, -montant, 0))
If ActiveCell < montant Then ActiveCell = ""
If L = 2 Then ListBox1.Visible = False: ActiveCell.Activate Else Application.OnTime 1, Me.CodeName & ".Afficher"
End Sub

Private Sub Afficher()
With ListBox1
  .Top = ActiveCell.Top
  .Left = ActiveCell(1, 2).Left
  .ListIndex = -1
  .Visible = True
End With
End Sub
A+
 

Pièces jointes

  • porcelaine2_budget(2).xlsm
    33.1 KB · Affichages: 36

Discussions similaires

Statistiques des forums

Discussions
312 195
Messages
2 086 078
Membres
103 111
dernier inscrit
Eric68350