XL 2019 Compter le nombre de boites dans un carton...

Deskep

XLDnaute Nouveau
Bonjour,

Je fais de nouveau appel à vous car j'ai une nouvelle entrée qui me pose problème pour une formule.

J'ai une première colonne "carton" qui doit contenir de 1 à 3 "boites" d'une seconde colonne qui peut elle même comprendre de 1 à 3 "objets" (non affiché)

image_2020-11-16_143830.png


Je cherche à compter le nombre de boites comprises dans ces cartons. J'ai tenté NB.SI.EN mais le système de fusion que j'ai utilisé pour symboliser les ensembles semble poser problème.

Je ne sais pas si vous arriverez à comprendre, si besoin je vous enverrai la formule complète que je cherche à réaliser + le document.

En vous remerciant par avance,
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Deskep, Rachid, bonjour le forum,

Pour les formules, tu es entre les mains expertes de Rachid que je salue au passage.
Si une proposition VBA t'intéresse, un fichier exemple en pièce jointe avec le code ci-dessous :

VB:
Private Sub CommandButton1_Click()
Private Sub CommandButton1_Click()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim I As Integer 'déclare la variable I (Incrément)
Dim NC As Integer 'déclare la variable NC (Nombre de Cellules)
Dim NB As Integer 'déclare la variable NB (Nombre de Boîtes)

Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
DL = O.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A de l'onglet O
For I = 1 To DL 'boucle sur toutes les lignes I de 1 à DL
    If O.Cells(I, "A").Value <> "" Then 'condition : si la cellule colonne A de la boucle n'est pas vide
        NC = O.Cells(I, "A").MergeArea.Cells.Count 'définit le nombre de cellule de la la cellule fusionnée ou pas
        NB = Application.WorksheetFunction.Sum(O.Cells(I, "B").Resize(NC, 1)) 'calcule la somme des boîtes NB
        O.Cells(I, "A").Value = "'1/" & NB 'modifie le texte dans la cellule A de la boucle en le remplaçant par 1/NB
     I = I + (NB - 1) 'redéfinit I (saute les lignes fusionnées)
    End If 'fin de la condition
Next I 'prochaine ligne de la boucle
End Sub
 

Pièces jointes

  • Deskep_ED_v01.xlsm
    21.9 KB · Affichages: 16

Deskep

XLDnaute Nouveau
Bonjour,

Merci pour vos réponses, je n'ai jamais utilisé la fonctionnalité VBA, si une autre solution est possible je la considérerai en priorité.

Les fusions sont seulement utilisées ici pour représenter quelles boites iront dans quels cartons. Elles peuvent donc être remplacées.

Je vais créer un document sans données confidentielles et vous le transmet un peu plus tard en journée/soirée.

Merci,
 

job75

XLDnaute Barbatruc
Bonjour le fil, le forum,

On peut se passer de la colonne F de la feuille "Entrées".

En utilisant cette formule matricielle en I4 de la feuille "Calculs" :
Code:
=SOMME(SI(Entrées!B3:B1000="";"";SOUS.TOTAL(3;DECALER(Entrées!C3;LIGNE(Entrées!C3:C1000)-3;;3))))
à valider par Ctrl+Maj+Entrée.

Ligne 1000 à adapter bien sûr.

A+
 

Pièces jointes

  • Excel avec formules(2).xlsx
    14.8 KB · Affichages: 4

Deskep

XLDnaute Nouveau
Bonsoir, merci pour vos réponses, j'ai pris un peu de temps pour essayer de comprendre vos solutions. Je n'en ai pas saisi toute la complexité, pour autant j'ai réussi à adapter la solution de R@chid en étendant les formules et en corrigeant celle pour les krafts.
Concernant ta solution Job75, en rajoutant des entrées et en étendant les formules, je ne trouve pas le bon nombre de boîtes dans les cartons, de même pour le kraft.
Si cela vous intéresse, voici vos solutions avec les changements.

Encore merci, bonne soirée !
 

Pièces jointes

  • Deskep_V2 R@chid.xlsx
    15 KB · Affichages: 3
  • Job75.xlsx
    15.5 KB · Affichages: 4

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 900
Membres
101 834
dernier inscrit
Jeremy06510