Six meilleures valeurs

Bonjour à toutes et à tous,

J'ai un soucis avec mon fichier excel. Je souhaiterai choisir automatiquement via VBA les six meilleurs valeurs d'une ligne donnée (commandes passées) et les multiplier par deux pour les avoir sur une année.

C'est pour une gestion des stock spéciale. On veut couvrir toute les éventualités donc on prend les 6 plus grandes valeurs x 2 pour les avoir sur une année.

La fonction sur excel est la suivante : =(GRANDE.VALEUR(J2:U2;1)+GRANDE.VALEUR(J2:U2;2)+GRANDE.VALEUR(J2:U2;3)+GRANDE.VALEUR(J2:U2;4)+GRANDE.VALEUR(J2:U2;5)+GRANDE.VALEUR(J2:U2;6))*2

Comment faire pour la matérialiser sur VBA ? J'ai tenté des choses mais la formule n'est pas reconnue sur VBA...

- Autrement, pourrais-t-on programmer et dire que la formule dans telle case doit être appliquée sur la colonne "tant à tant" ?

Bonne journée à tous et merci d'avance ! :)

Bonjour, en VBA pour utiliser la même formulation que dans vos cellule Excel il faut utiliser la syntaxe : FormulaLocal

Vous auriez alors quelque chose comme:

Range("A1").FormulaLocal="=(GRANDE.VALEUR(J2:U2;1)+GRANDE.VALEUR(J2:U2;2)+GRANDE.VALEUR(J2:U2;3)+GRANDE.VALEUR(J2:U2;4)+GRANDE.VALEUR(J2:U2;5)+GRANDE.VALEUR(J2:U2;6))*2"

Merci pour cette réponse !

Seulement, j'aimerai que le calcul s'effectue de la cellule W2 jusqu'à la fin..

Pour que cela se fasse en cascade et à chaque ligne, peut-on bloquer J et U ?

Il y a -t-il une colonne que l'on peut tester pour trouver la dernière ligne utilisée ?

Pour bloquer la colonne quand on doit tirer une formule on ajoute le symbol $ devant.... la lettre et biensur $ devant le chiffre si c'est la ligne que l'on veut bloquer.

(Cependant si vous tirez la formule vers le bas il est inutile de bloquer la lettre de colonne car il n'y aura pas de décalage.)

pour tirer la formule en VBA si elle est déjà renseignée en cellule W2

Range("W2").Select
Selection.AutoFill Destination:=Range("W2:W14"), Type:=xlFillDefault

Reste à déterminer ou s'arrête le tableau ( dans cet exemple en ligne 14 )

Merci cela fonctionne !

Je n'ai pas compris votre question..

Il faudrait que le calcul se termine en même temps que la dernière valeur de la colonne V

Oui c'est bien celà que je voulais savoir ... on test donc la dernière cellule utilisée de la colonne V et on tire en W

Dim derligne As Long
derligne = Range("V65536").End(xlUp).Row
Range("W2").Select
Selection.AutoFill Destination:=Range("W2:W" & derligne), Type:=xlFillDefault

Merci beaucoup ! Cela fonctionne !

Rechercher des sujets similaires à "six meilleures valeurs"