XL 2010 Remplissage du TextBoxNuméroCréationArticlesMenus

BUDGETS

XLDnaute Impliqué
Bonjour à toutes et à tous,

Soit la feuille BD articles menus comprenant un tableau dont le nom est TabArticlesMenus et comprenant différentes colonnes dont Code catégorie articles menus, Nom catégorie articles menus, Code article menu, Nom article menus et Numéro création articles menus.
Supposons que ce tableau soit vide. Je crée un premier article (Code catégorie articles menus : CCAM01, Nom catégorie articles menus : DMR, code article menus : DMR01, Nom article menus : Pomme). Numéro création articles menus : deux possibilités : la première taper le numéro moi-même; deuxième solution : demander au programme de le créer lui-même. Dans ce dernier cas, l'article n'existe pas, le numéro de création sera 1; l'article existe déjà : le numéro de création sera 2 ou 3 ou 4, selon le cas, etc. Pour chaque catégorie, il devra partir de 1 pour chaque article. DMR ET DS, n'auront qu'un seul article. DWE en aura 21. pour LMR : premier article : il aura le numéro 1, le 17ème article sera numéro 17. L'attribution du numéro de création sera indépendant d'une catégorie à l'autre.
D'avance merci pour votre aide.
 

ALS35

XLDnaute Nouveau
Bonjour à toutes et à tous,

Soit la feuille BD articles menus comprenant un tableau dont le nom est TabArticlesMenus et comprenant différentes colonnes dont Code catégorie articles menus, Nom catégorie articles menus, Code article menu, Nom article menus et Numéro création articles menus.
Supposons que ce tableau soit vide. Je crée un premier article (Code catégorie articles menus : CCAM01, Nom catégorie articles menus : DMR, code article menus : DMR01, Nom article menus : Pomme). Numéro création articles menus : deux possibilités : la première taper le numéro moi-même; deuxième solution : demander au programme de le créer lui-même. Dans ce dernier cas, l'article n'existe pas, le numéro de création sera 1; l'article existe déjà : le numéro de création sera 2 ou 3 ou 4, selon le cas, etc. Pour chaque catégorie, il devra partir de 1 pour chaque article. DMR ET DS, n'auront qu'un seul article. DWE en aura 21. pour LMR : premier article : il aura le numéro 1, le 17ème article sera numéro 17. L'attribution du numéro de création sera indépendant d'une catégorie à l'autre.
D'avance merci pour votre aide.
Bonjour BUDGETS,

Là aussi sur le forum Comment ça marche, je t'ai dit plusieurs fois que le numéro de création que tu voulais était inutile, il n'a aucune plus-value par rapport au Code article.
Mais si tu y tiens vraiment tu aurais pu voir, depuis longtemps, qu'au final ce n'est ni plus ni moins que les deux derniers chiffres de ce code article. Tu vas certainement trouver la bonne formule ou instruction pour l'obtenir !

Cordialement
 

BUDGETS

XLDnaute Impliqué
=droite([ComboBOxCodesArticlesMenus];2)
Si la formule est bonne, où l'écrire ?

'InitialiserNuméroCréationArticlesMenus
InitialiserNuméroCréationArticlesMenus

Private sub InitialiserNuméroCréationArticlesMenus()
TextBoxNuméroCréationArticlesMenus.value = =droite([ComboBOxCodesArticlesMenus];2)
 

soan

XLDnaute Barbatruc
Bonjour Christian,

je n'ai pas compris pourquoi tu as joint ton 1er fichier "Projet-Menu-LECLERE-1709" ; tu n'as pas dit ce qu'il faut faire ; c'est sur la feuille "Menus midi retraite" ? ou sur quelle autre feuille ? je ne m'en suis pas occupé, et tu devras créer un autre sujet pour ce fichier si c'est sans rapport avec le présent sujet.

je me suis occupé uniquement du 2ème fichier joint "MENUS1", et de la feuille "BD articles menus" ; j'ai masqué plein de colonnes ; les 5 colonnes visibles sont : C D I J P ; formule en P3 :​

=SI(OU(C3="";D3="");"";NB.SI($D$3:D3;D3))

➯ pour chaque article, tu as un numéro à partir de 1 selon la catégorie de cet article ; mais il aurait fallu plus de lignes pour pouvoir mieux voir le résultat de la formule.​

soan
 

Pièces jointes

  • MENUS1.xlsm
    145.9 KB · Affichages: 10

BUDGETS

XLDnaute Impliqué
Bonjour Christian,

je n'ai pas compris pourquoi tu as joint ton 1er fichier "Projet-Menu-LECLERE-1709" ; tu n'as pas dit ce qu'il faut faire ; c'est sur la feuille "Menus midi retraite" ? ou sur quelle autre feuille ? je ne m'en suis pas occupé, et tu devras créer un autre sujet pour ce fichier si c'est sans rapport avec le présent sujet.

je me suis occupé uniquement du 2ème fichier joint "MENUS1", et de la feuille "BD articles menus" ; j'ai masqué plein de colonnes ; les 5 colonnes visibles sont : C D I J P ; formule en P3 :​

=SI(OU(C3="";D3="");"";NB.SI($D$3:D3;D3))

➯ pour chaque article, tu as un numéro à partir de 1 selon la catégorie de cet article ; mais il aurait fallu plus de lignes pour pouvoir mieux voir le résultat de la formule.​

soan
Bonjour SOAN,

Merci pour ton aide. Dans l'userformCréationArticlesMenus, est-il possible que le numéro création articles menus y soit créé ? Si oui, comment procéder ? Dans la négative, je peux supprimer les intitulés et les zones de texte concernant cet outil ? Dans le fichier que j'ai joint, il y a une procédure private sub InitialiserNuméroCréationArticlesMenus qui est en rouge car il y a une erreur que je n'arrive pas à corriger.
Pour le premier fichier, il concerne le sujet déjà créé et auquel tu as déjà répondu et à la suite de quoi je t'ai posé une ou plusieurs questions auxquelles tu n'as pas encore répondu. Le sujet est Variable objet ou variable de bloc with non définie. Si nécessaire, je reprends un message de cette discussion et je joints le fichier selon ta méthode suggérée.
 
Dernière édition:

soan

XLDnaute Barbatruc
@Christian

* sur la feuille "BD articles menus", fais Ctrl e ➯ formulaire "Création articles menus"

* pour la 1ère ComboBox, choisis CCAM01 ➯ y'a à droite DMR, et n° création : 2 ; pourquoi 2 et pas 1 ? car ce sera le bon n° pour prochain article que tu vas créer et noter dans ton tableau structuré TabArticlesMenus ; pour CCAM03 : à droite DWE et n° création : non pas 2 mais 3 (pour la même raison) ; pour CCAM04 : à droite LMR et n° création : 2 ; pour CCAM05 : à droite LSLM et n° création : 1 (car c'est aussi pour le prochain article, et que la catégorie LSLM n'a pas encore été utilisée).

dans le code VBA de ton 1er formulaire nommé "UserFormCréationArticlesMenus", va en ligne 65 pour voir la sub ComboBoxCodeCatégorieArticlesMenus_Change() ; juste avant End Sub j'ai ajouté cette instruction :
VB:
TextBoxNuméroCréationArticlesMenus = Application.CountIf(Worksheets("BD articles menus").Columns(4), TextBoxNomCatégorieArticlesMenus) + 1



il y a une procédure private sub InitialiserNuméroCréationArticlesMenus qui est en rouge car il y a une erreur que je n'arrive pas à corriger.

c'est corrigé ; va en ligne 350 pour voir la sub InitialiserNuméroCréationArticlesMenus() ; tu pourras voir que ton ancienne instruction

VB:
textboxnumérocréationarticlesmenus.Value=droite(Comboboxcodearticlesmenus) 2)

est devenue :

VB:
TextBoxNuméroCréationArticlesMenus = Right$(ComboBoxCodesArticlesMenus, 2)



pour ton autre sujet, j'essayerai de voir ça une autre fois.​

soan
 

Pièces jointes

  • MENUS1.xlsm
    178 KB · Affichages: 9
Dernière édition:

BUDGETS

XLDnaute Impliqué
@Christian

* sur la feuille "BD articles menus", fais Ctrl e ➯ formulaire "Création articles menus"

* pour la 1ère ComboBox, choisis CCAM01 ➯ y'a à droite DMR, et n° création : 2 ; pourquoi 2 et pas 1 ? car ce sera le bon n° pour prochain article que tu vas créer et noter dans ton tableau structuré TabArticlesMenus ; pour CCAM03 : à droite DWE et n° création : non pas 2 mais 3 (pour la même raison) ; pour CCAM04 : à droite LMR et n° création : 2 ; pour CCAM05 : à droite LSLM et n° création : 1 (car c'est aussi pour le prochain article, et que la catégorie LSLM n'a pas encore été utilisée).

dans le code VBA de ton 1er formulaire nommé "UserFormCréationArticlesMenus", va en ligne 65 pour voir la sub ComboBoxCodeCatégorieArticlesMenus_Change() ; juste avant End Sub j'ai ajouté cette instruction :
VB:
TextBoxNuméroCréationArticlesMenus = Application.CountIf(Worksheets("BD articles menus").Columns(4), TextBoxNomCatégorieArticlesMenus) + 1





c'est corrigé ; va en ligne 350 pour voir la sub InitialiserNuméroCréationArticlesMenus() ; tu pourras voir que ton ancienne instruction

VB:
textboxnumérocréationarticlesmenus.Value=droite(Comboboxcodearticlesmenus) 2)

est devenue :

VB:
TextBoxNuméroCréationArticlesMenus = Right$(ComboBoxCodesArticlesMenus, 2)



pour ton autre sujet, j'essayerai de voir ça une autre fois.​
 

BUDGETS

XLDnaute Impliqué
Merci SOAN,

Au moins, toi tu as compris ce que je voulais. Tes instructions fonctionnent.
Sans vouloir t'offusquer, tu es un homme ou une femme ? Tu es d'origine grecque ou égyptienne ? Lu à l'envers, SOAN donne NAOS. Je viens de m'apercevoir que tu as également modifié la procédure CommandButtonValiderCréationArticlesMenus pour tenir compte du NuméroCréationArticlesMenus mais il est en commentaires (sans commentaires, cela sort une erreur de syntaxe). Pour DMR et DS, il n'y aura qu'un seul article, donc pas de numéro de création 2. Dans la feuille BD menus, tu as masqué certaines colonnes. J'ai essayé vainement de les faire réapparaître. Comment procéder ? Toujours dans la feuille BD articles menus, faut-il garder la formule de la colonne Numéro création articles menus ou peut-elle être supprimée ? (Réponse à la question : c'est non, enfin pour l'instant). Dernier point, je garde ton fichier que je vais nommer MENUS SOAN. Pour la suite, tu veux travailler sur mon fichier MENUS1 ou sur le fichier MENUS SOAN ?
TextBoxNuméroCréationArticlesMenus = Application.CountIf(Worksheets("BD articles menus").Columns(4), TextBoxNomCatégorieArticlesMenus) + 1
countif :
WorksheetFunction.CountIf, méthode


Compte le nombre de cellules à l'intérieur d'une plage qui répondent aux critères donnés.
Columns(4) : à partir de la colonne servant de départ, comprise dans le décompte, va dans la colonne où le renseignement sera inséré. Donc dans mon fichier MENUS1, qui n'a pas de colonnes masquées, je devrais modifier ce chiffre en conséquence.

J'ai un problème : je pose une question concernant ce problème. J'ai une réponse avec, éventuellement un fichier joint : j'ai horreur de sauvegarder le fichier joint sous le nom de mon fichier d'origine ou de faire un copier coller de l'instruction (ou des instructions) modifiée (s) et je m'en lave les mains. J'imprime la (ou les) instruction (s) modifié (es) et je cherche à en comprendre le sens. C'est ma manière de travailler. Ce n'est pas toujours évident de comprendre car je comprends vite mais il faut m'expliquer longtemps.
 
Dernière édition:

BUDGETS

XLDnaute Impliqué
Bonjour BUDGETS,

Là aussi sur le forum Comment ça marche, je t'ai dit plusieurs fois que le numéro de création que tu voulais était inutile, il n'a aucune plus-value par rapport au Code article.
Mais si tu y tiens vraiment tu aurais pu voir, depuis longtemps, qu'au final ce n'est ni plus ni moins que les deux derniers chiffres de ce code article. Tu vas certainement trouver la bonne formule ou instruction pour l'obtenir !

Cordialement
Bonjour ALS35,

ModuleAM, procédure ModifierArticlesMenus, pourquoi le nom de l'UserForm n'est-il pas pris comme il a été créé : le m s'inscrit en minuscules, alors qu'il a été créé avec une majuscule AM et non Am. D'avance merci pour ton aide.
 

Pièces jointes

  • MENUS1.xlsm
    173.1 KB · Affichages: 6

ALS35

XLDnaute Nouveau
Bonjour ALS35,

ModuleAM, procédure ModifierArticlesMenus, pourquoi le nom de l'UserForm n'est-il pas pris comme il a été créé : le m s'inscrit en minuscules, alors qu'il a été créé avec une majuscule AM et non Am. D'avance merci pour ton aide.
Bonjour BUDGETS,
Pas d'idée pour ton problème. Modifie le nom, vérifie que tu as une erreur quand tu clic sur Modifier, puis remet le nom correct et reclic sur Modifier.
Cordialement
 

BUDGETS

XLDnaute Impliqué
@Christian

* sur la feuille "BD articles menus", fais Ctrl e ➯ formulaire "Création articles menus"

* pour la 1ère ComboBox, choisis CCAM01 ➯ y'a à droite DMR, et n° création : 2 ; pourquoi 2 et pas 1 ? car ce sera le bon n° pour prochain article que tu vas créer et noter dans ton tableau structuré TabArticlesMenus ; pour CCAM03 : à droite DWE et n° création : non pas 2 mais 3 (pour la même raison) ; pour CCAM04 : à droite LMR et n° création : 2 ; pour CCAM05 : à droite LSLM et n° création : 1 (car c'est aussi pour le prochain article, et que la catégorie LSLM n'a pas encore été utilisée).

dans le code VBA de ton 1er formulaire nommé "UserFormCréationArticlesMenus", va en ligne 65 pour voir la sub ComboBoxCodeCatégorieArticlesMenus_Change() ; juste avant End Sub j'ai ajouté cette instruction :
VB:
TextBoxNuméroCréationArticlesMenus = Application.CountIf(Worksheets("BD articles menus").Columns(4), TextBoxNomCatégorieArticlesMenus) + 1





c'est corrigé ; va en ligne 350 pour voir la sub InitialiserNuméroCréationArticlesMenus() ; tu pourras voir que ton ancienne instruction

VB:
textboxnumérocréationarticlesmenus.Value=droite(Comboboxcodearticlesmenus) 2)

est devenue :

VB:
TextBoxNuméroCréationArticlesMenus = Right$(ComboBoxCodesArticlesMenus, 2)



pour ton autre sujet, j'essayerai de voir ça une autre fois.​

soan
Bonsoir SOAN,

Pour l'affichage des colonnes, j'ai trouvé la solution. Ce n'est pas comme avant, cela a été modifié par Microsoft.
Pour le commentaire qu'on transforme en instructions qui se solde par une erreur de syntaxe, faut-il garder cette instruction et essayer de trouver l'erreur de syntaxe ou elle ne sert à rien et on peut supprimer ce commentaire et cette instruction.
Regarde le problème que j'ai posé à ALS35 concernant ModificationAM et sa réponse. J'ai fait tout ce qu'il a dit dans sa réponse mais cela n'a rien changé.
D'avance merci pour ta réponse.
 

Pièces jointes

  • MENUS SOAN.xlsm
    180.7 KB · Affichages: 8
Dernière édition:

BUDGETS

XLDnaute Impliqué
@Christian

* sur la feuille "BD articles menus", fais Ctrl e ➯ formulaire "Création articles menus"

* pour la 1ère ComboBox, choisis CCAM01 ➯ y'a à droite DMR, et n° création : 2 ; pourquoi 2 et pas 1 ? car ce sera le bon n° pour prochain article que tu vas créer et noter dans ton tableau structuré TabArticlesMenus ; pour CCAM03 : à droite DWE et n° création : non pas 2 mais 3 (pour la même raison) ; pour CCAM04 : à droite LMR et n° création : 2 ; pour CCAM05 : à droite LSLM et n° création : 1 (car c'est aussi pour le prochain article, et que la catégorie LSLM n'a pas encore été utilisée).

dans le code VBA de ton 1er formulaire nommé "UserFormCréationArticlesMenus", va en ligne 65 pour voir la sub ComboBoxCodeCatégorieArticlesMenus_Change() ; juste avant End Sub j'ai ajouté cette instruction :
VB:
TextBoxNuméroCréationArticlesMenus = Application.CountIf(Worksheets("BD articles menus").Columns(4), TextBoxNomCatégorieArticlesMenus) + 1





c'est corrigé ; va en ligne 350 pour voir la sub InitialiserNuméroCréationArticlesMenus() ; tu pourras voir que ton ancienne instruction

VB:
textboxnumérocréationarticlesmenus.Value=droite(Comboboxcodearticlesmenus) 2)

est devenue :

VB:
TextBoxNuméroCréationArticlesMenus = Right$(ComboBoxCodesArticlesMenus, 2)



pour ton autre sujet, j'essayerai de voir ça une autre fois.​

soan
Bonjour BUDGETS,

Ne pas utiliser index comme variable car c'est un mot réservé en VBA.

Et avec ce code il n'y a plus de bug :
VB:
If Not FoundCell Is Nothing Then
    lig = FoundCell.Row
    '---
End If
A+
Cela devient pénible de travailler sur Excel downloads : impossible de modifier un message : il n'apparaît plus à l'écran d'où impossibilité de la modifier. J'espère que tu l'as eu.
 

soan

XLDnaute Barbatruc
Bonsoir Christian,

j'ai bien vu tes 3 posts #9, #12, et #13 ; désolé, mais je suis vraiment trop débordé en ce moment pour pouvoir répondre à tes exos ; je reporte donc à plus tard, quand j'en aurai le temps ; peut-être à partir de demain soir, ou peut-être à partir d'après-demain ?

pour "soan", tu as raison : à l'envers, ça donne bien "naos", qui est la "nef" d'un temple égyptien ou grec ; mais ce n'est qu'un pseudo ; et comme c'est indiqué sur mon profil, je suis un homme de France ; j'ajoute que je n'ai aucune origine grecque ni égyptienne, mais je connais quelques mots en grec ; par exemple : « Eurêka ! » = « J'ai trouvé ! » (comme disait Archimède).

sous le trait ci-dessous, réponses pour ce que tu as demandé, et dont les réponses ne sont pas trop longues.



Je viens de m'apercevoir que tu as également modifié la procédure CommandButtonValiderCréationArticlesMenus pour tenir compte du NuméroCréationArticlesMenus mais il est en commentaires (sans commentaires, cela sort une erreur de syntaxe)​

oui, c'est bien ça ; j'ai mis la ligne en commentaire car elle causait une erreur de compilation ; mais je n'ai pas cherché à résoudre cette erreur car je voulais faire ta demande qui était autre chose : avoir un numéro pour chaque département ; normalement, tu aurais dû régler au préalable cette erreur, et m'envoyer un fichier dont la compilation ne bloque pas sur quelque chose qui est différent de ta demande ! tu imagines tout le temps que perdraient les contributeurs s'ils devaient résoudre toutes les erreurs de compilation qui ne sont pas liées à la demande elle-même ? on ne s'en sortirait plus ! à la limite, je veux bien « réparer » ce qui cloche si c'est facile et rapide à faire, mais sinon, non merci !

sans aucun changement, ton instruction qui se met en rouge est celle-ci :​

TextBoxnumérocréationArticlesMenus.Value = comboboxcodecatégoriearticlesmenus.Value + max(TabArticlesMenus[Numéro création articles menus])+1

le seul fait que tu utilises des noms très longs à rallonge, ça décourage de chercher de quoi il s'agit au juste ! je ne vais pas perdre de temps à chercher si le nom TextBoxnumérocréationArticlesMenus est correct ou non (y'a peut-être une faute de frappe dans le nom ?), ni à quelle TextBox du formulaire ça correspond ! idem pour comboboxcodecatégoriearticlesmenus ; mais je vois "max" dont la 1ère lettre n'est pas en majuscule (alors que c'est le cas pour tout mot-clé VBA) ; il faudrait probablement que tu utilises à la place :
Application.Max(TabArticlesMenus[Numéro création articles menus])

mais c'est seulement pour corriger ton erreur de compilation, rien de plus : ça devrait marcher, mais peut-être que prendre le maximum de la colonne P n'est pas la méthode la plus judicieuse ? j'en sais rien, car j'ai pas du tout cherché à approfondir cela ; de plus, ton fichier est une vraie usine à gaz, et il contient plein de feuilles vide inutiles ! "Feuil6" à "Feuil100" ! rien que ça, ça fait déjà 95 feuilles de trop ! les demandeurs sont censés fournir un fichier épuré, et dont la compilation ne bloque pas (sauf si l'erreur de compilation est l'objet-même de la demande, car le demandeur n'arrive pas à régler lui-même l'erreur de compilation en question).

oooooppppppppssssss ! finalement, la réponse à cette demande a été bien plus longue que prévu ! c'est pas comme ça que j'vais pouvoir rattraper mon retard sur d'autres exos Excel !​



Pour DMR et DS, il n'y aura qu'un seul article, donc pas de numéro de création 2.

même si c'est comme ça, c'est quand même mieux d'indiquer le n° du prochain article qui sera utilisé lors de la création d'un nouvel article ; donc c'est mieux de laisser tel que c'est ; maintenant, si tu préfères quand même voir 1 au lieu de 2, c'est ton droit ; mais dans ce cas, il faut que tu changes mon instruction en enlevant le + 1 qui est tout au bout à droite ; ce qui donne :​

VB:
TextBoxNuméroCréationArticlesMenus = Application.CountIf(Worksheets("BD articles menus").Columns(4), TextBoxNomCatégorieArticlesMenus)

mais cette modif sera valable pour tous les départements, et pour tous les articles ; je te laisse choisir ce que tu préfères, et adapter le code VBA en conséquence.​



Dans la feuille BD menus, tu as masqué certaines colonnes. J'ai essayé vainement de les faire réapparaître. Comment procéder ?​

il faut juste sélectionner les 2 colonnes visibles dont les colonnes masquées sont entre les 2 colonnes visibles, par exemple A:C ; puis faire un clic droit sur la sélection, et dans le menu contextuel, choisir l'item "Afficher" ➯ la colonne B qui était masquée entre A et C devient visible. :) si tu fais la même chose pour D:I, ça rend visible E:H ; si tu fais la même chose pour J: P, ça rend visible K:O ; tu aurais aussi pu faire ces 3 opérations d'un seul coup, en sélectionnant au préalable A: P : ça aurait affiché toutes les colonnes masquées qui sont entre (donc toutes les colonnes cachées de B à O).​

Pour l'affichage des colonnes, j'ai trouvé la solution. Ce n'est pas comme avant, cela a été modifié par Microsoft.

je n'ai pas compris pourquoi tu as écrit que ça a changé ; j'ai toujours fait comme je t'ai indiqué plus haut.​



Pour le commentaire qu'on transforme en instructions qui se solde par une erreur de syntaxe, faut-il garder cette instruction et essayer de trouver l'erreur de syntaxe ou elle ne sert à rien et on peut supprimer ce commentaire et cette instruction ?​

je t'en ai parlé dans ce post, plus haut.



Toujours dans la feuille BD articles menus, faut-il garder la formule de la colonne Numéro création articles menus ou peut-elle être supprimée ? (Réponse à la question : c'est non, enfin pour l'instant).​

c'est une très bonne question ! 👍 ça dépend de ce que tu veux faire ; au départ, j'avais mis cette formule :​

=SI(OU(C3="";D3="");"";NB.SI($D$3:D3;D3))

cela sans tenir compte du formulaire UserFormCréationArticlesMenus ; maintenant, il semble bien que la formule est inutile, car ce serait à la charge du code VBA de ce UserForm de mettre la bonne valeur du Numéro création articles menus, en colonne P, et pour chaque article nouvellement créé via le UserForm ; c'est donc la sub CommandButtonValiderCréationArticlesMenus_Click() qui devrait faire ça, puisque c'est elle qui est appelée quand tu cliques sur le bouton "Valider création articles menus".

pour info, moi j'aurais appelé le bouton cmdValid ; et la sub s'appellerait cmdValid_Click() ; c'est quand même bien plus court que tes noms à rallonge, pas vrai ? 😜 comme disait Coluche : « Technocrates, c’est les mecs que, quand tu leur poses une question, une fois qu’ils ont fini de répondre, tu comprends plus la question que t’as posée » ; donc là, le temps de lire tes noms à rallonge, on a largement le temps d'oublier ce qu'on aurait voulu en faire ! 😄 (cela dit sans vouloir te vexer ! 😜)



pour la citation ci-dessous, je l'ai modifiée telle que j'ai compris ta phrase :

Cela devient pénible de travailler sur Excel downloads : impossible de modifier un message : au bout d'un moment, le bouton "Modifier" n'apparaît plus à l'écran, d'où impossibilité de modifier le message. J'espère que tu as eu le nouveau fichier.​

j'ai téléchargé ton fichier "MENUS SOAN", que j'ai renommé en "MENUS2" ; mais pour ce soir, c'est assez ➯ je ne l'ai pas encore ouvert, et la suite du feuilleton ne sera probablement pas avant demain soir. 😁 🤪 (ou peut-être bien plus tard encore si je manque de disponibilités !)

soan
 
Dernière édition:

BUDGETS

XLDnaute Impliqué
Bonsoir Christian,

j'ai bien vu tes 3 posts #9, #12, et #13 ; désolé, mais je suis vraiment trop débordé en ce moment pour pouvoir répondre à tes exos ; je reporte donc à plus tard, quand j'en aurai le temps ; peut-être à partir de demain soir, ou peut-être à partir d'après-demain ?

pour "soan", tu as raison : à l'envers, ça donne bien "naos", qui est la "nef" d'un temple égyptien ou grec ; mais ce n'est qu'un pseudo ; et comme c'est indiqué sur mon profil, je suis un homme de France ; j'ajoute que je n'ai aucune origine grecque ni égyptienne, mais je connais quelques mots en grec ; par exemple : « Eurêka ! » = « J'ai trouvé ! » (comme disait Archimède).

sous le trait ci-dessous, réponses pour ce que tu as demandé, et dont les réponses ne sont pas trop longues.





oui, c'est bien ça ; j'ai mis la ligne en commentaire car elle causait une erreur de compilation ; mais je n'ai pas cherché à résoudre cette erreur car je voulais faire ta demande qui était autre chose : avoir un numéro pour chaque département ; normalement, tu aurais dû régler au préalable cette erreur, et m'envoyer un fichier dont la compilation ne bloque pas sur quelque chose qui est différent de ta demande ! tu imagines tout le temps que perdraient les contributeurs s'ils devaient résoudre toutes les erreurs de compilations qui ne sont pas liées à la demande elle-même ? on ne s'en sortirait plus ! à la limite, je veux bien « réparer » ce qui cloche si c'est facile et rapide à faire, mais sinon, non merci !

sans aucun changement, ton instruction qui se met en rouge est celle-ci :​

TextBoxnumérocréationArticlesMenus.Value = comboboxcodecatégoriearticlesmenus.Value + max(TabArticlesMenus[Numéro création articles menus])+1

le seul fait que tu utilises des noms très longs à rallonge, ça décourage de chercher de quoi il s'agit au juste ! je ne vais pas perdre de temps à chercher si le nom TextBoxnumérocréationArticlesMenus est correct ou non (y'a peut-être une faute de frappe dans le nom ?), ni à quelle TextBox du formulaire ça correspond ! idem pour comboboxcodecatégoriearticlesmenus ; mais je vois "max" dont la 1ère lettre n'est pas en majuscule (alors que c'est le cas pour tout mot-clé VBA) ; il faudrait probablement que tu utilises à la place :
Application.Max(TabArticlesMenus[Numéro création articles menus])

mais c'est seulement pour corriger ton erreur de compilation, rien de plus : ça devrait marcher, mais peut-être que prendre le maximum de la colonne P n'est pas la méthode la plus judicieuse ? j'en sais rien, car j'ai pas du tout cherché à approfondir cela ; de plus, ton fichier est une vraie usine à gaz, et il contient plein de feuilles vide inutiles ! "Feuil6" à "Feuil100" ! rien que ça, ça fait déjà 95 feuilles de trop ! les demandeurs sont censés fournir un fichier épuré, et dont la compilation ne bloque pas (sauf si l'erreur de compilation est l'objet-même de la demande, car le demandeur n'arrive pas à régler lui-même l'erreur de compilation en question).

oooooppppppppssssss ! finalement, la réponse à cette demande a été bien plus longue que prévu ! c'est pas comme ça que j'vais pouvoir rattraper mon retard sur d'autres exos Excel !​





même si c'est comme ça, c'est quand même mieux d'indiquer le n° du prochain article qui sera utilisé lors de la création d'un nouvel article ; donc c'est mieux de laisser tel que c'est ; maintenant, si tu préfères quand même voir 1 au lieu de 2, c'est ton droit ; mais dans ce cas, il faut que tu changes mon instruction en enlevant le + 1 qui est tout au bout à droite ; ce qui donne :​

VB:
TextBoxNuméroCréationArticlesMenus = Application.CountIf(Worksheets("BD articles menus").Columns(4), TextBoxNomCatégorieArticlesMenus)

mais cette modif sera valable pour tous les départements, et pour tous les articles ; je te laisse choisir ce que tu préfères, et adapter le code VBA en conséquence.​





il faut juste sélectionner les 2 colonnes visibles dont les colonnes masquées sont entre les 2 colonnes visibles, par exemple A:C ; puis faire un clic droit sur la sélection, et dans le menu contextuel, choisir l'item "Afficher" ➯ la colonne B qui était masquée entre A et C devient visible. :) si tu fais la même chose pour D:I, ça rend visible E:H ; si tu fais la même chose pour J:p, ça rend visible K:O ; tu aurais aussi pu faire ces 3 opérations d'un seul coup, en sélectionnant au préalable A:p : ça aurait affiché toutes les colonnes masquées qui sont entre (donc toutes les colonnes cachées de B à O).



je n'ai pas compris pourquoi tu as écrit que ça a changé ; j'ai toujours fait comme je t'ai indiqué plus haut.​





je t'en ai parlé dans ce post, plus haut.





c'est une très bonne question ! 👍 ça dépend de ce que tu veux faire ; au départ, j'avais mis cette formule :​

=SI(OU(C3="";D3="");"";NB.SI($D$3:D3;D3))

cela sans tenir compte du formulaire UserFormCréationArticlesMenus ; maintenant, il semble bien que la formule est inutile, car ce serait à la charge du code VBA de ce UserForm de mettre la bonne valeur du Numéro création articles menus, en colonne P, et pour chaque article nouvellement créé via le UserForm ; c'est donc la sub CommandButtonValiderCréationArticlesMenus_Click() qui devrait faire ça, puisque c'est elle qui est appelée quand tu cliques sur le bouton "Valider création articles menus".

pour info, moi j'aurais appelé le bouton cmdValid ; et la sub s'appellerait cmdValid_Click() ; c'est quand même bien plus court que tes noms à rallonge, pas vrai ? 😜 comme disait Coluche : « Technocrates, c’est les mecs que, quand tu leur poses une question, une fois qu’ils ont fini de répondre, tu comprends plus la question que t’as posée » ; donc là, le temps de lire tes noms à rallonge, on a largement le temps d'oublier ce qu'on aurait voulu en faire ! 😄 (cela dit sans vouloir te vexer ! 😜)



pour la citation ci-dessous, je l'ai modifiée telle que j'ai compris ta phrase :



j'ai téléchargé ton fichier "MENUS SOAN", que j'ai renommé en "MENUS2" ; mais pour ce soir, c'est assez ➯ je ne l'ai pas encore ouvert, et la suite du feuilleton ne sera probablement pas avant demain soir. 😁 🤪 (ou peut-être bien plus tard encore si je manque de disponibilités !)

soan
Bonsoir SOAN,

Je vais supprimer toutes les feuilles inutiles. Je vais voir l'instruction qui fait l'objet d'une erreur et voir par rapport à ce que tu proposes. Avant Dans Excel, pour afficher des feuilles masquées, il fallait passer par Affichage ou bien selon ta méthode. Ta méthode n'a pas fonctionné chez moi et il a fallu passer par Accueil, Format et Afficher les colonnes.
Bonnes fin de soirée, nuit et continuation. Bon courage pour tes exos.
 

Discussions similaires

Statistiques des forums

Discussions
291 501
Messages
1 915 830
Membres
178 990
dernier inscrit
shadowtheone
Haut Bas