Incrémentation d'un textbox dans un Userform

ChantalTreize

XLDnaute Occasionnel
Bonjour tout le monde,
Je cherche à incrémenter un numéro de série dans un textbox afin de faire une numérotation automatique
Merci d'avance
Chantal
 

ChTi160

XLDnaute Barbatruc
Bonjour Chantaltreize
Bonjour le Fil ,le Forum
je pensais que tu aurais compris , que la raison pour laquelle tu n'avais pas de réponse était l'absence de fichier exemple de ce que tu as et de ce que tu veux .
un numéro de série à partir de Quoi ? etc
Sinon
VB:
TextBox1=TextBox1 + 1
mais ça veux rien dire
Dans l'attente .
Bonne fin de Journée
Amicalement
jean marie
 

philou7168

XLDnaute Nouveau
Bonjour,

je me permets de relancer le topic car le titre correspond à ma demande.

Donc je construit un fichier de gestion matériel qui gère 2 grands domaines (Chimie et Physique) et chacun d'eux possèdes des sous domaines.
Pour l'instant je travaille sur le domaine Chimie/Produits --> il suffira de faire un copier/coller pour le reste en changeant ce qu'il faut.
Pour l'instant on travaille dans l'onglet Produits
Mon Userform1 comporte 9 cases dont 5 obligatoires
Numéro (obligatoire) textbox1 : sous forme de CHP00001 pour Chimie-Produits-00001 (CHA pour Chimie-Appareils / CHV pour Chimie-Verrerie). Je souhaiterai qu'il soit auto incrémentale, unique et non modifiable.
Matériel (obligatoire) textbox2 : c'est le nom du matériel "Limaille de Fer"
Ref/Num Série textbox3 : pour les appareils électrique
Commentaire textbox4 : exemple "Flacon 1Kg"
Quantité (obligatoire) textbox5 : c'est le nombre de flacon (on ne peut y mettre que des chiffres)
Date Acquisition textbox6: Pour le moment elle n'est pas obligatoire car il y a des produits dont on ne sait pas la date
Date Péremption textbox7 : Il y a des dates limites d'utilisation sur les produits chimiques (si si :-D) permet aussi de rentrer la date depuis laquelle le produit n'est plus à la disposition du labo
Obsolète (obligatoire) comboxbox1: Réponse par oui ou non, cela passe toute la ligne en rouge et informe que le produit ne peut plus être utilisé
Stockage (obligatoire) textbox8: Lieu de rangement sous forme de C003A01E01 (C003: salle de rangement - A01: Armoire 01 - E01: Étagère 01)

Pour info l'onglet Chimie est une consolidation de toutes les listes concernant le labo Chimie. Seul les filtres sont fonctionnels et elle ne peut être actualisée que par le bouton éponyme.

Mon projet sera ultérieurement repris pour pouvoir via le même userform apporter des modifications par appel du numéro ou du nom. Pour l'instant les modifs ont lieu dans le tableau. Lorsqu'il y a "oui" à Obsolète et "-" à stockage cela signifie que le labo a eu ce produit en sa possession mais ne l'a plus. Cela évite des recherches inutiles. Mais cela n'est pas à l'ordre du jour, je reviendrai à la charge si je bloque.

Donc pour l'instant je bloque sur la recherche du dernier numéro utilisé avec le préfixe en vigueur selon l'onglet utilisé et de l'augmenter de 1.
CHP00005 doit devenir CHP00006.

Bien entendu, si l'heureux bienfaiteur pouvait m'expliquer les comment du pourquoi me serait fort agréable. Si mon code est trop lourd il a toute autorité de le simplifier, mais la encore les explications seraient un aubaine.
 

Pièces jointes

  • GestLab01.xlsm
    591.9 KB · Affichages: 29

Lolote83

XLDnaute Barbatruc
Salut Philou7168,
Je me suis simplement intéressé à l'onglet PRODUITS, et à l'initialisation du formulaire pour la partie incrémentation du numéro

Donc pour l'instant je bloque sur la recherche du dernier numéro utilisé avec le préfixe en vigueur selon l'onglet utilisé et de l'augmenter de 1.
CHP00005 doit devenir CHP00006.

VB:
Private Sub UserForm_Initialize()
    TextBox6 = "jj/mm/aaaa"
    TextBox7 = "jj/mm/aaaa"
        With ComboBox1
        .AddItem "oui"
        .AddItem "non"
    End With
    xDerLig = Range("A1000").End(xlUp).Row      'On récupère la dernière ligne saisie de l'onglet
    xOnCoupe = Split(Range("A14"), "P")         'On coupe la valeur après la lettre P
    xDerNum = Val(xOnCoupe(1))                  'On récupère la valeur
    xNewNum = xDerNum + 1                       'On ajoute 1
    Select Case Len(xNewNum)                    'On teste la longueur
        Case Is = 1
            xNbZero = "0000"                    'Si 1 caractère, alors 4 zéros
        Case Is = 2
            xNbZero = "000"                     'Si 2 caractères, alors 3 zéros
        Case Is = 3
            xNbZero = "00"                      'Si 3 caractères, alors 2 zéros
        Case Is = 4
            xNbZero = "0"                       'Si 4 caractères, alors 1 zéro
        Case Is = 5
            xNbZero = ""                        'Si 5 caractères, pas d ezéro
    End Select
    TextBox1 = "CHP" & xNbZero & xNewNum        'On affecte à TextBox1, la concaténation
End Sub
En espérant avoir bien compris ta demande sur ce sujet
@+ Lolote83
 

philou7168

XLDnaute Nouveau
Pour Lolote83

Tu as vu juste pour la numérotation --> encore une fois merci

Pour Chti160

Tu as déjà fait un bon plus loin ce qui m'arrange, mais comme tu n'avais pas toutes les clefs, tu ne savais pas que pour la liste du matos Chime le préfix c'est CH, mais pour la Physique, c'est PH.
Je vais donc très certainement utiliser ton développement mais en splittant la partie Chimie et la partie Physique.
L'autre travail que je dois faire c'est de savoir dans quel onglet appeler le Userform et une fois rempli comment lui indiquer l'onglet à remplir. A première vue on utiliser le nom de la liste. Mais cela viendra plus tard. D'ailleurs en rédigeant le message, j'ai déjà une idée, quelque soit l'onglet, le UserForm est le même, donc il suffit de bloquer le sous domaine de la liste déroulante en fonction de l'onglet actif (J'ouvre verrerie, la liste se bloque sur verrerie).
Pour le MdP, il n'y a pas besoin de sécurité maximum, le but est que la liste consolidée soit filtrable à souhait mais pas modifiable. J'en aurai besoin pour simplifier la MAJ d'inventaire une fois par an. Filtre par location et impression. L'idée est simple, le responsable de Labo a accès à tout, les profs qui préparent les TP doivent savoir si le matériel nécessaire est présent et en nombre.
 

ChTi160

XLDnaute Barbatruc
Bonjour philou7168
Bonjour le fil ,le Forum
Effectivement , pas tout compris , mais bon ????
mais en splittant la partie Chimie et la partie Physique.
puis
L'autre travail que je dois faire c'est de savoir dans quel onglet appeler le Userform et une fois rempli comment lui indiquer l'onglet à remplir........
Pour le MdP ,
tu dis :
il n'y a pas besoin de sécurité maximum
On ne l'a pas ! Lol
Si tu expliques , on devrait y arriver lol
un fichier exemple de ce que tu veux pouvoir faire en fonction de ce que tu as .
Bonne journée
jean marie
 

philou7168

XLDnaute Nouveau
En fait sur le fichier que tu possèdes, il y a déjà mon idée de plan.

Onglet 1 --> Accueil via les bouton on choisit sur quel grand domaine on souhaite aller (Chimie ou Physique)

Onglet 2 --> Chimie - La liste complète du matériel de Chimie (Produits, Verrerie et Appareils) la aussi, on navigue entre les onglets via les bouton du haut. Mais on ne navigue que dans le domaine de Chimie. Cet onglet c'est la consolidation (l'addition de tous les tableaux Produits + Verrerie + Appareils) construit à l'aide de Power Query. Ce tableau est protégé, il ne peut qu'être mis à jour via le bouton actualiser mais on peut utiliser les filtres pour affiner une recherche.

Onglet 3, 4 et 5 --> Ce sont les sous domaines de Chimie, ici, on ajoute, (on modifie, prévu dans un futur proche) la DB. Ces ajouts ou modifications ne devront se faire que via un UserForm. C'est la raison pour laquelle je bloque le tableau de Chimie (Toute modif dans Chimie n'a pas lieu dans Produits, hors si je fais actualiser, excel va reprendre comme référence Produits pour corriger Chimie). Quand le userform sera complet avec l'option modification, les tableaux seront aussi protégés par MdP. Cette protection à pour but d'éviter toute modification directe. Ainsi j'ai le contrôle sur le Userform que toutes les cases obligatoires soient bien complété et que le tiret (-) soit aussi présent à la place d'une cellule vide.

Les Onglets 6 (Physique) et 7,8,9,10 (pour les sous domaines) fonctionnent sur le même principe.

Au finale toute manipulation ne se fera que via bouton et userform, les onglets, les en-tête de lignes et de colonne, la barre de formule, bref tout sera occulté. Et qui dit bouton ou userform, dit VBA.

Pour les grands titre j'utilise la police Amatic (https://www.fontsquirrel.com/fonts/amatic).

Enfin, c'est super cool d'être aidé comme vous le faites sur le forum.
 

ChTi160

XLDnaute Barbatruc
Bonjour philou7168
Bonjour le Fil ,le Forum

Toujours pas tout compris , mais une autre approche (perfectible)
j'ai renommé les onglets pour pouvoir déterminer le Domaine de référence (car pas de référence a Physique dans les Feuilles ( Acoustique à Electrique )
j'ai supprimé les références Ex ( Pr , Ve , Ap ) etc dans les feuilles soit CHPr00001 par CH00001
Bonne journée
jean marie
 

Pièces jointes

  • GestLab Chti160-2.xlsm
    601.3 KB · Affichages: 27

philou7168

XLDnaute Nouveau
Bonjour ChTi160,

Je me penche ce WE afin d'essayer de te mettre par écrit ce que j'ai dans la tête et sur mon plan. J'ai pas encore regarder ton nouveau fichier, par contre j'ai déjà apporté une modif sur la V1.0. Je te le mets en ligne dans les plus brefs délais afin que tu vois ou je souhaite aller.

Bonne journée
 

philou7168

XLDnaute Nouveau
Pas de problème, je poursuis mes recherches pendant ce temps.

En pièce jointe ta première version modifié.

Lorsque l'on appelle le userform, la liste déroulante ne fait plus que référence à Produits, Verrerie et Appareils, la numérotation est redevenu CHPxxxxx.
J'ai enlevé tous les onglets ayant référence à la physique, ainsi on ne travaille que sur la chimie.
Chime et Physique sont indépendants l'un de l'autre.
Donc pour simplifié, on va travailler uniquement sur les 4 onglets de chimie. Après j'aurai juste à faire un copier/coller pour construire la gestion labo physique. Nous sommes sur un seul fichier mais on gère 2 labos.
Donc, ma prochaine idée, c'est lorsque l'on appelle le userform depuis l'onglet Produits, la liste déroulante va directement sur Produits, et donc la numérotation sera immédiatement incrémenté.

Bonne vacances ou bonne semaine
 

Pièces jointes

  • GestLab_Chti160_modif.xlsm
    526 KB · Affichages: 15

philou7168

XLDnaute Nouveau
Bonjour le fil

Je poursuis mon développement. Dans Userform_Initialize() j'ai ajouté
VB:
UserForm1.CmbB_Inventaires.Text = ActiveSheet.Name
Cela me permet de fixer le dans le combobox le nom de l'onglet actif et donc de donner le numéro suivant automatiquement à l'ouverture du Userform.
Je pense qu'en l'etat mon userform est complet. J'attaque maintenant le remplissage du tableau.
Dès que cela est fonctionnel, ce sera le moment de développer le Userform de modificiation. Mais ça je n'y ai pas encore penser car il faut travailler sur les critères de recherches.
 

philou7168

XLDnaute Nouveau
Bonjour le Fil,

Soucis de santé oblige, j'ai du prendre un peu de recule, mais je suis de retour. Implémentation du bouton imprimer et retour du Labo Physique. Je travaille sur la finalisation de ce labo et la version 1 de mon fichier de gestion sera fonctionnel. Pour la version 2, c'est l'ajout du bouton modifier, on ne devra plus être capable de modifier ou ajouter au tableau que par userform.
En pièce jointe le fichier avec le module Chimie terminé. Le Module physique sera identique.
 

Pièces jointes

  • GestLab02.xlsm
    608.7 KB · Affichages: 40

Discussions similaires

Réponses
3
Affichages
381
Réponses
19
Affichages
615

Statistiques des forums

Discussions
312 177
Messages
2 085 976
Membres
103 076
dernier inscrit
LoneWolf90