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 !

M.D

XLDnaute Occasionnel

Bonsoir à tous

Je rencontre actuellement des difficultés à modifier une formule dans mon tableur, malgré plusieurs tentatives infructueuses. Face à cette situation, je sollicite votre expertise afin de m’aider à trouver une solution adaptée.
Mon objectif est de savoir s’il existe une macro permettant de calculer automatiquement le sous-total sur une ligne spécifique, immédiatement après la suppression de cette même ligne.
Plus précisément, une fois que la ligne allant de B11 à D11 a été entièrement effacée, j’aimerais pouvoir utiliser une macro afin d’effectuer le calcul suivant : multiplier la valeur de la cellule C11 par celle de la cellule D11.

Pour illustrer plus concrètement ma demande, je joins un fichier cobaye en annexe.
Je vous remercie par avance pour l’aide que vous pourrez m’apporter.
M.D
 

Pièces jointes

bonsoir à toutes & à tous, bonsoir @M.D
Le calcul immédiatement après la suppression (plutôt l'effacement) de la ligne donnera pour cette ligne 0 !
Il faudrait utiliser une macro qui d'abord fait le calcul puis efface les données, non ?
Ai-je bien compris ton besoin ?
EDIT : faut-il noter le sous total en colonne E?
À tout de suite
 
Re
Avec ce que j'ai cru comprendre et un clic droit dans une des cellules concernées ...
Ce que je ne comprends pas c'est pourquoi effacer les cellules qui donnent le résultat !!!
Macro dans Feuil1 :
VB:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
     Set Rg = Intersect(Target, [B11:D15])
     If Not Rg Is Nothing Then
          rép = MsgBox("Calculer sous-total et effacer ?", vbYesNo)
          If rép = vbYes Then
               For Each R In Rg.Rows
                    st = WorksheetFunction.Product(Intersect(R.EntireRow, [B11:D15]))
                    Intersect(R.EntireRow, [E11:E15]) = st
                    Intersect(R.EntireRow, [B11:D15]).ClearContents
               Next
               Cancel = True
          End If
     End If
End Sub
À bientôt

EDIT : PS je n'ai pas cherché la rapidité de l'exécution ...
 

Pièces jointes

Bonsoir A[B]tTheOne[/B]

Je tiens tout d'abord à vous remercier pour votre aide précieuse. Votre réponse correspond parfaitement à mes attentes. Cependant, je me rends compte que je n'ai pas correctement formulé mon souhait initial. En effet, il s'agissait pour moi d'effacer les données issues d'un précédent calcul, puis de réaliser le calcul des articles que je viens de décrire, en tenant compte de la quantité et du prix unitaire.

M.D
 
- 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

Retour