MISE A JOUR DE L’INVENTAIRE

  • Auteur/autrice de la publication :
  • Post category:Codial
  • Commentaires de la publication :0 commentaire

Macro à affecter à : Mise à jour de l’inventaire : Bouton Macro (F7)

// Macro créé par Patrick SCHNEIDER le 25/06/2018

// Description de la macro :

// ********************************************************************************
// *** Mise à jour de l’inventaire à partir d’un fichier EXCEL ***
// *** Le fichier EXCEL doit être du type XLS ***
// *** Il doit comporter une seule feuille ***
// *** La feuille comporte 3 colonnes ***
// *** 1 – La référence ou le code barre de l’article ***
// *** 2 – La quantité constatée ***
// *** 3 – Le prix d’achat pour une éventuelle valorisation ***
// ********************************************************************************

// Code principal de la macro :

// Déclaration des variables

LOCAL
wlColRef est entier
wlcolQte est entier
wlcolPA est entier

wlFlgPA est booléen

sFichier est chaîne
FicExcel est un xlsDocument
nNbrlig est un entier

wlMessage est chaîne
ref est une chaîne
qte est une chaîne
pa est une chaîne

// ********************************************************************************

// Fenêtre de choix Oui/non pour savoir si on souhaite prépositionner la mise à jour des prix d’achat

// Choix mise a jour PA
SI OuiNon(« Voulez-vous mettre à jour les prix d’achat ? « ) = Oui ALORS
wlFlgPA=Vrai
SINON
wlFlgPA=Faux
FIN

// Colonne dans Excel
wlColRef=1
wlcolQte=2
wlcolPA=3

// ********************************************************************************
// Ouvre le sélecteur de fichiers

sFichier = fSélecteur(«  », » », »Sélectionnez un fichier XLS… », »Fichier EXCEL » + TAB + « *.xls », »*.xls »)

// Chargement Fichier
FicExcel=xlsOuvre(sFichier,xlsCompatible)

SI ErreurDétectée() ALORS
Erreur(ErreurInfo())
RETOUR
FIN

//On mémorise le nombre de lignes de la feuille
nNbrlig = xlsNbLigne(FicExcel)

// Parcours des lignes à partir de la deuxième ligne
POUR nCpte=2 _A_ nNbrlig

//On stocke les informations souhaitées à chaque changement de ligne
ref = xlsDonnée(FicExcel,nCpte,wlColRef)
qte = xlsDonnée(FicExcel,nCpte,wlcolQte)
pa = xlsDonnée(FicExcel,nCpte,wlcolPA)

// Si on trouve une référence on réalise le traitement
SI SansEspace(ref) <> «  » ALORS
// oui
// Est ce la réf Article?
HLitRecherche(« ARTICLE », »REFERENCE »,ref,hIdentique)
SI HTrouve(« ARTICLE ») ALORS
// Oui alors ajout de la ligne
TableAjouteLigne(TABLE_ART_MASQUE,ARTICLE.REFERENCE,ARTICLE.CODEBAR,qte,pa,wlFlgPA,ARTICLE.DESIGN) //,ARTICLE.FAMILLE,ARTICLE.SOUSFAMILLE)

SINON
// Non
// Est ce le code barre ?
HLitRecherche(« ARTICLE », »CODEBAR »,ref,hIdentique)
SI HTrouve(« ARTICLE ») ALORS
// Oui alors ajout de la ligne
TableAjouteLigne(TABLE_ART_MASQUE,ARTICLE.REFERENCE,ARTICLE.CODEBAR,qte,pa,wlFlgPA,ARTICLE.DESIGN)//,ARTICLE.FAMILLE,ARTICLE.SOUSFAMILLE)

SINON
// Non = Erreur
wlMessage += »Référence ou CB introuvable : Ligne N° » + nCpte + RC
FIN
FIN
SINON
// Non = Erreur
wlMessage+= »Pas de référence : Ligne N° »+nCpte+RC
FIN
FIN

xlsFerme(FicExcel)

// On a des erreurs ?
SI wlMessage <> «  » ALORS
Info(wlMessage)
FIN

 

Laisser un commentaire