• Initiateur de la discussion Initiateur de la discussion Manu13
  • 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 !

Manu13

XLDnaute Occasionnel
Bonjour le forum,

j'ai un tableau avec 4 colonnes A,B,C,D
dans A des produits
dans B le nb de fois que le produit a été vendu
dans C le C.A. total
dans D le C.A. du jour

donc mon désir était que, lorsque je rentre un chiffre dans la colonne D sur la ligne du produit concerné cela s'additionne au C.A. total du produit et ajoute +1 dans la colonne B toujours pour le produit concerné
Je suis donc passé par l'éditeur VBA et j'ai rentré ceci:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("d:d")) Is Nothing Then
Cancel = True
Range("c2").Value = Range("c2").Value + Range("d2").Value
Range("b2").Value = Range("b2").Value + 1

Range("e2").Value = Date

End If

End Sub

et là problème, quelques soit la ligne de la colonne D, si je mets un chiffre, cela ajoute 1 à la cellule B2, alors qu'il devrait rien se passer.
et surtout comment réaliser ce code de calcul automatique sur une trentaine de ligne.

Merci par avance pour réponse et le temps consacré à la lecture

à bientôt
manu
 
Re : Calcul dans tableau

Bonjour,
essaie avec ce code :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("d:d")) Is Nothing Then
Cells(Target.Row, 3) = Cells(Target.Row, 3) + Cells(Target.Row, 4)
Cells(Target.Row, 2) = Cells(Target.Row, 2) + 1
Cells(Target.Row, 5) = Date
End If
End Sub
 
Re : Calcul dans tableau

Bonjour,

Le code fait ce que tu lui demandes...
Si j'ai bien compris faire cette modif ...
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("d:d")) Is Nothing Then
Cancel = True
Target.Offset(0, -1).Value = Target.Offset(0, -1).Value + Target.Value
Target.Offset(0, -2).Value = Target.Offset(0, -2).Value + 1
Target.Offset(0, 1).Value = Date
End If
End Sub
La prochaine fois met un fichier avec avant-après...

et le cancel ne me parait pas utile.

Cordialement

Edit : Pas rafraichi et je me fais doubler pas par 1 mais par 2 bh...
 
Dernière édition:
- 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
127
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
396
Réponses
4
Affichages
186
Réponses
18
Affichages
282
Réponses
8
Affichages
217
Réponses
2
Affichages
96
Retour