A voir également:
- Somme ligne variable
- Formule somme excel ligne - Guide
- Partager photos en ligne - Guide
- Somme si couleur - Guide
- Mètre en ligne - Guide
- Aller à la ligne excel - Guide
5 réponses
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
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
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
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
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 ...
Bonjour,
Ci-joint une solution avec VBA
https://www.cjoint.com/c/HLkj0x2hllN
Le code en question est le suivant :
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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