Ajout d'un bouton pour récupérer données d'un fichier externe

Fermé
Kivanc Messages postés 390 Date d'inscription jeudi 11 septembre 2014 Statut Membre Dernière intervention 13 août 2020 - 22 avril 2015 à 10:54
Kivanc Messages postés 390 Date d'inscription jeudi 11 septembre 2014 Statut Membre Dernière intervention 13 août 2020 - 21 sept. 2016 à 15:03
Bonjour à tous,

Je fais appel à votre amabilité et connaissance éventuelle en VBA pour m'aider à ajouter un bouton à ma macro.

A la base j'ai 3 fichiers :
  • Un premier nommé « cadencier » contenant tous mes articles reconnu par un code IFLS colonne J
  • Une macro « Macro alim cadencier » qui permet de récupérer des fichiers sur mon disque dur et d'alimenter la colonne Ventes du cadencier aves les boutons
  • Le fichier contenant les données qui vont être intégré dans le cadencier grâce à la macro : « fichier_pour_alim_ventes »


Je souhaiterai ajouter un bouton dans ma macro du même type que le deuxième « indiquer le fichier stocks » `qui alimente la colonne Ventes de mon fichier cadencier à partir de Qté Unités colonne L du fichier »SUM( [FLDC-Qté unites] ) »). Cette fois-ci je veux aller chercher un fichier Commandes prendre la colonne U « Arr. Intégrées » du fichier «fichier_alim_CMD »(dossier test macro) et la coller dans le fichier nommé Cadencier à la colonne CMD.

J'ai tout d'abord dans excel recopié la partie pour aller chercher le fichier créer le bouton et je l'ai affecté à une nouvelle macro « Sub CommandButton3_Click() »

Ensuite dans le code j'ai cherché à peu près tout le code ou y avait stock dedans et je l'ai recopié pour « commandes » en changeant le nom de toutes les variables...

PS: quand on appuie sur le bouton mettre a jour le cadencier ça marche ça alimente la colonne ventes. Mais mon bouton CMD ne marche pas... par contre avant d'appuyer sur mettre a jour faut qu'il y ait que la macro d'ouverte sur le pc.

Le dossier ci-joint contient donc : le cadencier, la macro de base, la macro test (contenant le code que j'ai ajouté qui se trouve entre des commentaires `TEST Bouton & `end test bouton pour pouvoir se repérer facilement ; le fichier pour alimenter les stocks avec le 2ème bouton et celui pour alimenter les commandes (nouveau bouton).
... je n'ai fait que reprendre la méthode de création du bouton 2. Je pense avoir fait le plus gros mais n'ayant que des connaissances très basiques de VBA, je suis incapable de rectifier.

Voici tous les fichiers :
https://www.cjoint.com/c/EDwleLoGB1Z
Merci par avance et bonne journée.
A voir également:

305 réponses

Kivanc Messages postés 390 Date d'inscription jeudi 11 septembre 2014 Statut Membre Dernière intervention 13 août 2020
5 mai 2015 à 14:19
J'ai encore beaucoup de #DIV/0 dans les cellules A à cause de PREV= 0. !
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
5 mai 2015 à 15:01
Bonjour,

x dans colonnes
            'Fin mise à jour des prévisions
            'Ecris le commentaire "Maj OK" dans le fichier Stock
            MFS.Cells(LigStock, Col_CommentR_Stk) = "Maj OK"
            'supprimme le "X" sur la feuille Cadencier, dans la colonne "Analyse"
            'MFC.Cells(Ligne, Col_Analyse_Cad).ClearContents


ligne ci-dessus a remettre en commentaire

et pour cmd:

'Ecris le commentaire "Maj OK" dans le fichier CMD
MFMD.Cells(LigCommande, Col_Comments) = "Maj OK"
'supprimme le "X" sur la feuille Cadencier, dans la colonne "Analyse"
'MFC.Cells(Ligne, Col_Analyse_Cad).ClearContents

ligne ci-dessus a remettre en commentaire

J'ai encore beaucoup de #DIV/0 dans les cellules A à cause de PREV= 0. ! Chez moi cadencier ligne 50,125,150 cellules JQ 2 et JX 3 formule ancienne donc pas eut de mise a jour, mais peut-etre normal
0
Kivanc Messages postés 390 Date d'inscription jeudi 11 septembre 2014 Statut Membre Dernière intervention 13 août 2020
5 mai 2015 à 15:12
Voici mes fichiers : https://www.cjoint.com/c/EEfpy3uksoT
Dans le cadencier on a une multitude d'érreurs sur le 5 mai. J'ai alimenté le 4 mai il semblerait donc que chaque jour il y'a des erreurs sur le lendemain.
0
Kivanc Messages postés 390 Date d'inscription jeudi 11 septembre 2014 Statut Membre Dernière intervention 13 août 2020
5 mai 2015 à 15:16
C'est en mettant a jour les entrées que ça provoque une catastrphe sur les colonneds A et STOCK
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 5/05/2015 à 15:36
Re,

J'ai les div0 que je vous ai signale et une palanquée de #valeur (que j'avais aussi) dues a la colonne JM qui a des cellules non vide, ce que je vous ai deja explique, voir ce fichier: https://www.cjoint.com/c/EEfpXloJW9C
0
Kivanc Messages postés 390 Date d'inscription jeudi 11 septembre 2014 Statut Membre Dernière intervention 13 août 2020
5 mai 2015 à 15:41
Donc cela apparait à chaque fois qu'il n'y a pas de valeur dans CMD ?? c'est très embêtant... peut on ignorer le vide ?
Je n'avais pas compris que vous aviez ça.
Les div 0 apparaissent à chaque fois qu'une prev est à 0. On avait pas réglé ça ?
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 5/05/2015 à 15:47
Re,

Ai trouve le schmilblik: vient de la colonne Arr.Integrees du fichier d'entrees, aucune cellule n'est vide. Il y a soit un nombre soit un caractere non visible du au logiciel d'extraction si cela en est une.
0
Kivanc Messages postés 390 Date d'inscription jeudi 11 septembre 2014 Statut Membre Dernière intervention 13 août 2020
5 mai 2015 à 15:53
Je ne comprends pas ? aucune cellule vide ? comment voyez vous qu'il ya un caractère s"il est non visible ?
Ces fichiers sont des résultats de requêtes showcase
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
5 mai 2015 à 16:00
Re,
comment voyez vous qu'il ya un caractère s"il est non visible ?
avez-vous regarde ceci: f894009 5 mai 2015 à 15:35

et mainrenant ceci: https://www.cjoint.com/c/EEfqmoqeoRo

et enfin la solution:

dans procedure
Sub MaJ_Cadencier_Commande(MFM As Worksheet)


remplacez le ligne:

MFC.Cells(Ligne, ColonneCad) = MFMD.Cells(LigCommande, Col_Commande)

par:

            If IsNumeric(MFMD.Cells(LigCommande, Col_Commande)) Then
                MFC.Cells(Ligne, ColonneCad) = MFMD.Cells(LigCommande, Col_Commande)
            Else
                MFC.Cells(Ligne, ColonneCad) = Empty
            End If
0
Kivanc Messages postés 390 Date d'inscription jeudi 11 septembre 2014 Statut Membre Dernière intervention 13 août 2020
5 mai 2015 à 18:21
Bonjour,

Oui j'ai ien vu mais je ne comprends pas... qu'est-ce que ce caractère non visible ??

J'ai remplacé la ligne : https://www.cjoint.com/c/EEfsJr4P51E

Il semblerait qu'il manque un If ??
Que fait cette condition ?
0
Kivanc Messages postés 390 Date d'inscription jeudi 11 septembre 2014 Statut Membre Dernière intervention 13 août 2020
5 mai 2015 à 18:42
En fait j'avais mal recopié......
Bref j'ai encore des erreurs et vous ??
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
5 mai 2015 à 19:14
Re,

Chez moi, li ne reste que les div0

Votre fichier est ok, j'ai juste empile autrement: https://www.cjoint.com/c/EEftxQHu7hZ

pour eliminer les #valeurs: mettre a jour entrees et stock/sorties

fichier cadencier: https://www.cjoint.com/c/EEftCOhZ4XF
0
Kivanc Messages postés 390 Date d'inscription jeudi 11 septembre 2014 Statut Membre Dernière intervention 13 août 2020
5 mai 2015 à 23:40
Merci.
Div0 dû au 0 en PREV. Ce que je ne comprend pas c'est pourquoi est-ce que ça n'est que sur quelque colonne A ?
et vous aviez bien ignoré le 0 dans la formule pourtant ?
0
Kivanc Messages postés 390 Date d'inscription jeudi 11 septembre 2014 Statut Membre Dernière intervention 13 août 2020
Modifié par Kivanc le 6/05/2015 à 09:19
Bonjour,
Pouvez-vous svp me rappeler ce que vous avez modifié pour que la macro puisse gérer plusieurs entrepôts ? J'ai une macro basique similaire à la toute première macro mais qui ne met pas à jour les stocks. J'ai donc fait quelques MAJ (arrondi de la prev, alerte jusque J+6 , et ignorer la prev à 0 pour l'alerte).
Le plus serait de prendre la macro actuelle et de n'enlever que les lignes mises à jour de stocks mais elle comporte encore quelques bugs ...
Je voudrai ajouter les fonctionnalités à celle-ci comme l'histoire des entrepôts et comme vous n'avez pas mis de commentaire sur ce que vous avez ajouté j'ai du mal à m'y retrouver..

Voici la macro : https://www.cjoint.com/c/EEgjGZezw9A
merci
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
6 mai 2015 à 13:39
Bonjour,

Kivanc 5 mai 2015 à 23:40 A vous de regarder si cette cellule est a mettre a jour, en fonction de vos fichers stock et entrees/sorties, ou pas !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

comme vous n'avez pas mis de commentaire sur ce que vous avez ajouté j'ai du mal à m'y retrouver.. Etes-vous capable de lire le code ?????????
fichier macro_ab_lens_0405 dans la procedure:
Sub MaJ_Cadencier_Prevision(MFM As Worksheet)
Il y a des commentaires qui ne sont pas de moi, je ne mets pas d'accent, pour ce sujet. Si vous avez le fichier d'origine, vous verrez quelle modif j'ai faite (DEPOT=)
0
Kivanc Messages postés 390 Date d'inscription jeudi 11 septembre 2014 Statut Membre Dernière intervention 13 août 2020
6 mai 2015 à 14:42
Bonjour,

Je parlais des div0, j'en ai 2 en lignes 125 et 130 pour le 5 mai. Car la prev est à 0 au 4 mai. Avez-vous la même chose ?

RStock = Split(Columns(Colonne_Ref).Address(ColumnAbsolute:=False), ":")(1) & Ligne_Ref
RPrevprec = Split(Columns(Colonne_Ref - 3).Address(ColumnAbsolute:=False), ":")(1) & Ligne_Ref
Formule_Partie_1 = "=if(" & RPrevprec & "=0,0,if((" & RStock & "*100/" & RPrevprec & ">" & Marge_Sup & "),2,"
Formule_Partie_2 = "if((" & RStock & "*100/" & RPrevprec & "<" & Marge_Inf & "),1,0)))"


Cette partie permettait pourtant d'ignorer le 0 ? non ?

merci
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
6 mai 2015 à 14:56
Re,
Formule dans JR125:
=SI((JQ125*100/JN125>100);2;SI((JQ125*100/JN125<30);1;0))

Formule dans JR60:
=SI(JN60=0;0;SI((JQ60*100/JN60>300);2;SI((JQ60*100/JN60<80);1;0)))
Vous ete tantinet borne(e) et vous ne lisez pas ce que j'ecris.JR60 a ete mise a jour par le programme prevision et pas JR125 le programme n'est a remettre en cause, donc voir au niveau de vos fichiers stock et cmd pourquoi, quelle(s) infos manque(s).
0
Kivanc Messages postés 390 Date d'inscription jeudi 11 septembre 2014 Statut Membre Dernière intervention 13 août 2020
6 mai 2015 à 15:10
Désolée j'ai vraiment du mal à saisir là... le problème viendrait donc de l'article ?
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > Kivanc Messages postés 390 Date d'inscription jeudi 11 septembre 2014 Statut Membre Dernière intervention 13 août 2020
6 mai 2015 à 15:13
Re,

Y a de forte chance ou malchance, je n'ai pas fait de recherche dans ce sens pour l'instant.
0
Kivanc Messages postés 390 Date d'inscription jeudi 11 septembre 2014 Statut Membre Dernière intervention 13 août 2020
11 mai 2015 à 09:11
Bonjour,
Je suis en train de préparer la gestion de plusieurs entrepôts. Pour cela chaque entrepôt aura un poids du jour différent.
Entrepot lens => tableau poids du jour lens
Entrepots X => tableau poids du jour X ...
Et cela pour 4 entrepots différents. Cela est-il possible ?
merci
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
11 mai 2015 à 11:42
Bonjour,

Oui, si lens correspond a ex:730 et ainsi de suite
0
Kivanc Messages postés 390 Date d'inscription jeudi 11 septembre 2014 Statut Membre Dernière intervention 13 août 2020
13 mai 2015 à 09:38
Bonjour,

Je vais ré-expliquer ma demande plus précisément.
4 entrepôts devraient être à gérer dans le même cadencier. Dans l'onglet paramètres, il y aurait donc 8 tableaux « poids des jours » au lieu des 2 actuels. 2 par entrepôt (semaine normale et semaine avec jour férié). Il faut donc que la macro pour chaque article associe son numéro d'entrepôt (dispo sur une colonne du cadencier) au tableau du poids du jour correspondant.
Est-ce possible ? Voici la macro avec les tableaux des poids des jours : https://www.cjoint.com/c/EEnj1dKPUD9

Merci par avance
0