Maintenir les valeurs des cellules

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 !

alvarogil

XLDnaute Nouveau
Bonjour,

Je suis en train de créer un fichier Excel où je veux savoir le nombre total de certaines pièces que j´obtiendrai a la fin du comptage au fur et à mesure que je les enleve ou que je les introduis dans une boite.
Donc, dans la premiere colonne (A) j´ai introduis la quantité inicial; deuxieme colonne: quantité que j´ai enlevé (B); troisieme colonne: quantité de pièces que j´ai introduis(C); et derniere colonne (D): quantité total de pièces.

par exemple pour la première ligne on a: A1+B1-C1 pour obtenir D1.

Je voudrais savoir comment faire pour remettrent les colonnes B et C a zero sans pour cela modifier la colonne D juste après avoir trouvé la quantité totale.
Merci d´avance.
 
Re : Maintenir les valeurs des cellules

Bonjour alvarogil, bienvenue sur XLD, Salut Banzai64,

Pas du tout certain d'avoir bien saisi...

deuxieme colonne: quantité que j´ai enlevé (B); troisieme colonne: quantité de pièces que j´ai introduis(C)

Ce ne serait pas l'inverse si l'on calcule A1+B1-C1 ??

Voyez ce fichier et la macro dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If [D1] = "" Then [D1] = [A1]
If Intersect(Target, [B1:C1]) Is Nothing Or [B1] = "" And [C1] = "" Then Exit Sub
[D1] = [D1] + [B1] - [C1]
[B1:C1] = ""
End Sub

A+
 

Pièces jointes

Dernière édition:
Re : Maintenir les valeurs des cellules

Re,

En fait je comprends qu'il y a beaucoup de valeurs en colonne A, alors voyez le fichier (2).

La macro (voisine de la 1ère) :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lig As Long
lig = Target.Row
If lig = 1 Or lig > [A65536].End(xlUp).Row  Or Target.Count > 1 Then Exit Sub
If Cells(lig, 4) = "" Then Cells(lig, 4) = Cells(lig, 1)
If Intersect(Target, Cells(lig, 2).Resize(, 2)) Is Nothing Then Exit Sub
Cells(lig, 4) = Cells(lig, 4) + Cells(lig, 2) - Cells(lig, 3)
Cells(lig, 2).Resize(, 2) = ""
End Sub

Edit : si l'on veut réinitialiser une ligne, effacer toute la ligne.

A+
 

Pièces jointes

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
3
Affichages
506
Réponses
3
Affichages
498
Réponses
10
Affichages
687
Retour