Excel: Somme plage conditionnelle
Résolu
tictac847
Messages postés
26
Statut
Membre
-
tictac847 Messages postés 26 Statut Membre -
tictac847 Messages postés 26 Statut Membre -
Bonjour,
J'ai un tableau qui à la forme suivante
commande------refpaquet-----couleur------- taille -------qte
A ---------------Abs1------- bleu----------- s------------25
A---------------Abs2-------- bleu----------- s ----------- 25
A---------------Abs3--------bleu-----------s ----------- 22
A--------------- Abm1--------bleu----------- m-----------25
A--------------- Abm1-------- bleu ----------- m----------- 25
B--------------- Brs1-------- rouge----------- s -----------15
B--------------- Bbm1 -------- bleu ----------- m ----------- 25
Je voudrais mettre en place une macro qui recupere sur un userform la taille et la qte total
d'une meme paquet (commande et taille identique)
Exemple:
les trois 1ere lignes font partie d'un meme paquets etant donne qu'elle on la meme reference de commane "A" , la meme couleur "Bleu" et la meme taille "s"
je voudrais que ma macro reporte "s" dans le textboxTaille de mon userfom et "72" dans le textboxQte
j'ai commencer à écrire la macro suivante mais je ne parviens pas à finaliser mon raisonnement.
Je sais qu'il y a un probleme de syntaxe pour la somme, mais je ne sais pas le résoudre.
merci d'avance.
J'ai un tableau qui à la forme suivante
commande------refpaquet-----couleur------- taille -------qte
A ---------------Abs1------- bleu----------- s------------25
A---------------Abs2-------- bleu----------- s ----------- 25
A---------------Abs3--------bleu-----------s ----------- 22
A--------------- Abm1--------bleu----------- m-----------25
A--------------- Abm1-------- bleu ----------- m----------- 25
B--------------- Brs1-------- rouge----------- s -----------15
B--------------- Bbm1 -------- bleu ----------- m ----------- 25
Je voudrais mettre en place une macro qui recupere sur un userform la taille et la qte total
d'une meme paquet (commande et taille identique)
Exemple:
les trois 1ere lignes font partie d'un meme paquets etant donne qu'elle on la meme reference de commane "A" , la meme couleur "Bleu" et la meme taille "s"
je voudrais que ma macro reporte "s" dans le textboxTaille de mon userfom et "72" dans le textboxQte
j'ai commencer à écrire la macro suivante mais je ne parviens pas à finaliser mon raisonnement.
Private Sub ComboBoxCouleur_Change()
Dim Commande, Couleur As String
Dim c As Range
Dim i, n As Integer
Commande = UserFormPlanning.TextBoxRefCommande.Text
Couleur = UserFormPlanning.ComboBoxCouleur.Text
For Each c In Range("B101:B1000")
If c.Value = Commande And c.Offset(0, 2).Value = Couleur Then
While c.Offset(c, 3).Value = c.Offset(c + 1, 3).Value 'ajouter +1 pour la derniere
For i = 1 To 10 Step 1
UserFormPlanning.Controls("TextBoxTaille" & i).Text = c.Offset(c, 3).Value
UserFormPlanning.Controls("textboxqte" & i).Text = Sum(c.Offset(0, 4).Value)
Next i
Loop
End If
Next
For n = 1 To 10 Step 1
If UserFormPlanning.Controls("TextBoxTaille" & n).Text <> "" Then UserFormPlanning.Controls("TextBoxTaille" & n).Visible = True
If UserFormPlanning.Controls("textboxqte" & n).Text <> "" Then UserFormPlanning.Controls("textboxqte" & n).Visible = True
Next n
End Sub
Je sais qu'il y a un probleme de syntaxe pour la somme, mais je ne sais pas le résoudre.
merci d'avance.
A voir également:
- Excel: Somme plage conditionnelle
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
- Excel trier par ordre croissant chiffre - Guide
3 réponses
Petit complement d'info
lorsque j'ouvre le userform je le fait a partir d'une commande. ce qui fait que la commande apparait automatiquement dans le texteboxRefCommande.
La macro s'active lorsque je la choisis dans le comboboxCouleur.
Ce qui fait que pour chaque recherche je dispose deja de la commande et de la couleur
je recherche donc uniquement les differentes tailles pour chauqe couleur ainsi que les quantité total pour chauqe taille je joint une photo du userform pour plus de visibilité.
https://www.cjoint.com/?BAxany52qWq
MERCI
lorsque j'ouvre le userform je le fait a partir d'une commande. ce qui fait que la commande apparait automatiquement dans le texteboxRefCommande.
La macro s'active lorsque je la choisis dans le comboboxCouleur.
Ce qui fait que pour chaque recherche je dispose deja de la commande et de la couleur
je recherche donc uniquement les differentes tailles pour chauqe couleur ainsi que les quantité total pour chauqe taille je joint une photo du userform pour plus de visibilité.
https://www.cjoint.com/?BAxany52qWq
MERCI
Pou simplifier les chose l'idée de ma macro est la suivante:
-dans la plage("B100:B1000")
. SI la couleur et la commande sont identique a celle du userform
. tant que la colonne 4 represente la meme taille
.faire la somme de la qté pour cette taille "Et c'est precisement la que je bloque"
enregistrer le resultat dans le userform
Voila si quelqu'un veut bien m'aider ca me serait d'un grand secours
n'hesitez pas à demander plus d'explication si ce n'est pas assez claire
merci
-dans la plage("B100:B1000")
. SI la couleur et la commande sont identique a celle du userform
If c.Value = Commande And c.Offset(0, 2).Value = Couleur Then
. tant que la colonne 4 represente la meme taille
i = 1
For n = 1 To 1000 Step 1
While c.Offset(n, 3).Value = c.Offset(n + 1, 3).Value
.faire la somme de la qté pour cette taille "Et c'est precisement la que je bloque"
t = c.Offset(n, 4).Value + c.Offset(n + 1, 4).Value
enregistrer le resultat dans le userform
UserFormPlanning.Controls("TextBoxTaille" & i) = n
UserFormPlanning.Controls("TextBoxQte" & i) = t
i = i + 1
Voila si quelqu'un veut bien m'aider ca me serait d'un grand secours
n'hesitez pas à demander plus d'explication si ce n'est pas assez claire
merci
Re le forum,
C'est bon j'ai trouver la solution tout seul comme un grand, voici le code final.
N'hesitez pas à me relancer si jamais quelqu'un a une question par rapport a ce code.
C'est bon j'ai trouver la solution tout seul comme un grand, voici le code final.
Private Sub ComboBoxCouleur_Change()
Dim Commande, Couleur, Taille As String
Dim c As Range
Dim i, n, Qte As Integer
Commande = UserFormPlanning.TextBoxRefCommande.Text
Couleur = UserFormPlanning.ComboBoxCouleur.Text
i = 1
For n = 70 To 1000
If Range("CK" & n).Value = Commande And Range("CK" & n).Offset(0, 2).Value = Couleur Then 'pour la couleur choisie
Qte = Qte + Range("CK" & n).Offset(0, 4).Value
If Range("CK" & n).Offset(0, 3).Value = Range("CK" & n).Offset(1, 3).Value Then ' tant que la taille est identique
Taille = Range("CK" & n).Offset(0, 3).Value
UserFormPlanning.Controls("TextBoxTaille" & i).Text = Taille
Else ' si la taille est differente
UserFormPlanning.Controls("TextBoxQte" & i).Text = Qte
Qte=0
i = i + 1
Taille = Range("CK" & n).Offset(1, 3).Value
End If
End If
Next n
For p = 1 To 10 Step 1
If UserFormPlanning.Controls("TextBoxTaille" & p).Text <> "" Then UserFormPlanning.Controls("TextBoxTaille" & p).Visible = True
If UserFormPlanning.Controls("TextBoxQte" & p).Text <> "" Then UserFormPlanning.Controls("TextBoxQte" & p).Visible = True
Next p
End Sub
N'hesitez pas à me relancer si jamais quelqu'un a une question par rapport a ce code.