Recherche cellule précise pour insérer un chiffre par rapport à une cellule

Bonjour à tous,

Je recherche une formule pour calculer rapidement le nombre de boites à utiliser pour chaque quotité dans le fichier joint.

1er étape :

Inscrire 1 si le montant de M-2 est =>1 000 jusqu'à 1 999 ; inscrire 2 si le montant de M-2 est =>2 000 jusqu'à 2 199

Inscrire 1 si le montant de M-1 est =>750 jusqu'à 1 499 ; inscrire 2 si le montant de M-1 est =>1 500 jusqu'à 2 249

Inscrire 1 si le montant de M-0.50 est =>400 jusqu'à 799 ; inscrire 2 si le montant de M-0.50 est =>800 jusqu'à 1 199

Inscrire 1 si le montant de M-0.20 est =>160 jusqu'à 319 ; inscrire 2 si le montant de M-0.20 est =>320 jusqu'à 479

Inscrire 1 si le montant de M-0.10 est =>120 jusqu'à 239 ; inscrire 2 si le montant de M-0.10 est =>240 jusqu'à 359

Inscrire 1 si le montant de M-0.05 est =>50 jusqu'à 99 ; inscrire 2 si le montant de M-0.05 est =>100 jusqu'à 149

Inscrire 1 si le montant de M-0.02 est =>30 jusqu'à 59 ; inscrire 2 si le montant de M-0.02 est =>60 jusqu'à 89

Inscrire 1 si le montant de M-0.01 est =>20 jusqu'à 39 ; inscrire 2 si le montant de M-0.01 est =>40 jusqu'à 59

2ème étape :

Calculer le nombre de boite à utiliser par tournée et par quotité

J'espère que mes explications sont assez clair, sinon n'hésiter pas à me poser des questions!!

Merci

Galiax

5etiquetasbags.zip (48.41 Ko)

Bonjour à tous,

On écrit quoi si m-2 =500 ?? (comme tu as mis en E49 ?)

Crdlmt

Re,

on écrit zéro (0) car cela ne fait pas 1 boite!

pour M-2 c'est 1 boite quand le montant est => à 1000 ; 2 boites =>2000 / montant < à 1000 = 0

pour M-1 c'est 1 boite quand le montant est => à 750 ; 2 boites =>1500 / montant < à 750 = 0

pour M-0.50 c''est 1 boite quand le montant est => à 400 ; 2 boites =>800 / montant < à 400 = 0

pour M-0.20 c''est 1 boite quand le montant est => à 160 ; 2 boites =>320 / montant < à 160 = 0

pour M-0.10 c''est 1 boite quand le montant est => à 120 ; 2 boites =>240 / montant < à 120 = 0

pour M-0.0.05 c''est 1 boite quand le montant est => à 50 ; 2 boites =>100 / montant < à 50 = 0

pour M-0.02 c''est 1 boite quand le montant est => à 30 ; 2 boites =>60 / montant < à 30 = 0

pour M-0.01 c''est 1 boite quand le montant est => à 20 ; 2 boites =>40 / montant < à 20 = 0

peut être que c'est + claire que mon premier message!!

Cordialement

Salut Galiax,
Salut DjiDji,

premier jet à peaufiner... après quelques heures de sommeil...
La macro démarre à l'activation de la feuille 'Nbre Boites' : TOUS les calculs se font à ce moment-là.

Private Sub Worksheet_Activate()
'
Dim tTab, tType, tExtract(), iTour%, iRow%, iCol%, iIdx%, sItem$
'
Application.ScreenUpdating = False
'
tTab = Worksheets("EtiquetasBags.rpt").Range("C1:I" & Worksheets("EtiquetasBags.rpt").Range("E" & Rows.Count).End(xlUp).Row).Value
With Worksheets("Nbre Boites")
    iCol = .Cells(2, Columns.Count).End(xlToLeft).Column
    iRow = .Range("A" & Rows.Count).End(xlUp).Row
    If .[A3] <> "" Then _
        .Range("A3").Resize(iRow, iCol).Value = "": _
        .Range("A3").Resize(iRow, iCol).Borders.LineStyle = xlLineStyleNone
    tType = .Range("B1").Resize(2, iCol).Value
    For x = 1 To UBound(tTab, 1)
        If InStr(tTab(x, 2), "Date de remise") > 0 Then _
            If CInt(tTab(x + 1, 1)) <> iTour Then _
                iIdx = iIdx + 1: _
                iTour = CInt(tTab(x + 1, 1)): _
                ReDim Preserve tExtract(iCol + 1, iIdx): _
                tExtract(0, iIdx - 1) = iTour
        If InStr(tTab(x, 1), "M-") > 0 Then sItem = tTab(x, 1)
        If InStr(tTab(x, 2), "M-") > 0 Then sItem = tTab(x, 1)
        If sItem <> "" Then
            For y = 1 To iCol
                If InStr(tType(2, y), sItem) > 0 Then _
                    tTab(x, 7) = Fix(CInt(Replace(tTab(x, 3), " ", "")) / CInt(tType(1, y))): _
                    tExtract(y, iIdx - 1) = CInt(tExtract(y, iIdx - 1)) + CInt(tTab(x, 7)): _
                    Exit For
            Next
            sItem = ""
        End If
    Next
    Worksheets("EtiquetasBags.rpt").Range("C1:I" & Worksheets("EtiquetasBags.rpt").Range("E" & Rows.Count).End(xlUp).Row).Value = tTab
    .Range("A3").Resize(iCol - 1, iIdx + 1).Value = WorksheetFunction.Transpose(tExtract)
    .Range("A3").Resize(iCol - 1, iIdx + 1).Borders.LineStyle = xlContinuous
    .Range("A3").Resize(iCol - 1, iIdx + 1).BorderAround Weight:=xlThick
End With
'
Application.ScreenUpdating = True
'
End Sub
5galiax.xlsm (59.89 Ko)

Á tester, on chipotera plus tard...


A+

Salut Curilis57,

Au premier coup d'œil, c'est pas mal, même très bien.

Le calcul des M-xx de la colonne C se fait correctement mais pas celle de la colonne D!

manque plus que le calcul de la colonne D est je pense que cela serra parfait!

je continu à tester le fichier, et j'attends ton retour!

Merci d'avance

Galiax




Salut Galiax,

ben, oui, le danger des copier-coller... If InStr(tTab(x, 2), "M-") > 0 Then sItem = tTab(x, 2)...

        If InStr(tTab(x, 1), "M-") > 0 Then sItem = tTab(x, 1)
        If InStr(tTab(x, 2), "M-") > 0 Then sItem = tTab(x, 2)


A+

Salut,

Merci pour la modif, c'est SUPER!

Pour chipoter un peu,

Sil y a + de tournée au lieu de 8 comme sur le fichier... les lignes s'afficheront ou il faut modifier qqchoses???

Salut Galiax,

en théorie, rien à ajouter...


A+

Re,

J'ai testé en ajoutant une tournée, ça ne marche pas !

image

Je peux voir ce fichier ?


A+

le voila

6test-galiax.xlsm (60.28 Ko)

Salut Galiax,

déso, le hasard a voulu, pour tromper mon pauvre cerveau d'humain, que le nombre de tournées de ton premier fichier-exemple soit égal au nombre de types de produits... d'où mon erreur coupable alors que je joue souvent avec ce genre de tableaux..

Errare humanum est...

15galiax.xlsm (65.80 Ko)


A+

Parfait,

Trop fort, merci bcp!

@++

Bonjour,

Après plusieurs test, j'aimerais modifier le calcul du nombre de boite uniquement lorsque M-2 est égal à 2 000 mettre 1 et non 2 car cela fait trop (2 boites)

pour le reste rien à modifier, les calculs fonctionnent très bien

image

De plus, il arrive que j'ai une tournée à 0 et la ça bug!

image image

Si vous pouvez jeter un coup d'œil, merci d'avance

Cdlt

Galiax

Salut Galiax,

pour changer le calcul des boîtes, il te suffit de changer les valeurs en ligne 1 de la feuille 'Nbre Boites'.
Pour la tournée "0", c'est réglé aussi.


A+

6galiax.xlsm (65.78 Ko)

Bonjour CURULIS57,

Bien joué pour la tournée "0", par contre je me suis mal exprimer pour les M-2 en nbre de boites :

j'aimerais qu'il s'affiche 1 boite a partir de 1 000 comme c'était avant , mais aussi 1 même s'il est écrit 2 000 au lieu de 2!!! (et pas 1 à partir de 2 000)

Peut être en insérant une formule (si M-2 = 2 000 alors la ou il y a le chiffre 2 faire 2-1; un truc comme ça)

Merci de voir; en espérant avoir été un peu + clair!!

Cdlt

Salut Galiax,

réfléchis bien à cette demande et demande-toi si elle peut, devrait, pourra ou pourrait s'appliquer à une autre référence :
- soit je crée une règle spécifique à M-2, et basta ;
- soit il faut imaginer une règle générique permettant toutes les "souplesses" imaginables en fonction de l'évolution de ton business...


A+

Re,

J'opterai pour la première option, car c'est uniquement sur le M-2 ou j'ai le souci! pour les autres M-x tout fonctionne très bien!

Merci de ton aide

Cdlt

Bonjour Curulis57,

Je me permet de te relancer concernant la dernière demande sur le calcul des boîtes en M-2!

En attente de ton retour,

merci d'avance

Cdlt, galiax

Bonjour à tous,

je me permet de réouvrir le dossier, car depuis quelques jours le code mis en place ne marche plus, il y a un débocage sur la ligne ci-dessous du fichier joint :

Si quelqu'un à idée d'où vient le problème, je suis preneur!

Cdlt

Galiax

image
Rechercher des sujets similaires à "recherche precise inserer chiffre rapport"