Modification d'un article : création d'une nouvelle ligne

Bonjour Arturo83,

Merci. Je commence à comprendre un peu Renuméroter.

Que faire pour Générer budget primitif dépenses bancaires dont le code est écrit mais qui ne s'exécute pas ? Je ne trouve pas la macro ajoutée Affichage_DM1

Bonjour,

Je pense avoir fait le nécessaire pour les dépenses bancaires, mais c'est un travail de fou, s'il faut faire la même chose pour chaque catégorie, on n'est pas prêt d'en voir l'issue. Sur la feuille "Accueil" voir les macros ajoutées ou modifiées rien que pour la catégorie "Bancaire", et il faut faire la même chose pour toutes les autres catégories, c'est pas gagné. Il suffit à chaque fois une copie de chacune de ces macros en changeant le nom de la catégorie.

Pour que vous vous fassiez une idée:

Cdlt

Re,

Vous avez un fichier incomplet. Chez moi, j'ai créé de nouveaux boutons de commande sur la feuille Accueil, toutes les procédures d'effacer et de générer pour budget primitif ont ét créés. Pour renuméroter tout ce qui est budget primitif, je suis en train de procéder à la création des macros concernées par des copier-coller avec changement de nom quand cela est nécessaire.

Pour renuméroter, regarder ce qui suit et donnez-moi, s'il vous plaît, votre avis sur mes commentaires, notamment pour t, v, +5, -20. Pour les R et les C, expliquez-moi car je n'ai pas trouvé à quoi cela correspond. Le R représenterait la colonne R du deuxième tableau structuré (Nature article) et le C la colonne C du premier tableau structuré (Nature article). Et les chiffres qui les accompagnent, à quoi correspondent-ils? Malgré ma nullité en déductions, je pense que celles-ci sont néanmoins correctes.

Private Sub RenuméroterBudgetPrimitifDépensesAlimentaires
Dim DerLig_T2 As Long 'T2 pour le deuxième tableau structuré de la feuille BD budgets primitifs.
'On Error : Valide une routine de gestion d'erreur et définit son emplacement au sein d'une procédure ; cette instruction permet également d'invalider une routine de gestion
'd'erreur préalablement validée. On Error Resume Next : Lorsqu'une erreur d'exécution survient, le contrôle est transmis à l'instruction qui suit immédiatement celle où l'erreur
's'est produite, et l'exécution continue. Il est recommandé d'utiliser cette formulation plutôt que l'instruction On Error GoTo pour accéder à des objets.
On Error Resume Next
'ListObject.DataBodyRange, propriété : Cette propriété renvoie un objet Range qui représente la plage de valeurs, à l'exception de la ligne d'en-tête dans une table. Type de
'données en lecture seule.
DerLig_T2 = sh05.ListObjects("TabBDCréditsBudgétaires").DataBodyRange.Rows.Count + 5 '5 : cinq lignes depuis le début de la feuille jusqu'à la ligne du nom des colonnes
'du tableau structuré comprise.
If DerLig_T2 = 0 Then DerLig_T2 = 6
'Formula : Cette propriété renvoie ou définit une valeur de type String qui représente la formule de l'objet dans une notation de style A1 et dans la langue de la macro. CountIf
': Compte le nombre de cellules à l'intérieur d'une plage qui répondent aux critères donés. -20 : vingtième colonne après la colonne Code catégorie du tableau TabBDCrédits
'Budgétaires (y compris les colonnes vides)..V : nom de la colonne concernée dans le tableau TabBDBudgetPrimitifDépensesAlimentaires, ici Numéro création. 6 : ligne où fi-
'gurent les premières données enregistrées dans ledit tableau structuré.
sh05.Range("V6:V" & DerLig_T2).FormulaR1C1 = "=if([@[Code catégorie]]<>R[-1]C[-20],[@[Code catégorie]]&""-01"",[@[Code catégorie]]&""-""&TEXT(countif(R5C[-20]:RC[-20],[@[Code catégorie]]),""00""))"
sh05.Range("V6:V" & DerLig_T2).Value = sh05.Range("V6:V" & DerLig_T2).Value
End Sub

Bonjour,

T comme tableau, si vous regardez le commentaire de la première ligne de code, cela vous met sur la voie:

"Dim DerLig_T2 As Long 'T2 pour le deuxième tableau structuré de la feuille BD budgets primitifs."

***********************************************************************************************

V pour la colonne V tout simplement

***********************************************************************************************

+5, -20, ce sont les décalages à effectuer par rapport à une plage ou une cellule, exemple:

sh05.Range("V6:V" & DerLig_T2).FormulaR1C1 = "=if([@[Code catégorie]]<>R[-1]C[-20]

R = Row = ligne

C = Column = Colonne

ici, la plage active est sh05.Range("V6:V" & DerLig_T2), c'est à dire toutes les lignes de la colonne V du tableau T2 sur laquelle on applique cette formule.

=if([@[Code catégorie]]<>R[-1]C[-20] le début de la formule dit ceci: pour chaque cellule de la colonne "Catégorie", si elles sont différentes des cellules situées R[-1] soit 1 ligne au-dessus et, C[-20] 20 colonnes situées avant

Explication: la colonne "Catégorie" du tableau T2 "TabBDBudgetPrimitifDépensesAlimentaires" est en colonne Q, et pour chaque cellule de cette colonne, on compare avec le contenu de la cellule située une ligne au-dessus de la colonne "Catégorie" du tableau "TabBDCréditsBudgétaires", si c'est la même catégorie, alors on augmente le numéro de création de 1, s'il est différent alors on lui attribue le numéro 01. Pour une question de rapidité d'exécution, la formule est appliquée en 1 seule fois sur toute la colonne concernée, puis en remplace la formule par les valeurs trouvées avec cette ligne "sh05.Range("V6:V" & DerLig_T2).Value = sh05.Range("V6:V" & DerLig_T2).Value". C'est ce principe qui est appliqué pour toutes les renumérotations.

Cdlt

Bonjour Arturo83,

Merci pour vos explications, c'est beaucoup plus clair ainsi. Je vais continuer à créer mes boutons de commande et mes macros et faire les tests nécessaires.

Je viens de regarder votre fichier d'hier (V4) pour lequel j'aurai besoin de quelques explications : procédure private sub cmdValidation_Click :

1) 'Dans TabBDCréditsBudgétaires
sh05.ListObjects("TabBDCréditsBudgétaires").DataBodyRange.Cells(Lig, 11) = tbPrixUnitaire.Value
sh05.ListObjects("TabBDCréditsBudgétaires").DataBodyRange.Cells(Lig, 12) = tbQuantité.Value
sh05.ListObjects("TabBDCréditsBudgétaires").DataBodyRange.Cells(Lig, 13) = tbTotalBudgetPrimitif.Value

'Dans TabBDBudgetPrimitifDépensesAlimentairessh05
sh05.ListObjects("TabBDBudgetPrimitifDépensesAlimentaires").DataBodyRange.Cells(Lig, 4) = tbTotalBudgetPrimitif.Value : ces instructions concernent uniquement la partie remplissage feuille "BD Budgets DM1 ?

2) Que signifient-elles ?

3) Sur le même principe, elles devront figurer également dans la partie remplissage feuille "BD budgets DM2" et, éventuellement dans remplissage "BD budgets mensuels" avec les changements de nom appropriés ?

4) Dans With sh06, pourquoi les colonnes 12, 13 et 14 sont-elles en commentaires ?

Je viens de tester une création DM1 pour agneau, le BP apparaît bien, j'ai mis plus DM1 : 5,00 : le total DM1 ne se fait pas (il manque peut-être la procédure adéquate, c'est à vérifier). De plus, la création va dans la feuille BD budgets primitifs et non dans la feuille BD budgets DM1.

Voir fichier joint dans lequel j'ai inclus vos explications reçues ce matin (j'espère qu'elles sont au bon endroit) concernant la renumérotation et la création d'un article agneau en DM1.

Les codes ne sont pas encore complets. Je n'arrive pas à générer ce qui concerne décision modificative numéroune.

Bonnes journée et continuation. Prenez bien soin de vous. À bientôt si besoin.

Bonjour,

1):'Dans TabBDBudgetPrimitifDépensesAlimentairessh05
sh05.ListObjects("TabBDBudgetPrimitifDépensesAlimentaires").DataBodyRange.Cells(Lig,
4) = tbTotalBudgetPrimitif.Value : ces instructions concernent
uniquement la partie remplissage feuille "BD Budgets DM1 ?
OUI

2) Que signifient-elles ? le but est de remplir le "TabBDBudgetsDécisionModificativeNuméroUne" de la feuille "BD Budgets DM1", en appliquant le même principe que pour le remplissage de "TabBDCréditsBudgétaires" de la feuille "BD budgets primitifs", mais j'avais bien précisé le samedi "9/03/24" à 4h47 : "J'avais commencé à préparé la même chose pour "BD Budgets DM1", mais c'est très long et pas testé suffisamment pour en tenir compte définitivement." Ce qui veut dire que cela ne peut pas correspondre exactement à vos attentes, c'était un essai.

3) Sur le même principe, elles devront figurer également dans la partie remplissage feuille "BD budgets DM2" et, éventuellement dans remplissage "BD budgets mensuels" avec les changements de nom appropriés ? Non, chaque tableau est individuel et doit se remplir en fonction de la catégorie choisie, du moins si j'ai bien compris le principe, car je vous rappelle que je ne suis pas l'auteur de l'application, donc je travaille en essayant de décortiquer ce pourquoi elle a été créée ainsi, et c'est pas forcément évident, donc mon raisonnement est peut être faux.

4) Dans With sh06, pourquoi les colonnes 12, 13 et 14 sont-elles en commentaires ?[s=co-548dd4][/s]j'avais pas tout à fait fini, je devais y revenir plus tard, puis j'ai complètement oublié, sinon il faut mettre:

.Item(I, 12) = tbPlusDM1.Value
.Item(I, 13) = tbPlusDM2.Value
.Item(I, 14) = tbMoinsDM2.Value


Je viens de tester une création DM1 pour agneau, le BP apparaît bien, j'ai mis plus DM1 : 5,00 : le total DM1 ne se fait pas (il manque peut-être la procédure adéquate, c'est à vérifier). De plus, la création va dans la feuille BD budgets primitifs et non dans la feuille BD budgets DM1.

pour le total, je n'ai pas compris à quelle textbox il est lié.

De plus que signifie les textboxes "Plus DM1", "Moins DM1", "Plus DM2", "Moins DM2" ?

Cdlt

Bonjour à tous,

@BUDGETS

J'ajouterais même aux réflexions d'Arturo83 que si vous aviez donné des explications claires de votre souhait on n'en serais pas à faire des supputations peut-être hasardeuses. Cela fait maintenant trois semaines que vous aviez promis des explications détaillées et un exemple et représentatif et toujours rien !

@Arturo83

car je vous rappelle que je ne suis pas l'auteur de l'application, donc je travaille en essayant de décortiquer ce pourquoi elle a été créée ainsi

Je crois bien que c'est notre ami BUDGETS qui a saccagé son application Menu en pensant que tout se ferait les doigts dans le nez, vu son niveau tel qu'il est parti son appli va vite devenir ingérable, surtout au vu de ses explications.

Bonjour Arturo83, Bonjour BeGood,

Plus DM1 : Par rapport au BP, c'est une augmentation du total BP : BP : 50 euros, j'estime qu'en définitive, ce sera 75,00 euros : plus DM1 sera donc à 25,00 puis calcul de Total DM1.

Moins DM1 : par rapport au BP, c'est une diminution du total BP : BP : 50,00 euros, j'estime qu'en définitive, ce sera 35,00 euros : moins DM1 sera donc à 15,00 puis calcul de Total DM1.

Même chose pour plus DM2 et Moins DM2 mais par rapport à Total DM1 puis calcul de Total DM2.

Oui, j'ai essayé de copier Menus 2024 qui fonctionne bien (en supprimant toutefois ce qui m'a semblé inutile ou inutilisable dans BUDGETS) mais cela a soulevé de nombreuses erreurs, d'où mes demandes d'intervention.

Il semblerait que Total DM1 et Total DM2 n'aient pas d'instructions pour être exécutés alors que Total BP a les siennes.

Je vais continuer à créer mes procédures (ou à les compléter) et quand tout sera fini, je pourrai enfin répondre aux désirs de BeGood.

Re,

Il semblerait que Total DM1 et Total DM2 n'aient pas d'instructions pour être exécutés alors que Total BP a les siennes.

Et bien qu'attendez-vous pour le faire ?

Je vais continuer à créer mes procédures (ou à les compléter) et quand tout sera fini, je pourrai enfin répondre aux désirs de BeGood.

Ce n'est pas à la fin qu'on a besoin d'exemples de ce que vous voulez mais maintenant !

Je viens de tester une création DM1 pour agneau, le BP apparaît bien, j'ai mis plus DM1 : 5,00 : le total DM1 ne se fait pas (il manque peut-être la procédure adéquate, c'est à vérifier). De plus, la création va dans la feuille BD budgets primitifs et non dans la feuille BD budgets DM1.

Ou avez-vous donc spécifié tout cela ? Dans vos explications qui viendront quand tout sera fini ?

Feuille accueil : clic sur crédits budgétaires

Formulaire UF02CréditsBudgétaires : Catégorie : dans la liste déroulante, clic sur Budget primitif dépenses alimentaires; Nature article : dans la liste déroulante, clic sur dépenses alimentaires; Article : dans la liste déroulante, clic sur Yaourts matin; Prix unitaire : taper 3,00; Quantité : taper 12,00: clic sur Validation; Clic sur Oui; Message d'erreur : variable objet ou variable de bloc non définie : Débogage : Module MGénérerBudgets : procédure : Sub GénérerBudgetPrimitifDépensesAlimentaires() DerLig = Sheets("BD budgets primitifs").ListObjects("TabBDCréditsBudgétaires").DataBodyRange.Rows.Count : cette ligne est en jaune.

Merci de me dire ce qui ne va pas aussi vite que possible car cela me bloque pour continuer. Dans la version 4, je n'ai pas ce problème.

Pour BeGood, je travaille ainsi car c'est mieux (à mon avis) d'avoir une vue d'ensemble du programme pour examiner les imperfections éventuelles et comment y remédier sans que cela crée des messages d'erreur.

Rechercher des sujets similaires à "modification article creation nouvelle ligne"