Petit problème très facile pour vous

Le double cheese

XLDnaute Occasionnel
Bonjour,

J'ai plusieurs camions et je souhaiterais calculer le coût d'entretien par année.

Le problème c'est que les camions n'ont pas était acheté tous la même année (2003/2005/2009...)

J'ai déja réussi à faire le calcule, mais je voudrais que ma formule prenne en compte automatiquement les nouveaux camions que je vais acheter.

Bref, voici mon document.
 

Pièces jointes

  • Suivit camion.xlsx
    13.6 KB · Affichages: 41
  • Suivit camion.xlsx
    13.6 KB · Affichages: 43
  • Suivit camion.xlsx
    13.6 KB · Affichages: 41
Dernière édition:

job75

XLDnaute Barbatruc
Re : Petit problème très facile pour vous

Bonjour Le double cheese, salut R@chid,

Une solution VBA avec cette fonction :

Code:
Function COUT(t As Variant, an As Byte) As Double
If Application.CountA(t) = 1 Then COUT = t: Exit Function
Dim ub As Byte, i As Long, n As Byte, j As Byte
t = t 'matrice, plus rapide
ub = UBound(t, 2)
For i = 1 To UBound(t)
  n = 0
  For j = 1 To ub
    If n = 0 Then If t(i, j) <> "" Then n = 1
    If n Then
      If n = an Then COUT = COUT + t(i, j): Exit For
      n = n + 1
    End If
  Next
Next
End Function
Elle est utilisée en ligne 3 du fichier joint avec la formule en B3 =COUT(T;B2)

Edit : le nom T définit dynamiquement le tableau.

A+
 

Pièces jointes

  • Suivi camion VBA(1).xls
    61.5 KB · Affichages: 36
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Re : Petit problème très facile pour vous

Bonsour®
en esperant avoir compris

avec ajout en colonne B d'une zone (pouvant etre masquée) permettant de localiser la premiere imputation de chaque camion
en ligne 2 une somme de fonction DECALER utilisant la plage précédente.
(ajouter et adapter autant de fonction DECALER qu'il y a de camions)
 

Pièces jointes

  • Suivit camion.xlsx
    19.2 KB · Affichages: 36
  • Suivit camion.xlsx
    19.2 KB · Affichages: 35
  • Suivit camion.xlsx
    19.2 KB · Affichages: 35
Dernière édition:

job75

XLDnaute Barbatruc
Re : Petit problème très facile pour vous

Re, salut Modeste geedee,

Après le VBA une solution par formules.

Comme Modeste geedee j'utilise la colonne intermédiaire B avec en B7 cette formule matricielle :

Code:
=SI(NB(INDEX(T;LIGNES(B$7:B7);));EQUIV(VRAI;ESTNUM(INDEX(T;LIGNES(B$7:B7);));0);0)
Elle renvoie le n° de colonne du tableau T où se trouve la 1ère valeur.

Formule pour le résultat en C3 :

Code:
=SOMMEPROD(T*(C2=2+COLONNE(T)-COLONNE(INDEX(T;;1))-DECALER(T;;-1;;1)))
Fichier joint.

A+
 

Pièces jointes

  • Suivi camion Formules(1).xls
    55 KB · Affichages: 35

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Petit problème très facile pour vous

Bonjour à tous,

Pour le fun, une autre formule (toujours sur le même principe) d'une colonne auxilliaire en B:B qu'on peut masquer.

en B7, la formule matricielle suivante à copier jusqu'en B12 :
=SIERREUR(PETITE.VALEUR((SI(C7:Q7<>"";COLONNE(C7:Q7)-3;""));1);0)

En C3, la formule matricielle suivante à copier jusqu'en L3 :
=SOMME(TRANSPOSE(DECALER($C$7;LIGNE($B$7:$B$12)-7;$B$7:$B$12+C2-1)))


Formule matricielle: Elle doit être validée par la combinaison des touches Ctrl+Maj+Entrée au lieu de la seule touche Entrée comme une formule classique.
Si la validation matricielle est correcte, alors Excel entoure la formule d'accolades {=.......}.
Chaque fois que cette formule sera modifiée, la validation devra se faire par Ctrl+Maj+Entrée. Les accolades apparaissent à la validation et ne doivent pas être saisies au clavier.
 

Pièces jointes

  • Suivi camion v1.xlsx
    13.8 KB · Affichages: 42

job75

XLDnaute Barbatruc
Re : Petit problème très facile pour vous

Bonjour le fil, le forum,

Avec la fonction SOUS.TOTAL on arrive à se passer de la colonne intermédiaire.

Nom défini Position (c'est bien sûr une matrice) :

Code:
=ESTNUM(T)*SOUS.TOTAL(2;DECALER(T;LIGNE(T)-lig;;1;COLONNE(T)-col+1))
Formule en B3 :

Code:
=SOMMEPROD(T*(Position=B2))
Fichier (2).

A+
 

Pièces jointes

  • Suivi camion Formules(2).xls
    54 KB · Affichages: 27

job75

XLDnaute Barbatruc
Re : Petit problème très facile pour vous

Re,

Le nom Position n'est pas indispensable et ESTNUM(T) est superflu.

Fichier (3) avec cette formule en B3 :

Code:
=SOMMEPROD(T*(B2=SOUS.TOTAL(2;DECALER(T;LIGNE(T)-lig;;1;COLONNE(T)-col+1))))
A+
 

Pièces jointes

  • Suivi camion Formules(3).xls
    54.5 KB · Affichages: 37

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 979
dernier inscrit
bderradji