Ajout d'un bouton pour récupérer données d'un fichier externe
Kivanc
Messages postés
390
Date d'inscription
Statut
Membre
Dernière intervention
-
Kivanc Messages postés 390 Date d'inscription Statut Membre Dernière intervention -
Kivanc Messages postés 390 Date d'inscription Statut Membre Dernière intervention -
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 :
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.
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:
- Ajout d'un bouton pour récupérer données d'un fichier externe
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier bin - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
- Fichier rar - Guide
305 réponses
Merci
Comment cela va être possible ?
Actuellement le poids des jours ne dépend pas du numéro d'entrepôt ? il faut donc tout reprendre ?
Comment cela va être possible ?
Actuellement le poids des jours ne dépend pas du numéro d'entrepôt ? il faut donc tout reprendre ?
Re,
1/ nommer les plages par entrepot significativement pour pourvoir faire de un seul code pour tous les entrepots
2/ 'Fonction qui calcule la prévision
c'est la qu'il faut faire les modifs et passer le numero de depot a cette fonction dans la procedure
c'est tout cd que je vois pour l'instant
1/ nommer les plages par entrepot significativement pour pourvoir faire de un seul code pour tous les entrepots
2/ 'Fonction qui calcule la prévision
Function Calcul_Prevision(
c'est la qu'il faut faire les modifs et passer le numero de depot a cette fonction dans la procedure
Sub MaJ_Cadencier_Prevision(MFM As Worksheet)
c'est tout cd que je vois pour l'instant
Re,
Pour le nommage des plages, prenez les noms des plages du fichier
macro_ab_lens_0405.xlsm, onglet parametre et vous ajoutez la numero d'entrepot ex: Poids devient Poids_723, Poids_523,Poids_374,Poids_553
Pour le nommage des plages, prenez les noms des plages du fichier
macro_ab_lens_0405.xlsm, onglet parametre et vous ajoutez la numero d'entrepot ex: Poids devient Poids_723, Poids_523,Poids_374,Poids_553
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Voici la macro avec les plages nommées : https://www.cjoint.com/c/EEnpUVvJkP5
Logiquement les plages Jours et Jours_feries sont les mêmes pour tous les tableaux...
Je ne vois pas ce qu'il faut modifier dans la fonction calcul prevision ni dans Sub_Maj_Cadencier ??
Logiquement les plages Jours et Jours_feries sont les mêmes pour tous les tableaux...
Je ne vois pas ce qu'il faut modifier dans la fonction calcul prevision ni dans Sub_Maj_Cadencier ??
Re,
Dans Mod_MAJ :
If Jour_Ferie = True Then
Poids = Application.WorksheetFunction.Index(MFMP.Range("Poids_jours_feries"), Application.WorksheetFunction.Match(Jour, MFMP.Range("Jours_feries"), 0), Application.WorksheetFunction.Match("Poids", MFMP.Range("Poids_ferie"), 0))
'Poids = 2
Else
Poids = Application.WorksheetFunction.Index(MFMP.Range("Poids_jours"), Application.WorksheetFunction.Match(Jour, MFMP.Range("Jours"), 0), Application.WorksheetFunction.Match("Poids", MFMP.Range("Poids"), 0))
'Poids = 3
End If
Puis
Sub test()
Jour = Weekday(Date) ...
Un if par entrepot ??
Dans Mod_MAJ :
If Jour_Ferie = True Then
Poids = Application.WorksheetFunction.Index(MFMP.Range("Poids_jours_feries"), Application.WorksheetFunction.Match(Jour, MFMP.Range("Jours_feries"), 0), Application.WorksheetFunction.Match("Poids", MFMP.Range("Poids_ferie"), 0))
'Poids = 2
Else
Poids = Application.WorksheetFunction.Index(MFMP.Range("Poids_jours"), Application.WorksheetFunction.Match(Jour, MFMP.Range("Jours"), 0), Application.WorksheetFunction.Match("Poids", MFMP.Range("Poids"), 0))
'Poids = 3
End If
Puis
Sub test()
Jour = Weekday(Date) ...
Un if par entrepot ??
Re,
je ne vois pas sinon ????
lignes modifiees:
'------------------------------
'
je ne vois pas sinon ????
lignes modifiees:
Sub MaJ_Cadencier_Prevision(MFM As Worksheet) Dim SDepot As String SDepot = CStr(Depot) Prevision = Calcul_Prevision(MFMP, MFC, Ligne_Ref, Col_Prev + (IPNCJ), Jour_Ferie, Nombre_Colonne_Jour, Somme_Ref, SDepot) '[V6]
'------------------------------
'
Fonction qui calcule la prévision Function Calcul_Prevision(MFMP As Worksheet, MFC As Worksheet, Ligne_Ref As Long, Colonne_Ref As Long, _ Jour_Ferie As Boolean, Nombre_Colonne_Jour As Integer, Somme_Ref As Integer, Depot As String) If Jour_Ferie = True Then Poids = Application.WorksheetFunction.Index(MFMP.Range("Poids_jours_feries_" & Depot), Application.WorksheetFunction.Match(Jour, MFMP.Range("Jours_feries"), 0), Application.WorksheetFunction.Match("Poids_" & Depot, MFMP.Range("Poids_ferie_" & Depot), 0)) Else Poids = Application.WorksheetFunction.Index(MFMP.Range("Poids_jours_" & Depot), Application.WorksheetFunction.Match(Jour, MFMP.Range("Jours"), 0), Application.WorksheetFunction.Match("Poids" & Depot, MFMP.Range("Poids_" & Depot), 0)) End If
merci
j'ai changé les lignes modifiées mais j'ai une erreur de compliation.
voici mon fichier : https://www.cjoint.com/c/EEnsu54Zqzc
est-ce que ça marche de votre côté.
Je ne comprends pas vous déclarez une nouvelle variable seulement ?? on n'indique pas les numéro d'entrepot dans le code ? ni chacune des plages ??
j'ai changé les lignes modifiées mais j'ai une erreur de compliation.
voici mon fichier : https://www.cjoint.com/c/EEnsu54Zqzc
est-ce que ça marche de votre côté.
Je ne comprends pas vous déclarez une nouvelle variable seulement ?? on n'indique pas les numéro d'entrepot dans le code ? ni chacune des plages ??
Bonjour,
j'ai une erreur de compliation.
Faites TOUTES LES MODIFS
il y a une erreur, un Depot en trop ici:
mais ce n'est pas dans ce que vous avez mis a dispo puisque modifs pas faites
code de remplacement
on n'indique pas les numéro d'entrepot dans le code ? ni chacune des plages ?? Faites les modifs et lisez le code vous comprendrez (peut-etre)
j'ai une erreur de compliation.
Faites TOUTES LES MODIFS
il y a une erreur, un Depot en trop ici:
WorksheetFunction.Match("Poids" & Depot, MFMP.Range("Poids_" & Depot), 0)
mais ce n'est pas dans ce que vous avez mis a dispo puisque modifs pas faites
code de remplacement
If Jour_Ferie = True Then Poids = Application.WorksheetFunction.Index(MFMP.Range("Poids_jours_feries_" & Depot), _ Application.WorksheetFunction.Match(Jour, MFMP.Range("Jours_feries"), 0), _ Application.WorksheetFunction.Match("Poids", MFMP.Range("Poids_ferie_" & Depot), 0)) Else Poids = Application.WorksheetFunction.Index(MFMP.Range("Poids_jours_" & Depot), _ Application.WorksheetFunction.Match(Jour, MFMP.Range("Jours"), 0), _ Application.WorksheetFunction.Match("Poids", MFMP.Range("Poids_" & Depot), 0)) End If
on n'indique pas les numéro d'entrepot dans le code ? ni chacune des plages ?? Faites les modifs et lisez le code vous comprendrez (peut-etre)
Bonjour,
J'ai bien modifié le code demandé. Par contre il y'a une erreur : variable non reconnue ? pourtant elle est bin déclarée :
voici mon fichier : https://www.cjoint.com/c/EEpjKGgnD4I
merci
J'ai bien modifié le code demandé. Par contre il y'a une erreur : variable non reconnue ? pourtant elle est bin déclarée :
Dim Depot As String 'Integer
voici mon fichier : https://www.cjoint.com/c/EEpjKGgnD4I
merci
Bonjour,
J'ai repris mon ancienne macro et refait les dernières modif que vous avez indiqués. Le bouton « mettre à jour les entrées » semble OK mais celui des stocks et sorties : erreur 400...
Pouvez-voir svp ? voici le fichier : https://www.cjoint.com/c/EEsjFaCHDfk
Merci par avance
J'ai repris mon ancienne macro et refait les dernières modif que vous avez indiqués. Le bouton « mettre à jour les entrées » semble OK mais celui des stocks et sorties : erreur 400...
Pouvez-voir svp ? voici le fichier : https://www.cjoint.com/c/EEsjFaCHDfk
Merci par avance
Bonjour,
Merci.
Je viens de remettre les « _ » (je pensais que c'était une erreur de frappe). A quoi servent -ils ?
Par contre j'ai enlevé ceux devant « _ Application.WorksheetFunction.Match(Jou » car il y'a erreur de caractère.
Toujours erreur 400 en ayant rajouté les « _ » pour les noms de plages comme dans votre code.
Merci.
Je viens de remettre les « _ » (je pensais que c'était une erreur de frappe). A quoi servent -ils ?
Par contre j'ai enlevé ceux devant « _ Application.WorksheetFunction.Match(Jou » car il y'a erreur de caractère.
Toujours erreur 400 en ayant rajouté les « _ » pour les noms de plages comme dans votre code.
Re,
reprenez ce code:
reprenez ce code:
If Jour_Ferie = True Then Poids = Application.WorksheetFunction.Index(MFMP.Range("Poids_jours_feries_" & Depot), _ Application.WorksheetFunction.Match(Jour, MFMP.Range("Jours_feries"), 0), _ Application.WorksheetFunction.Match("Poids", MFMP.Range("Poids_ferie_" & Depot), 0)) Else Poids = Application.WorksheetFunction.Index(MFMP.Range("Poids_jours_" & Depot), _ Application.WorksheetFunction.Match(Jour, MFMP.Range("Jours"), 0), _ Application.WorksheetFunction.Match("Poids", MFMP.Range("Poids_" & Depot), 0)) End If
Merci.
mais j'ai toujours l'erreur. Je vous mets le fichier à dispo pcq je ne sais plius comment expliquer...
https://www.cjoint.com/c/EEsm0ae2mKj
mais j'ai toujours l'erreur. Je vous mets le fichier à dispo pcq je ne sais plius comment expliquer...
https://www.cjoint.com/c/EEsm0ae2mKj
Merci à vous.
J'ai une petite demande assez basique je pense. Je voudrai dans le fichier cadencier ajouter 2 boutons "ouverture" et "fermeture". Le bouton ouverture permet d'effacer le filtre souvent présent dans la colonne "actif" et "analyse" et d'ouvrir les croix qui sont au dessus des colonnes A B... et fermeture de refermer les croix..
merci
J'ai une petite demande assez basique je pense. Je voudrai dans le fichier cadencier ajouter 2 boutons "ouverture" et "fermeture". Le bouton ouverture permet d'effacer le filtre souvent présent dans la colonne "actif" et "analyse" et d'ouvrir les croix qui sont au dessus des colonnes A B... et fermeture de refermer les croix..
merci
Re,
degroupage total des colonnes et effacement filtre (pas suppression) et groupement total colonnes:
code des boutons (peux pas joindre le fichier: probleme ci-joint)
enregistrez le fichier en .xlsm:
faudrait qu'il ne ferme que les groupés Je regarde si faisable
A+
degroupage total des colonnes et effacement filtre (pas suppression) et groupement total colonnes:
code des boutons (peux pas joindre le fichier: probleme ci-joint)
enregistrez le fichier en .xlsm:
Private Sub Cmd_Fermeture_Click() 'groupe colonnes ActiveSheet.Outline.ShowLevels RowLevels:=0, columnlevels:=1 End Sub Private Sub Cmd_Ouverture_Click() On Error Resume Next 'enleve filtre ShowAllData 'degroupe colonnes ActiveSheet.Outline.ShowLevels RowLevels:=0, columnlevels:=3 End Sub
faudrait qu'il ne ferme que les groupés Je regarde si faisable
A+
Voici mon cadencier avec les 2 boutons :https://www.cjoint.com/c/EEtsUE0M8uh
je ne sais pas si vous avez réussi à mieux les positionner que ce soit plus ergonomique. ?
les bouton ouverture tourne mais il ne m'ouvre que les filtres et pas les groupés (tout en haut du cadencier au dessus des 1ères colonnes)
je ne sais pas si vous avez réussi à mieux les positionner que ce soit plus ergonomique. ?
les bouton ouverture tourne mais il ne m'ouvre que les filtres et pas les groupés (tout en haut du cadencier au dessus des 1ères colonnes)
Re,
je peux recuperer un fichier, mais pas en envoyer
mais il ne m'ouvre que les filtres Faites attention a ce que vous faites, la ligne de code pour effacer les filtres est en bout du commentaire de showallData
regardez ici: f894009 - 19 mai 2015 à 17:45
J'ai trouve pour mettre mes plus et moins (groupes colonnes), un bon bout de code
je peux recuperer un fichier, mais pas en envoyer
mais il ne m'ouvre que les filtres Faites attention a ce que vous faites, la ligne de code pour effacer les filtres est en bout du commentaire de showallData
regardez ici: f894009 - 19 mai 2015 à 17:45
J'ai trouve pour mettre mes plus et moins (groupes colonnes), un bon bout de code
Bonjour,
J'ai trouve pour mettre mes plus et moins (groupes colonnes), un bon bout de code
déjà inclus dans le code que vous m'avez transmis ?
merci
J'ai trouve pour mettre mes plus et moins (groupes colonnes), un bon bout de code
déjà inclus dans le code que vous m'avez transmis ?
merci
Bonjour
J'ai un grand problème. Je n'arrive pas à créer de bouton. Aparavant j'avais simplement copier celui de a macro et j'ai l'impression que le code se mélange.
Voici un cadencier pour lequel j'ai voulu créer un bouton et code propres. Mais le bouton ne marche pas. Pouvez vous svp m'indiquer les étapes ? merci beaucoup
https://www.cjoint.com/c/EEvluVWzNvi
J'ai un grand problème. Je n'arrive pas à créer de bouton. Aparavant j'avais simplement copier celui de a macro et j'ai l'impression que le code se mélange.
Voici un cadencier pour lequel j'ai voulu créer un bouton et code propres. Mais le bouton ne marche pas. Pouvez vous svp m'indiquer les étapes ? merci beaucoup
https://www.cjoint.com/c/EEvluVWzNvi
Bonjour,
Pas mettre le bouton sur des colonnes qui peuvent etre masquees
https://www.cjoint.com/c/EEvmmktndbG
Avez-vous toujours besoin du regroupement colonnes a l'origine sur clic bouton fermeture ou fermeture fichier ????
Pas mettre le bouton sur des colonnes qui peuvent etre masquees
https://www.cjoint.com/c/EEvmmktndbG
Avez-vous toujours besoin du regroupement colonnes a l'origine sur clic bouton fermeture ou fermeture fichier ????
Merci !!!
avez vous réussi pour les colonnes comme elles étaient à l'origine ?
Si oui pouvezvous me faire les modif sur ce fichier dernière version SVP : https://www.cjoint.com/c/EEvppoIxgzf car je n'arrive jamais à refaire ce que vous faites. J'ai une erreur de compilation à chaque fois au niveau de show all data
les boutons peuvent etre à partir de colonne I car en général le premier groupe esr toujours fermé.
avez vous réussi pour les colonnes comme elles étaient à l'origine ?
Si oui pouvezvous me faire les modif sur ce fichier dernière version SVP : https://www.cjoint.com/c/EEvppoIxgzf car je n'arrive jamais à refaire ce que vous faites. J'ai une erreur de compilation à chaque fois au niveau de show all data
les boutons peuvent etre à partir de colonne I car en général le premier groupe esr toujours fermé.
Re,
car je n'arrive jamais à refaire ce que vous faites Le copier/coller ca marche pas mal
avez vous réussi pour les colonnes comme.... Pas encore commence le code, car ma premiere idee ne cadrait pas avec les niveaux de groupe, donc j'ai revu comment faire. Mais maintenant ma premiere idee pourrait aller puisque vous avez un seul niveau de groupe !!!!!! C'est pas la meme chose pour tus les fichier cadencier ????????????????????????????????
car je n'arrive jamais à refaire ce que vous faites Le copier/coller ca marche pas mal
avez vous réussi pour les colonnes comme.... Pas encore commence le code, car ma premiere idee ne cadrait pas avec les niveaux de groupe, donc j'ai revu comment faire. Mais maintenant ma premiere idee pourrait aller puisque vous avez un seul niveau de groupe !!!!!! C'est pas la meme chose pour tus les fichier cadencier ????????????????????????????????
J'ai ajouté : ActiveSheet.ShowAllData et mon premierbouton marche maintenant... savez vous pourquoi ?
oui ce sont les même cadencier . un seul niveaiu de groupe ? cad ?
oui ce sont les même cadencier . un seul niveaiu de groupe ? cad ?