Salut à tous,
J'ai cherché par tous les moyens sans suite favorable.
J'ai un fichier excel sous office 2010 avec un tableau. Chaque fois que je dois intervenir sur ce fichier un calcul automatique se lance ralentissant ainsi tout traitement.
je joins ici le fichier en l'état à toutes fins utiles. Existe til un moyen de contourner ce calcul ? ou trouver vous quelque chose de particulier sur le fichier à corriger ?
Merci pour votre aide.....
Pour ajouter/modifier/supprimer un article, il y aurait tout ce qu'il faut.
Pour une ligne de booking il faudrait un CLs et un CAs pour ce tableau là.
Attention toujours à ce qu'une ComboBox ne soit pas prise en charge en même temps par deux CLs. Pour quelqu'un j'avait fait mettres les infos spécifiques du tableau à mettre à jour dans un cadre (Frame) et je changeais le CLs actif à l'entrée et à la sortie de ce Frame, ce qui permettait de faire gérer une même ComboBox par les deux, mais pas en même temps. Dans d'autres je constituai un Dictionary de code articles pour pouvoir charger un article d'après ce code qu'une ComboBox était déjà réservée à sa recherche ailleurs que dans la base articles.
Non, ils se mettent dans la UserForm_Initialize, au coté des CLsA.Add
Possible, mais pas sûr, qu'ils n'ait aucun intérêt pour autre chose que des CLs et CAs qui prendraient enfin en charge le tableau à mettre à jour et non seulement d'autres, pour faciliter des rassemblements de données en tableaux annexes, éventuellement nécessaires aussi, mais secondaires.
Non ils se mettent dans la UserForm_Initialize, au coté des CLsA.Add
Possible, mais pas sûr, qu'ils n'ait aucun intéreêt pour autre chose que des CLs et CAs Equi prendraient enfin en charge le tableau à mettrter à jour et non des tableat
Private Sub CLsA_Résultat(Lignes() As Long)
LCouA = Lignes(1)
TVLA = CLsA.Lignes(LCouA).Range.Value
CAsA.ValeursDepuis TVLA
End Sub
Implique que les contrôles à garnir depuis la base Articles (autres que les ComboBox déjà spécifiées à CLsA) aient été spécifiés par des CAsA.Add dans la Sub UserForm_Initialize. Pratiquement tout se définit dans celle-ci.
Attention ! Il y a quelque chose qui ne peut pas marcher :
La Cbx_dénomination ne peut en aucun cas être prise en charge à la fois par CLsA et par CLsB. Il faut choisir: soit elle n'est prise en charge que par un seul des deux, soit il faut s'arranger pour que les objets ComboBoxLiées ne soient pas actifs en même temps.
(ils ont des méthodes Stopper et Réactiver)
Au pire vous mettez deux OptionButton pour indiquer dans quel tableau vous voulez que sa liste soit puisée et où la recherche soit effecuée.
Attention, quand il y a plusieurs ComboBoxLiées utilisés, une certaine ComboBox ne doit en principe être prise en charge que par un seul d'entre eux. Sinon ça complique sérieusement, mais ce n'est pas complètement insurmontable.
Ce n'est pas tant la programmation que ça complique déjà pas mal, si on veut quand même le faire, c'est surtout votre analyse du fonctionnement logique voulu de l'application qui doit être menée avec une extrême rigueur. Vous savez bien qu'on ne peut attribuer qu'une seule liste à une ComboBox, non ? Comment voudriez vous que plusieurs CLs la prenant en charge simultanément, se basant sur des tableaux différents, puissent se mettre d'accord sur cette liste ?
C'est à vous de décider depuis quelle base cette liste doit établie selon les circonstances !
Bonsoir.
Je vous avais pourtant déjà prévenu de ce que je vous disais au poste précédent :Ce n'est pas tant la programmation que ça complique déjà pas mal, si on veut quand même le faire, c'est surtout votre analyse du fonctionnement logique voulu de l'application qui doit être menée avec une extrême rigueur. Vous savez bien qu'on ne peut attribuer qu'une seule liste à une ComboBox, non ? Comment voudriez vous que plusieurs CLs la prenant en charge simultanément, se basant sur des tableaux différents, puissent se mettre d'accord sur cette liste ?
C'est à vous de décider depuis quelle base cette liste doit établie selon les circonstances !
Bonjour mon cher DRANREB,
Veuilles trouver ci-joint mon projet avec mes derniers efforts, je pense qu'il me reste maintenant comment faire les modifications à partir des userformes. Merci.
Il n'y a pas les feuilles contenant les tableaux, alors je ne peux pas tester.
Typiquement, s'il y a un CLsX et un CAsX pour le tableau à mettre à jour, la procédure du CommandButton de validation, c'est :
VB:
Private Sub CBnValider_Click()
CAsX.ValeursVers TVLX
If LCouX = 0 Then
CLsX.ValeursVers TVLX
CLsX.Lignes.Add.Range.Value = TVLX
CLsX.Actualiser
Else
CLsX.Lignes(LCouX).Range.Value = TVLX
End If
End Sub
Il n'y a pas les feuilles contenant les tableaux, alors je ne peux pas tester.
Typiquement, s'il y a un CLsX et un CAsX pour le tableau à mettre à jour, la procédure du CommandButton de validation, c'est :
VB:
Private Sub CBnValider_Click()
CAsX.ValeursVers TVLX
If LCouX = 0 Then
CLsX.ValeursVers TVLX
CLsX.Lignes.Add.Range.Value = TVLX
CLsX.Actualiser
Else
CLsX.Lignes(LCou).Range.Value = TVLX
End If
End Sub
La méthode ValeursDepuis tombe sur une incompatibilité de type en essayant d'affecter à la txt_qte_st_lot une valeur d'erreur de la colonne 12 du tableau.
La méthode ValeursDepuis tombe sur une incompatibilité de type en essayant d'affecter à la txt_qte_st_lot une valeur d'erreur de la colonne 12 du tableau.
C'est peut être seulement chez moi. J'ai une erreur #REF! dans toute la la colonne "Qté en stock/lot"
formule =SOMME.SI.ENS('C:\Users\Luck\AppData\Local\Temp\GESTION STOCK_PHQ_ABT(ss).xlsm'!Tableau5[Quantité entrée/sortie];'C:\Users\Luck\AppData\Local\Temp\GESTION STOCK_PHQ_ABT(ss).xlsm'!Tableau5[Réf. Interne];[@[Réf. Interne]];'C:\Users\Luck\AppData\Local\Temp\GESTION STOCK_PHQ_ABT(ss).xlsm'!Tableau5[Nr article];[@[Nr article]];'C:\Users\Luck\AppData\Local\Temp\GESTION STOCK_PHQ_ABT(ss).xlsm'!Tableau5[Sortie];"Entrée")-SOMME.SI.ENS('C:\Users\Luck\AppData\Local\Temp\GESTION STOCK_PHQ_ABT(ss).xlsm'!Tableau5[Quantité entrée/sortie];'C:\Users\Luck\AppData\Local\Temp\GESTION STOCK_PHQ_ABT(ss).xlsm'!Tableau5[Réf. Interne];[@[Réf. Interne]];'C:\Users\Luck\AppData\Local\Temp\GESTION STOCK_PHQ_ABT(ss).xlsm'!Tableau5[Nr article];[@[Nr article]];'C:\Users\Luck\AppData\Local\Temp\GESTION
C'est peut être seulement chez moi. J'ai une erreur #REF! dans toute la la colonne "Qté en stock/lot"
formule =SOMME.SI.ENS('C:\Users\Luck\AppData\Local\Temp\GESTION STOCK_PHQ_ABT(ss).xlsm'!Tableau5[Quantité entrée/sortie];'C:\Users\Luck\AppData\Local\Temp\GESTION STOCK_PHQ_ABT(ss).xlsm'!Tableau5[Réf. Interne];[@[Réf. Interne]];'C:\Users\Luck\AppData\Local\Temp\GESTION STOCK_PHQ_ABT(ss).xlsm'!Tableau5[Nr article];[@[Nr article]];'C:\Users\Luck\AppData\Local\Temp\GESTION STOCK_PHQ_ABT(ss).xlsm'!Tableau5[Sortie];"Entrée")-SOMME.SI.ENS('C:\Users\Luck\AppData\Local\Temp\GESTION STOCK_PHQ_ABT(ss).xlsm'!Tableau5[Quantité entrée/sortie];'C:\Users\Luck\AppData\Local\Temp\GESTION STOCK_PHQ_ABT(ss).xlsm'!Tableau5[Réf. Interne];[@[Réf. Interne]];'C:\Users\Luck\AppData\Local\Temp\GESTION STOCK_PHQ_ABT(ss).xlsm'!Tableau5[Nr article];[@[Nr article]];'C:\Users\Luck\AppData\Local\Temp\GESTION
Merci .... maintenant pour faire des modifications ou une suppression je passe par le formulaire excel....(cliques sur le bouton modifier de l'userform et tu remarqueras). n'est t-il pas possible de modifier directement par les clsa et casa de l'userform ?
Pour ajouter/modifier/supprimer un article, il y aurait tout ce qu'il faut.
Pour une ligne de booking il faudrait un CLs et un CAs pour ce tableau là.
Attention toujours à ce qu'une ComboBox ne soit pas prise en charge en même temps par deux CLs. Pour quelqu'un j'avait fait mettres les infos spécifiques du tableau à mettre à jour dans un cadre (Frame) et je changeais le CLs actif à l'entrée et à la sortie de ce Frame, ce qui permettait de faire gérer une même ComboBox par les deux, mais pas en même temps. Dans d'autres je constituai un Dictionary de code articles pour pouvoir charger un article d'après ce code qu'une ComboBox était déjà réservée à sa recherche ailleurs que dans la base articles.