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

XL 2016 Soustraction par ordre

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

Solution
Bonjour le fil, bonjour le forum,

Ooops j'ai l'impression d'être complètement à coté de la plaque. Tant pis, j'envoie quand même ma proposition VBA :

VB:
Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim PL As Range 'déclare la variable PL (PLage)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim I As Integer 'déclare la variable I (Incrément)
Dim TL(1 To 7) 'déclare la variable TL (Tableau des Lignes)

Set O = Worksheets("Feuil1") 'définit l'onglet O
Set PL = O.Range("A1").CurrentRegion 'définit la plage PL
DL = PL.Rows.Count 'définit la dernière ligne éditée de la plage PL
For I = 2 To DL 'boucle des ligne 2 à DL
    TL(1) = Application.WorksheetFunction.Large(PL.Rows(I), 1) 'définit la...
Bonjour Rabeto,
Pourquoi pas tout simplement :
VB:
=GRANDE.VALEUR($A2:$G2;1)-
GRANDE.VALEUR($A2:$G2;2)-
GRANDE.VALEUR($A2:$G2;3)-
GRANDE.VALEUR($A2:$G2;4)-
GRANDE.VALEUR($A2:$G2;5)-
GRANDE.VALEUR($A2:$G2;6)-
GRANDE.VALEUR($A2:$G2;7)
Ou encore plus simple :
VB:
=2*MAX(A2:G2)-SOMME(A2:G2)
 

Pièces jointes

Bonjour le fil, bonjour le forum,

Ooops j'ai l'impression d'être complètement à coté de la plaque. Tant pis, j'envoie quand même ma proposition VBA :

VB:
Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim PL As Range 'déclare la variable PL (PLage)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim I As Integer 'déclare la variable I (Incrément)
Dim TL(1 To 7) 'déclare la variable TL (Tableau des Lignes)

Set O = Worksheets("Feuil1") 'définit l'onglet O
Set PL = O.Range("A1").CurrentRegion 'définit la plage PL
DL = PL.Rows.Count 'définit la dernière ligne éditée de la plage PL
For I = 2 To DL 'boucle des ligne 2 à DL
    TL(1) = Application.WorksheetFunction.Large(PL.Rows(I), 1) 'définit la première plus grande valeur de la ligne de la boucle
    TL(2) = Application.WorksheetFunction.Large(PL.Rows(I), 2) 'définit la seconde plus grande valeur de la ligne de la boucle
    TL(3) = Application.WorksheetFunction.Large(PL.Rows(I), 3) 'définit la troisième plus grande valeur de la ligne de la boucle
    TL(4) = Application.WorksheetFunction.Large(PL.Rows(I), 4) 'définit la quatriemme plus grande valeur de la ligne de la boucle
    TL(5) = Application.WorksheetFunction.Large(PL.Rows(I), 5) 'définit la cinquième plus grande valeur de la ligne de la boucle
    TL(6) = Application.WorksheetFunction.Large(PL.Rows(I), 6) 'définit la sixième plus grande valeur de la ligne de la boucle
    TL(7) = Application.WorksheetFunction.Large(PL.Rows(I), 7) 'définit la septième plus grande valeur de la ligne de la boucle
    'renvoie dans la cellule ligne I colonne "I" la valeur de la soustraction
    O.Cells(I, "I").Value = TL(1) - TL(2) - TL(3) - TL(4) - TL(5) - TL(6) - TL(7)
Next I 'prochaine ligne de la boucle
End Sub

Les calculs sont fait avec les valeurs réelles, pas les arrondis affichés...
 
Bonjour @Rabeto
Une petite question :
Faut-il faire une simple soustraction des valeurs (ton exemple ligne 2 donne alors -138% ->137,04% sans les arrondis)
Dans ce cas le formule est
Code:
{=GRANDE.VALEUR(A2:G2;1)-SOMME(SIERREUR(GRANDE.VALEUR(A2:G2;COLONNE(A:G)-COLONNE(A2)+2);0))}

Pour des valeurs contenues en A2:G2, formule matricielle à valider par CTRL+MAJ+ENTREE

Je ne comprends pas bien ce que tu entends par l'inverse dans la colonne d'à coté.
Voir le fichier joint.

Cordialement
Alain
 

Pièces jointes

Dernière édition:
Bonjour @sylvanu

Je me suis embarqué dans une formule alambiquée mais pourquoi faire compliqué quand on peut faire si simple, bravo !

">> Ou encore plus simple :
=2*MAX(A2:G2)-SOMME(A2:G2) <<"

Alain
 
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
0
Affichages
72
Réponses
4
Affichages
133
Réponses
15
Affichages
258
Réponses
4
Affichages
154
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…