Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

camiche

XLDnaute Junior
Bonsoir Calvus
depuis des années je lis ce forum
J'apprends énormément
je suis stupéfait par les prouesses que vous faites
Chapeau bas Mesdames et Messieurs vous êtes formidables
Merci Calvus c'est ce que je voulais
Camiche
 

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…