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
Autre chose, le cadencier contient quelques formules de calcul comme je vous l'avais expliqué. Dans le cas d'un jour férié, la prévision de vente (Colonne PREV) est à 0. La colonne A contient elle une formule dépendant de cette PREV, le calcul est donc faussé dès lors que PREV=0.
Voici la formule de base : dans A :
=SI((HT5*100/HQ5>100);2;SI((HT5*100/HQ5<30);1;0))
Afin d'ignorer le 0, j'ai changé la formule pour : =SI(HQ5=0;"";SI((HT5*100/HQ5>100);2;SI((HT5*100/HQ5<30);1;0)))
Cela fonctionne mais je vais devoir le faire manuellement pour chaque colonne A. N'y a-t-il pas un moyen d'ignorer le 0 pour toutes les colonnes PREV
De plus, parfois certains utilisateurs du cadencier entrent une lettre dans la colonne Vente par erreur. Cela fausse également les calculs et lors du lancement de la macro il y'a parfois une erreur incompatibilité de type. L'idée serait donc de n'autoriser que des valeurs numériques ce que j'ai fait grâce a validation de données. Mais tout comme pour mon problème d'A et PREV je vais devoir le faire pour toutes les colonnes ventes. Y'a-t-il un moyen d'automatiser pour ces 2 cas ou est-ce qu'il vaut mieux que je modifie les colonnes de chaque cadencier ?
Merci
Voici la formule de base : dans A :
=SI((HT5*100/HQ5>100);2;SI((HT5*100/HQ5<30);1;0))
Afin d'ignorer le 0, j'ai changé la formule pour : =SI(HQ5=0;"";SI((HT5*100/HQ5>100);2;SI((HT5*100/HQ5<30);1;0)))
Cela fonctionne mais je vais devoir le faire manuellement pour chaque colonne A. N'y a-t-il pas un moyen d'ignorer le 0 pour toutes les colonnes PREV
De plus, parfois certains utilisateurs du cadencier entrent une lettre dans la colonne Vente par erreur. Cela fausse également les calculs et lors du lancement de la macro il y'a parfois une erreur incompatibilité de type. L'idée serait donc de n'autoriser que des valeurs numériques ce que j'ai fait grâce a validation de données. Mais tout comme pour mon problème d'A et PREV je vais devoir le faire pour toutes les colonnes ventes. Y'a-t-il un moyen d'automatiser pour ces 2 cas ou est-ce qu'il vaut mieux que je modifie les colonnes de chaque cadencier ?
Merci
Re,
J'ai bien enlevé le dim lc en trop.
Pour mise a jour ventes : toujorus une erreur incompatibilité de type mais les colonnes sont mises jour. avez-vous cette erreur ?
Pour mise a jour cmd : OK mais trèèèès long. et pour vous?
merci
J'ai bien enlevé le dim lc en trop.
Pour mise a jour ventes : toujorus une erreur incompatibilité de type mais les colonnes sont mises jour. avez-vous cette erreur ?
Pour mise a jour cmd : OK mais trèèèès long. et pour vous?
merci
Autant pour moi, je vous ai beaucoup embêté ... tout marche et ça n'est pas long. MERCI INFINIMENT !!
J'aurai encore une demande svp : pouvez-vous m'expliquez ce que vous avez fait à la fois pour la création du nouveau bouton mais aussi pour la gestion de plusieurs entrepôts ? Afin que je puisse être à peu près autonome...
Une dernière chose assez embêtante : après que la mise à jour du cadencier soit faite ; dans la macro de base le fichier cadencier s'affichait automatiquement t l'on pouvait voir direcetement les valeurs mises à jour. Avec les deux nouveaux boutons c'est soit la page paramètre de la macro soit le fichier alim qui s'affiche. Pourquoi ?
merci
J'aurai encore une demande svp : pouvez-vous m'expliquez ce que vous avez fait à la fois pour la création du nouveau bouton mais aussi pour la gestion de plusieurs entrepôts ? Afin que je puisse être à peu près autonome...
Une dernière chose assez embêtante : après que la mise à jour du cadencier soit faite ; dans la macro de base le fichier cadencier s'affichait automatiquement t l'on pouvait voir direcetement les valeurs mises à jour. Avec les deux nouveaux boutons c'est soit la page paramètre de la macro soit le fichier alim qui s'affiche. Pourquoi ?
merci
Re,
fichier modifie pour affichage cadencier sur les deux mises a jour
https://www.cjoint.com/c/EDCud1cEGTZ
Demain pour les explications
A demain
fichier modifie pour affichage cadencier sur les deux mises a jour
https://www.cjoint.com/c/EDCud1cEGTZ
Demain pour les explications
A demain
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
J'ai du changé mon fichier pour les entrées: voici le fichier : https://www.cjoint.com/c/EDDj1umkSLb
et la dernière macro : https://www.cjoint.com/c/EDDj2ZhehlO
En mettant à jour les entrées c'est OK mais j'ai une erreur "incompatibilité de type"...
De plus merci à la fin le cadencier s'affiche mais en retournant sur la macro on se retrouve sur l'onglet paramètres.
merci
J'ai du changé mon fichier pour les entrées: voici le fichier : https://www.cjoint.com/c/EDDj1umkSLb
et la dernière macro : https://www.cjoint.com/c/EDDj2ZhehlO
En mettant à jour les entrées c'est OK mais j'ai une erreur "incompatibilité de type"...
De plus merci à la fin le cadencier s'affiche mais en retournant sur la macro on se retrouve sur l'onglet paramètres.
merci
Bonjour,
En mettant à jour les entrées c'est OK mais j'ai une erreur "incompatibilité de type"... Tout a fait normal, vous avez change de colonne pour code entrepot mais dans le code c'est la colonne A qui est testee pour le nombre de lignes (boucle commande) et il y a une cellule en plus avec "Rapport entier". J'ai pris la colonne du code entrepot, mais la surprise des cellules avec un espace en 655 et 656 !!!!
La colonne A (Chrono) aura-t-elle toujours ce "Rapport entier" a la fin et sans cellules vides entre ??????????
En mettant à jour les entrées c'est OK mais j'ai une erreur "incompatibilité de type"... Tout a fait normal, vous avez change de colonne pour code entrepot mais dans le code c'est la colonne A qui est testee pour le nombre de lignes (boucle commande) et il y a une cellule en plus avec "Rapport entier". J'ai pris la colonne du code entrepot, mais la surprise des cellules avec un espace en 655 et 656 !!!!
La colonne A (Chrono) aura-t-elle toujours ce "Rapport entier" a la fin et sans cellules vides entre ??????????
Bonjour,
Elle aura cette forme car c'est une extraction d'une requête.au début j'avais manuellement ajouté la colonne commentaires et code entrepot. Maintenant c'est inclus dans l'extraction mais à la fin.
Oui il y aura toujours le rapport à la fin. Donc l'emplacement des colonnes de ce fichier est important ? je pensais que le code ne cherchait que le nom des colonnes..
Elle aura cette forme car c'est une extraction d'une requête.au début j'avais manuellement ajouté la colonne commentaires et code entrepot. Maintenant c'est inclus dans l'extraction mais à la fin.
Oui il y aura toujours le rapport à la fin. Donc l'emplacement des colonnes de ce fichier est important ? je pensais que le code ne cherchait que le nom des colonnes..
Re,
je dis n'importe quoi... DESOLEE !!! C'est bon j'ai enlevé le rapport et c'est Ok plus d'erreur même en ayant code entrepot à la fin.
merci encore
je dis n'importe quoi... DESOLEE !!! C'est bon j'ai enlevé le rapport et c'est Ok plus d'erreur même en ayant code entrepot à la fin.
merci encore
Re,
je pensais que le code ne cherchait que le nom des colonnes.. Ben non, ce qui est dedans ou pas compte. Je pourrais faire autrement pour le deplacement dans la "colonne" entrepot-IFLS mais ca fait rajouter des test a chaque tour de la boucle
et
Elle aura cette forme car c'est une extraction d'une requête c'est ce qui fait les caracteres parasites dans les cellules supposees vides en fin de colonnes.
je pensais que le code ne cherchait que le nom des colonnes.. Ben non, ce qui est dedans ou pas compte. Je pourrais faire autrement pour le deplacement dans la "colonne" entrepot-IFLS mais ca fait rajouter des test a chaque tour de la boucle
et
Elle aura cette forme car c'est une extraction d'une requête c'est ce qui fait les caracteres parasites dans les cellules supposees vides en fin de colonnes.
Re,
J'etais en train de vous repondre entre temps, vu que je fais plusieurs choses simultanement, ca se telescope un peu. Bien si c'est ok, dites moi ce que vous voulez savoir sur les modif du fichier de base pour votre formation VBA
Il faudrait faire du "menage" dans les declarations de variables des deux macros
J'etais en train de vous repondre entre temps, vu que je fais plusieurs choses simultanement, ca se telescope un peu. Bien si c'est ok, dites moi ce que vous voulez savoir sur les modif du fichier de base pour votre formation VBA
Il faudrait faire du "menage" dans les declarations de variables des deux macros
Tout bouge assez souvent.
J'ai encore quelques améliorations à apporter à cette macro notamment 2 points majeurs.
Actuellement dans l'onglet « Paramètres », j'ai un seul tableau de poids des jours. Il pourrait être différent pour chaque entrepot. Donc lorsque j'aurai à gérer plusieurs entrepots il faudrait que la macro fasse correspondre chaque entrepot à son tableau...
Autre chose plus importante, le système d'alerte (que je n'arrive pas vraiment à trouver dans le code...) Actuellement l'alerte est calculée jusque J+3 il faudrait qu'elle le soit pour J+4, J+5 et J+6...
Donc je souhaiterai dans un premier temps comprendre comment vous avez fait les modif ? Avez-vous repris exactement la même façon que pour l'autre bouton ? j'ai vu que vous aviez créer de nouveaux modules ? Et il me semble que le module Morigo ne sert à rien ?? on pourrait le supprimer ? est-ce là qu'il faudrait faire du ménage ?
Aussi où avez-vous modifier pour qu'après que la macro ne se lance on se retrouve sur le cadencier ?
Ensuite dans le code je vois « code secteur »... est-ce que la colonne secteur est prise en compte ?
J'ai encore quelques améliorations à apporter à cette macro notamment 2 points majeurs.
Actuellement dans l'onglet « Paramètres », j'ai un seul tableau de poids des jours. Il pourrait être différent pour chaque entrepot. Donc lorsque j'aurai à gérer plusieurs entrepots il faudrait que la macro fasse correspondre chaque entrepot à son tableau...
Autre chose plus importante, le système d'alerte (que je n'arrive pas vraiment à trouver dans le code...) Actuellement l'alerte est calculée jusque J+3 il faudrait qu'elle le soit pour J+4, J+5 et J+6...
Donc je souhaiterai dans un premier temps comprendre comment vous avez fait les modif ? Avez-vous repris exactement la même façon que pour l'autre bouton ? j'ai vu que vous aviez créer de nouveaux modules ? Et il me semble que le module Morigo ne sert à rien ?? on pourrait le supprimer ? est-ce là qu'il faudrait faire du ménage ?
Aussi où avez-vous modifier pour qu'après que la macro ne se lance on se retrouve sur le cadencier ?
Ensuite dans le code je vois « code secteur »... est-ce que la colonne secteur est prise en compte ?
Re,
Actuellement dans l'onglet « Paramètres », Oui, c'est faisable
Actuellement l'alerte est calculée jusque J+3 Peut-etre, je n'ai pas regarde ceci (etait sense marcher). Je regarde la chose
Au fait, quelle alertes, y a deux sortes ???
Avez-vous repris exactement la même façon que pour l'autre bouton ? Oui, puisque, en general, je reprends la facon de programmer de la personne qui demande sauf si pas approprie a la demande ou si j'ai un codage plus "performant"
Aussi où avez-vous modifier pour qu'après que la macro ne se lance on se retrouve sur le cadencier ? a la fin des macro (il y avait deja cette ligne en commentaire un peu plus haut)
Ensuite dans le code je vois « code secteur »...
pour le code entrepot, je n'ai pas voulu changer le nom de la variable existante, mais maintenant que tout est presque "ficele", vous pouvez mettre ex: Depot_CMD et remplacer Secteur dans toutes les lignes
Cela fait aussi parti du "menage"
Actuellement dans l'onglet « Paramètres », Oui, c'est faisable
Actuellement l'alerte est calculée jusque J+3 Peut-etre, je n'ai pas regarde ceci (etait sense marcher). Je regarde la chose
Au fait, quelle alertes, y a deux sortes ???
Avez-vous repris exactement la même façon que pour l'autre bouton ? Oui, puisque, en general, je reprends la facon de programmer de la personne qui demande sauf si pas approprie a la demande ou si j'ai un codage plus "performant"
Aussi où avez-vous modifier pour qu'après que la macro ne se lance on se retrouve sur le cadencier ? a la fin des macro (il y avait deja cette ligne en commentaire un peu plus haut)
Application.Calculation = xlAutomatic MFC.Activate MsgBox "Le Cadencier a été mis à jour"
Ensuite dans le code je vois « code secteur »...
Secteur = MFMD.Cells(LigCommande, Col_DEPOT_Cmd)
pour le code entrepot, je n'ai pas voulu changer le nom de la variable existante, mais maintenant que tout est presque "ficele", vous pouvez mettre ex: Depot_CMD et remplacer Secteur dans toutes les lignes
Cela fait aussi parti du "menage"
Autre question: je souhaiterai arrondir à l'inférieur les prévisions. Or je vois 2 formules : une dans mOrigo et une dans mPrévisions. laquelle ?
Re,
regardez quelle code tourne avec le bouton mise a jour previsions cadencier
et
repondez a cette question:
Au fait, quelle alertes, y a deux sortes ???
regardez quelle code tourne avec le bouton mise a jour previsions cadencier
et
repondez a cette question:
Au fait, quelle alertes, y a deux sortes ???
Oui il y'a deux alertes.
Ma colonne Alerte dans le cadencier est calculée grâce au stock de la veille et de la prévision. A = STOCK Veille / Prévision veille
La macro calcule l'alerte en fonction de la sensibilité des articles (car un article sensible par ex tel que la banane par exemple peut rester 1 jour en entrepôt alors que la pomme de terre, solide, jusque 5 jours). Elle indique si le stock disponible sera trop important ou trop faible en fonction de la PREV de ventes. La cellule A se colore en jaune si le niveau de stock est trop important, en rouge si trop faible et reste blanche si OK. C'est cette alerte que je veux étendre à 6 jours.
La colonne PREV est la quantité prévisionnelle de sortie calculée par la macro chaque jour.
Somme (J-6 à J-1)/6* poids du jour
Si S-1/S-2 = 0,5 , la prévision est peu fiable alors PREV est entourée de rouge : ceci est la deuxième alerte.
Ma colonne Alerte dans le cadencier est calculée grâce au stock de la veille et de la prévision. A = STOCK Veille / Prévision veille
La macro calcule l'alerte en fonction de la sensibilité des articles (car un article sensible par ex tel que la banane par exemple peut rester 1 jour en entrepôt alors que la pomme de terre, solide, jusque 5 jours). Elle indique si le stock disponible sera trop important ou trop faible en fonction de la PREV de ventes. La cellule A se colore en jaune si le niveau de stock est trop important, en rouge si trop faible et reste blanche si OK. C'est cette alerte que je veux étendre à 6 jours.
La colonne PREV est la quantité prévisionnelle de sortie calculée par la macro chaque jour.
Somme (J-6 à J-1)/6* poids du jour
Si S-1/S-2 = 0,5 , la prévision est peu fiable alors PREV est entourée de rouge : ceci est la deuxième alerte.
Re,
Tout a fait Thiery mais:
Dans ce code il y a un bleme:
Tout a fait Thiery mais:
If (I_Prev = 2 Or I_Prev = 3) Then 'Alerte pour le stock J+2, J+3 'Format Anglais MFC.Cells(Ligne, Col_Prev + (IPNCJ) + 1).Formula = Alerte_Stock(MFMP, MFC, Ligne_Ref, Col_Prev + (IPNCJ), Col_Sensibilite) ElseIf (I_Prev = 1 Or I_Prev = 2) Then 'Alerte Tendance pour les prév J+1, J+2 If Alerte_Tendance(MFMP, MFC, Ligne_Ref, Colonne, Nombre_Colonne_Jour) Then 'changement du format de la cellule MFC.Cells(Ligne, Col_Prev + 3 + (I_Prev * Nombre_Colonne_Jour)).Borders.Weight = 4 'Epaisseur de la bordure MFC.Cells(Ligne, Col_Prev + 3 + (I_Prev * Nombre_Colonne_Jour)).Borders.Color = RGB(255, 0, 0) 'Couleur de la bordure : rouge End If End If
Dans ce code il y a un bleme:
I_Prev = 2n'est vu qu'une seule fois, pas dans les deux tests. Alors ??????????
euuh ??
car les deux alertes sont différentes ? l'une dépend de la sensibilité de l'article et du stock et l'autre de la prev ?
ou je n'ai pas compris ?
car les deux alertes sont différentes ? l'une dépend de la sensibilité de l'article et du stock et l'autre de la prev ?
ou je n'ai pas compris ?
Voici quelques explications que la personne ayant développée la macro avait laissé :
Dans alerte_stock
1. Pour récupérer la sensibilité de l'article
? Sensibilite = MFC.Cells(Ligne_Ref, Colonne_Sensibilite)
2. Pour récupérer le coef de marges inférieures et supérieures de stock
? Marge_Sup = Application.WorksheetFunction.Index(MFMP.Range("Parametre_sensibilite"), Application.WorksheetFunction.Match(Sensibilite, MFMP.Range("Sensibilite"), 0) + 1, Application.WorksheetFunction.Match("Marge Sup", MFMP.Range("Valeurs_stock_marges"), 0))
? Marge_Inf = Application.WorksheetFunction.Index(MFMP.Range("Parametre_sensibilite"), Application.WorksheetFunction.Match(Sensibilite, MFMP.Range("Sensibilite"), 0) + 1, Application.WorksheetFunction.Match("Marge Inf", MFMP.Range("Valeurs_stock_marges"), 0))
3. Construction de la formule
? Formule_Partie_1 = "=If((" & Split(Columns(Colonne_Ref).Address(ColumnAbsolute:=False), ":")(1) & Ligne_Ref & "*100/" & Split(Columns(Colonne_Ref - 3).Address(ColumnAbsolute:=False), ":")(1) & Ligne_Ref & ">" & Marge_Sup & "),2,"
? Formule_Partie_2 = "If((" & Split(Columns(Colonne_Ref).Address(ColumnAbsolute:=False), ":")(1) & Ligne_Ref & "*100/" & Split(Columns(Colonne_Ref - 3).Address(ColumnAbsolute:=False), ":")(1) & Ligne_Ref & "<" & Marge_Inf & "),1,0))"
Dans la fonction principale
4. Insertion de la formule dans la cellule
? MFC.Cells(Ligne, Col_Prev + (I_Prev * Nombre_Colonne_Jour) + 1).Formula = Alerte_Stock(MFMP, MFC, Ligne_Ref, Col_Prev + (I_Prev * Nombre_Colonne_Jour), Col_Sensibilite)
On peut donc voir dans le cadencier la formule dans les cellules alerte stock qui ont un conditionnal formatting sur la valeur renvoyée.
Je ne sais pas si c'est plus clair ?
Dans alerte_stock
1. Pour récupérer la sensibilité de l'article
? Sensibilite = MFC.Cells(Ligne_Ref, Colonne_Sensibilite)
2. Pour récupérer le coef de marges inférieures et supérieures de stock
? Marge_Sup = Application.WorksheetFunction.Index(MFMP.Range("Parametre_sensibilite"), Application.WorksheetFunction.Match(Sensibilite, MFMP.Range("Sensibilite"), 0) + 1, Application.WorksheetFunction.Match("Marge Sup", MFMP.Range("Valeurs_stock_marges"), 0))
? Marge_Inf = Application.WorksheetFunction.Index(MFMP.Range("Parametre_sensibilite"), Application.WorksheetFunction.Match(Sensibilite, MFMP.Range("Sensibilite"), 0) + 1, Application.WorksheetFunction.Match("Marge Inf", MFMP.Range("Valeurs_stock_marges"), 0))
3. Construction de la formule
? Formule_Partie_1 = "=If((" & Split(Columns(Colonne_Ref).Address(ColumnAbsolute:=False), ":")(1) & Ligne_Ref & "*100/" & Split(Columns(Colonne_Ref - 3).Address(ColumnAbsolute:=False), ":")(1) & Ligne_Ref & ">" & Marge_Sup & "),2,"
? Formule_Partie_2 = "If((" & Split(Columns(Colonne_Ref).Address(ColumnAbsolute:=False), ":")(1) & Ligne_Ref & "*100/" & Split(Columns(Colonne_Ref - 3).Address(ColumnAbsolute:=False), ":")(1) & Ligne_Ref & "<" & Marge_Inf & "),1,0))"
Dans la fonction principale
4. Insertion de la formule dans la cellule
? MFC.Cells(Ligne, Col_Prev + (I_Prev * Nombre_Colonne_Jour) + 1).Formula = Alerte_Stock(MFMP, MFC, Ligne_Ref, Col_Prev + (I_Prev * Nombre_Colonne_Jour), Col_Sensibilite)
On peut donc voir dans le cadencier la formule dans les cellules alerte stock qui ont un conditionnal formatting sur la valeur renvoyée.
Je ne sais pas si c'est plus clair ?