Création d'un formulaire

Merci beaucoup c'est niquel ! Vous me faite gagner beaucoup de temps de recherche et d'énervement !! :)

Juste une petite question: Qu'est-ce que vous appelez "Formater une page ?"

3 petits ajustements:

- Au niveau de la date. Est il possible de mettre l'heure exact de l'enregistrement hh/mm ?

- Est-il possible de rajouter quelques lignes de codage pour que lorsque qu'une case n'est pas remplie, un msgbox apparait "Merci de remplir tous les champs" à part la case commentaire qui est facultative. Notamment pour la ListBox1, TextBox4, TextBox5, ComboBox 4 et ComboBox5. En fait, lorsque l'on appui sur le bouton "enregistrer la relance", la totalité des colonnes BDD soient remplies a part la colonne commentaire qui peut être vide.

- Je souhaiterais fermer le userform lorsque l'on enregistre la relance. Et que celui-ci ne se ferme pas lorsque qu'il y a un msgbox comme ci-dessus.

J'ai essayé d'ajouter un Unload Me en fin de codage du bouton enregistrer mais ca ne fonctionne pas, je dois surement oublier quelque chose

Merci encore !!

1. Juste une petite question: Qu'est-ce que vous appelez "Formater une page ?"

Je veux dire préparer la mise en page avec les bordures. Là dans la feuille BDD si vous ajoutez par exemple 3 données, vous verrez que grâce au tableau structuré vous n'avez besoin de rien faire. La mise en page est faite automatiquement. Donc ne préparez pas votre feuille pour recevoir les données. Tout cela se fera avec le code grâce au Tableau structuré défini par T_BDD dans le gestionnaire de noms. Idem pour la feuille LIstes

2. Au niveau de la date. Est il possible de mettre l'heure exact de l'enregistrement hh/mm ?

Oui. Dans le code Enregistrement à la ligne 20 (date enregistrement), remplacez DATE par NOW

3.- Est-il possible de rajouter quelques lignes de codage pour que lorsque qu'une case n'est pas remplie, un msgbox apparait "Merci de remplir tous les champs" à part la case commentaire qui est facultative. Notamment pour la ListBox1, TextBox4, TextBox5, ComboBox 4 et ComboBox5. En fait, lorsque l'on appui sur le bouton "enregistrer la relance", la totalité des colonnes BDD soient remplies a part la colonne commentaire qui peut être vide.

Oui. Je dois modifier le code d'enregistrement. Je vais regarder ce point et vous poster la modification

4. Je souhaiterais fermer le userform lorsque l'on enregistre la relance. Et que celui-ci ne se ferme pas lorsque qu'il y a un msgbox comme ci-dessus.

Oui. rajoutez la ligne ci-dessous juste avant le END SUB de la macro Private Sub CommandButton2_Click()

Call CommandButton1_Click

Re

Suite à votre demande du point 3, il est préférable que je vous reposte le fichier avec toutes les modifications y compris point 2 et 4. Repartez bien de celui-ci.

NB : je n'ai pas fait de contrôle sur la listbox1, puisque le remplissage de la textbox4 en dépend.

16rebus-v2.zip (596.33 Ko)

Merci beaucoup !

- La fonction Call Commandbouton1_click ne fonctionne pas lorsque je clique sur enregistrer. J'ai testé la fonction Me.Hide, mais elle ne fonctionne pas non plus.

Dernière question : Si je veux un jour ajouter une 4ème base de donnée, quelle codage faudra t-il copier et remplacer ? Je ne trouve pas de CA21 ou de CA11 dans le codage actuel.

Merci encore

1. La fonction Call Commandbouton1_click ne fonctionne pas lorsque je clique sur enregistrer. J'ai testé la fonction Me.Hide, mais elle ne fonctionne pas non plus.

heu là je ne comprends pas. Chez moi cela fonctionne sans souci. il doit y avoir un autre souci chez vous car ce sont les commandes pour décharger l'userform. N'utilisez jamais le HIDE car avec cette instruction vous mettez l'userform à l'arrière plan et donc invisible

Dans la procédure Private Sub CommandButton1_Click() --> essayez en remplaçant Unload Me par Unload UserForm1

Si cela ne fonctionne toujours pas, faites ceci :

A. Dans l'éditeur VBA, allez dans votre module_show et mettez-y ce code

Sub FermerUSF()
Unload UserForm1
End Sub

B. Allez ensuite dans votre userform et changez le code Private Sub CommandButton1_Click() par celui ci-dessous

Private Sub CommandButton1_Click()
FermerUSF
End Sub

2. Dernière question : Si je veux un jour ajouter une 4ème base de donnée, quelle codage faudra t-il copier et remplacer ? Je ne trouve pas de CA21 ou de CA11 dans le codage actuel.

C'est normal. Le code prend en compte "bdd" et la valeur de la textbox1. Vous ne devz rien faire sauf toujours avoir une feuille nommée "bdd" et les valeurs CA21, CA11 ou autre. Vous ajoutez les feuilles comme vous le voulez tant que le nom respecte bdd et ce que vous avez en textbox1, cela fonctionnera. Le cas échéant vous allez avoir un plantage car j'ai supposé que la feuille bddCAxx existe toujours

Bonjour Dan,

C'est très bizarre, ca ne fonctionne toujours pas même avec la fonction FermerUSF. La fonction pour le commandButton1 fonctionne bien pour le bouton "Retour" mais ça ne veut pas marcher sur le commandButton2 du bouton "Enregistrer"

Bonjour

mais ça ne veut pas marcher sur le commandButton2 du bouton "Enregistrer"

Ok. Comme cela fonctionne sur le bouton Retour, à la fin de macro enregistrer, mettez CALL FermerUSF au lieu de Call Commandbouton1_click

Toujours le même problème même en mettant FermerUFS dans le module_show. Voici le code actuel de mon userform :

capture

Ok j'ai compris. Mettez l'instruction Call juste avant le Exit Sub

La fin du code enregistrement devient ceci

presse papier02

ou mieux comme ceci (pour éviter d'avoir deux fois Call Fermerusf)

presse papier04

Niquel c'est parfait ! Vous avez bloquer l'accès au textbox1, 2 & 3. Si je veux insérer manuellement le CA21, comment faire ? (Car en bas de la colonne N° de bateau dans la feuille PROD j'ai rajouté une case "SAV". Sauf que j'aimerai que lorsque je choisi "SAV" dans ma ComboBox2, je puisse avoir accès à ma textBox1, 2 et 3 afin de renseigner manuellement :

- dans ma textBox1 : CA21, CA11,CA40...

- dans ma textBox2 : Le N° de SAV

- dans ma textBox3 : Si c'est Clair ou Foncé

Si ce n'est pas possible ou que c'est trop de temps de codage, laissez tomber je vais me débrouiller. Je voudrais pas vous prendre tout votre temps.

Désolé de rajouter toujours de nouvelles choses.

Merci encore

Vous avez bloquer l'accès au textbox1, 2 & 3. Si je veux insérer manuellement le CA21, comment faire ?

Oui effectivement car je voulais vous éviter de modifier ces 3 textbox puisqu'elles dépendaient du choix de la combo2.
Mais rien de plus simple, Faites ceci :
- Allez dans l'éditeur VBA
- ouvrez votre userform
- Sélectionnez les 3 textbox
- à Gauche vous avez une fenêtre "Propriétes" (si vous ne la voyez pas appuyez sur la touche F4 de votre clavier)
- Allez à la propriété "Locked" et mettez la valeur à False.

Bonne soirée

Parfait, en effet c'est pas compliqué ca !

Merci

Bonjour Dan,

Je sais pas si vous allez voir ce message, mais j'ai une modification assez compliqué à expliquer à faire. J'ai rajouté une feuille "Fiche de relance" à mon fichier, je souhaiterai, en ajoutant un commandbutton sous ma dernière ligne de ma feuille BDD, que toutes les lignes qui ne sont pas encore relancées viennent s'intégrer dans ces fiches de relance.

Il faudrait donc:

- rajouter une colonne "Relancée" en colonne R qui se coche automatiquement lorsque qu'on clique sur le commandbutton ainsi qu'une formule =Now en colonne S pour avoir la date et l'heure.

J'ai rajouté également une nouvelle colonne dans la feuille "Listes", et je souhaiterai que lorsque qu'il y a un N° de bateau noté en colonne Bateaux urgent, la case "URGENCE" de la "fiche de relance" concerné se mette en rouge, sinon, mettre une case vide.

Ex: Là j'ai mis en bateau urgent le 151,152 et le 1. Pour les lignes à relancer avec ces numéros de bateau, la case "URGENCE" de la fiche de relance concernée se met en rouge. En revanche si une pièce du bateau 154 est à relancer, alors cette case sera vide.

Là où est la complexité, c'est que j'aimerai qu'il y ai une page par N° de bateau par matière par épaisseur par coloris. Afin que lorsqu'au débit ils prennent la matière première (Exemple contreplaqué statifié noir ep 15, ils aient que les pièces à relancé de cette matière. Comme j'ai énormément de mal avec les variables (avec un peu tout d'ailleurs), je viens demander de l'aide :)

Je ne comprend pas pourquoi je n'arrive pas à mettre mon fichier en PJ, ça met "Service non disponible" ??

J'ai trouvé la raison, c'est car j'avais une connexion entre ma BddCA21 et mon serveur professionnel.

Edit dans : fichier supprimé --> voir fichier dans ce post --> https://forum.excel-pratique.com/s/goto/984828

Bonjour

Ok je vais regarder quand j'ai un moment

Crdlt

Re

J'ai rajouté une feuille "Fiche de relance" à mon fichier,

Elle est où dans votre fichier ?

lorsque qu'on clique sur le commandbutton

Le bouton se trouve où ?

Oupssiii j'ai envoyé le mauvais. Voici le fichier avec la fiche de relance

Le bouton se trouve en feuille BDD

9rebus-test-v3.zip (547.19 Ko)

Oupssiii j'ai envoyé le mauvais. Voici le fichier avec la fiche de relance

Ok. Je vais supprimer celui dans le post précédent.

Je n'ai pas de bouton de la feuille BDD mais pas important pour le moment

La feuille fiche de Relance comporte trop de tableaux. Pourquoi ne mettez-vous pas un seul ?

J'en ai mis plusieurs car je veux que pour chaque matériau / épaisseur / coloris sorte une feuille différente. Par exemple je veux qu'une pièce "NAUT 2 FACES DECOR ALPI" de couleur "Foncé" soit sur une feuille et que "NAUT 2 FACES DECOR ALPI" de couleur "Clair" soit sur une autre feuille car le panneau du débit ne sera pas le même. En revanche, s'il y a plusieurs "NAUT 2 FACES DECOR ALPI" en épaisseur 15 de couleur "Foncé" alors ces lignes vont sur la même feuille.

Pour le commandbouton ce n'est pas grave il n'a pour l'instant pas de macro d'affecté, il suffit juste de le rajouter sous le tableau BDD ;)

Rechercher des sujets similaires à "creation formulaire"