Somme ligne variable

ChaiLee Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
ChaiLee Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'aimerais, si possible sans développer de macro, trouver une formule pour copier une somme avec un nombre de ligne variable

le but est de copier la formule "stock" sur toutes les lignes stock




ça parait simple, mais je sèche
cijoint une photo, j'ai pas trouvé le lien pour la pcs jointe xls
Un grand merci par avance pour votre aide

Chaiii
A voir également:

5 réponses

titeufdu89 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   38
 
Bonsoir,

Le nombre de lignes est amené a changer ou il est fixe?
Pour poster un fichier, tu peux utiliser le site gratuit suivant si jamais : https://www.cjoint.com/
Ce site génère un lien d'accès pour télécharger le fichier.

Jc
0
ChaiLee Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
bonsoir Jc,

oui le nombre de ligne est amené à changer, c'est là le problème, et il y a env 4000 codes produits...

merci pour le site de pcs jointe, voici le lien
https://www.cjoint.com/c/HLjvKbHA3BZ

Bonne soirée
Chaiii
0
titeufdu89 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   38
 
Salut Chaiii,

Pour ma part je vois pas de solution autre qu'en VBA pour avoir une formule adaptative si tu es susceptible d'ajouter des lignes dans ton tableau régulièrement...

Jc
0
ChaiLee Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
oui c'est des extracts de logiciel d'entreprise, le nombre de lignes est complètement variables
en VBA je suis toujours preneur, mais je suis pas expert
Tu penses à une macro pas trop lourde?
Chaiii
0
Raymond PENTIER Messages postés 58988 Date d'inscription   Statut Contributeur Dernière intervention   17 352
 

Bonjour.

Peut-être une piste : Il existe une solution efficace et sans macro, la fonction DONNÉES/Sous-Total, pour obtenir en D9 la somme D2:D8.
Il restera à gérer les reports de stocks ...

0
Raymond PENTIER Messages postés 58988 Date d'inscription   Statut Contributeur Dernière intervention   17 352
 
Comment sont renseignées tes lignes ? Une à une au clavier, ou par une procédure d'importation ?
0
titeufdu89 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   38
 
Bonjour,

Ci-joint une solution avec VBA
https://www.cjoint.com/c/HLkj0x2hllN

Le code en question est le suivant :
Sub ajout_formule_stock()
Dim der_col As Long, i As Long, deb As Long
der_col = Range("XV1").End(xlToLeft).Column

For i = 2 To Range("A66536").End(xlUp).Row
    If Range("B" & i) = "stock" Then
    deb = i - 1
        Do While deb > 1 And Range("B" & deb) <> "stock"
        deb = deb - 1
        Loop
    deb = deb + 1
    Range("D" & i).FormulaR1C1 = "=RC[-1]+SUM(R" & deb & "C:R[-1]C)"
    Range("D" & i).AutoFill Destination:=Range(Cells(i, 4), Cells(i, der_col)), Type:=xlFillDefault
    End If
Next i
End Sub


Il recherche sur toute la longueur du tableau les cellules qui contiennent le mot "stock" et ajoute sur ces lignes formule somme additionnant les lignes située au dessus jusqu'au précédant "stock" + la valeur de la cellule de gauche de la ligne stock en question. Enfin la formule est recopiée dans toutes les colonnes non vides du tableau en question.

Bonne journée
0
ChaiLee Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Cher Titeuf,

Quel talent!!!
un grand MERCI
je te recontacterai avec plaisir;)
Bonne soirée
Chaiii
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JvDo Messages postés 1978 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour à tous,

Un SOMMEPROD devrait faire l'affaire.
En D9, tu mets =SOMMEPROD(($A$2:$A8=$A9)*D$2:D8)+C9 que tu recopies jusqu'en BB9.

Tu sélectionnes D9:BB9, tu fais un copier (CTRL+C).
Tu sélectionnes D13, puis en maintenant la touche CTRL enfoncée, tu sélectionnes D20, D24, D32, D38.
Tu fais un coller (CTRL+V).

J'espère que tu n'as pas 100.000 lignes à traiter.

Cordialement
0