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

  • Initiateur de la discussion Initiateur de la discussion camiche
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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

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
 
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
149
  • Résolu(e)
Microsoft 365 DATEDIF
Réponses
11
Affichages
239
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…