Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Boucle VBA approvsionnement

GV91

XLDnaute Junior
Bonjour à toutes et à tous,

Ci-joint un fichier que j'aimerai "automatisé"

Dans l'exemple je dispose d'un fournisseur de palettes qui ne me livre que par lot de 200, et un tableau récapitulant par mois mon besoin.

J'aimerai donc remplacer mes "-200" à l'affilés par une boucle VBA :

Avec un message demandant le mois désiré, et qui me calculerai automatiquement le nombre de commande passées jusqu'à ce que la quantité soit inférieur à la taille de lot.

J'aimerai donc aussi un message me disant par exemple " 13 commandes de 200 palettes possibles pour les 2514 palettes , reste 114 palettes"

D'avance merci
 

Pièces jointes

  • Gv2.xlsx
    17.7 KB · Affichages: 11

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour GV,
Si votre besoin est de 2514 palettes, la commande doit être de =ARRONDI.SUP(E18/200;0) soit 13 lots, ce qui représente 2600 palettes.
Donc votre reste est de 56 palettes et non de 114 ? ( 2600-2514 )
Où me trompais je ?
 

GV91

XLDnaute Junior
Bonjour GV,
Si votre besoin est de 2514 palettes, la commande doit être de =ARRONDI.SUP(E18/200;0) soit 13 lots, ce qui représente 2600 palettes.
Donc votre reste est de 56 palettes et non de 114 ? ( 2600-2514 )
Où me trompais je ?

Bonjour sylvanu

Je me suis trompé, je ne dois pas dépasser mes 2514 palettes, donc je passe 12 commandes (2400) et il me reste 114 palettes.
La formule est correcte mais je dois retranscrire ça sur VBA.

Je suis cependant assez rouillé j'aimerai quelque chose du genre mais fonctionnel

Sub répartition()

Dim i, j, k As Integer

MsgBox "Quel mois rechercher vous ?"
i = Cells(E11)
'2 514 palettes
j = Cells(D26)
'lot de 200
k = résultats
'nombre de commandes
r = reste
m = mois
Do
k = i - j
Loop Until k = i < j

MsgBox " k commandes de j palettes possibles pour les i palettes , reste r palettes"





End Sub
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
On peut se passer de macros en utilisant votre page 2. Voir PJ.
Si vous voulez absolument une macro, faites signe je vous la fait.
Par contre j'ai modifié les mois pour qu'ils correspondent à la liste déroulante.
 

Pièces jointes

  • Gv2.xlsm
    26.4 KB · Affichages: 5

GV91

XLDnaute Junior
Re,
On peut se passer de macros en utilisant votre page 2. Voir PJ.
Si vous voulez absolument une macro, faites signe je vous la fait.
Par contre j'ai modifié les mois pour qu'ils correspondent à la liste déroulante.

Sinon est-il possible de modifier ton tableau en Feuille 2 en ajoutant plusieurs types de palettes pour le fournisseurs ??
 

GV91

XLDnaute Junior
Super !!

Je te remercie énormément !

Je suppose que je peux "bidouiller" un peu la macro pour lui faire prendre en compte différents types de supports et donc des coûts différents ?
 

GV91

XLDnaute Junior
Quand on a choisit le mois, la variable Mois contient le nom du mois,
IndexMois donne la position de la colonne où est le mois.
Après on en fait ce qu'on veut.
... le plus dur est de construire la phrase de retour dans le msgbox !

Salut sylvanu et bonjour le forum,

J'ai regardé ta VBA et l'applique pour le tableau à merveille !

Concernant ton tableau (que je remet dans le fichier), mon fichier ayant évolué je ne comprend pas comment tu utilise la formule pour le volume palettes avec les INDEX.

Mon tableau ayant désormais plusieurs types de supports (des fois pour des mêmes fournisseurs) avec des tailles de lots et coût différents. J'aurai donc voulu affiné la formule avec les différentes liste déroulante mais je coince.
 

Pièces jointes

  • Gv.xlsx
    15 KB · Affichages: 4

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour GV,
Comme vous aurez du VBA avec vos msgbox, je me suis dit que le plus simple pour trouver le volume de palettes était de passer par une fonction perso :
VB:
Function ChercheLigne(Site, FRS, TypePal)
Application.Volatile
Derlig = Application.WorksheetFunction.CountA(Range("A1:A10000"))
For i = 2 To Derlig
    If Cells(i, 1) = Site And Cells(i, 2) = FRS And Cells(i, 4) = TypePal Then
        L = 1
        Exit For
    End If
Next i
If i = Derlig + 1 Then
    ChercheLigne = "Erreur"
Else
        ChercheLigne = i
End If
End Function
Ça évite de longues formules si on veut tenir compte du Site, FRS et Type palettes.
Donc cette formule donne le No de ligne, un simple Equiv donne le No de colonne en fonction du mois, et un Index(Tableau;Ligne;Colonne) donne le volume.
Bien évidemment les deux cellules Ligne Colonne peuvent être supprimées et intégrées dans la formule Volume ( Tableau de gauche )
 

Pièces jointes

  • GvV2.xlsm
    24.6 KB · Affichages: 7

GV91

XLDnaute Junior


Le tableau ne fonctionne pas totalement mais j'ai compris comment fonctionnait ta formule
Je te remercie pour ton retour !
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…