Aide sur USERFORM : Code pour créer sa nomenclature de manière manuelle

mrzaitsev90

XLDnaute Occasionnel
BOnjour à tous,

Je m'explique :

- le besoin d'avoir un format identique pour des personnes ne travaillant pas de la même façon mais ayant les mêmes choses à faire nécessite que je crée un formulaire capable de reproduire leurs besoins mais dans mon format. Ainsi, on parlerait tous de la même façon... L'uniformisation des données...

Sur le fichier joint, j'ai expliqué ma demande :

- des colonnes C à K la théorie
- des colonnes M à V la pratique

Sur la plage M9:V19 l'idée de mon formulaire et en dessous les choses qui se passent quand on clique sur les boutons.. J'ai commencé bien modestement ce formulaire mais le reste est pour l'instant hors de ma portée.

Une bonne aide serait bien nécessaire.

Merci à ceux qui m'aideront encore une fois pour ce tour de magie.

MrZaitsev90
 

Pièces jointes

  • explications gestion nomenclature fichier.xls
    37.5 KB · Affichages: 80
  • explications gestion nomenclature fichier.xls
    37.5 KB · Affichages: 80
  • explications gestion nomenclature fichier.xls
    37.5 KB · Affichages: 79

mrzaitsev90

XLDnaute Occasionnel
Re : Aide sur USERFORM : Code pour créer sa nomenclature de manière manuelle

Salut Bebere,

J'ai ce code dans la classe 2, des modules class :

Code:
Option Explicit
Public WithEvents ObjTbo As MSForms.TextBox

Private Sub ObjTbo_Change()
    Dim Li As Long, C As Byte, i As Byte, nom As String
Li = 0: C = 0
    nom = Mid(ObjTbo.Name, 1, 6)
    i = Mid(ObjTbo.Name, 7)

    Select Case nom
    Case "TboBom"
        Li = Mid(ObjTbo.Tag, 1, InStr(ObjTbo.Tag, "-") - 1)
        C = Mid(ObjTbo.Tag, InStr(ObjTbo.Tag, "-") + 1)
        Ligne(Li, C) = ObjTbo.Value

    Case "TboRef"
        Li = ObjTbo.Tag
        Ligne(Li, 6) = ObjTbo.Value

    End Select
    'MsgBox Ligne(1, i)
End Sub

Donc je dois remplacer certaines lignes de ce code par celui que tu viens de me donner n'est ce pas?

A propos, as-tu trouver un moyen pour que les données entrées dans les textbox soient exportées à partir de la ligne 7 et non à partir de 65480 ^^

Merci.

Mrzaitsev90

Mrzaitsev90
 

Bebere

XLDnaute Barbatruc
Re : Aide sur USERFORM : Code pour créer sa nomenclature de manière manuelle

non tu l'ajoutes après end sub
là tu as évènement change Private Sub ObjTbo_Change()
le nouveau code est pour évènement DblClick Private Sub ObjTbo_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
la feuille est protégée il faut un mot de passe
il faut en tenir compte dans le code
 

mrzaitsev90

XLDnaute Occasionnel
Re : Aide sur USERFORM : Code pour créer sa nomenclature de manière manuelle

Salut Bebere,

excuses j'ai pas compris grand chose mis à part le fait que je devais copier ton nouveau à la suite de la première.

Ensuite pour le reste j'ai rien compris à ton message. Désolé.

Zaitsev
 

mrzaitsev90

XLDnaute Occasionnel
Re : Aide sur USERFORM : Code pour créer sa nomenclature de manière manuelle

ok,

J'ai copié ton nouveau code à la suite.

Il me met "attribut incorrect dans une procédure ou fonction"

en surlignant cette partie "WithEvents ObjTbo As MSForms.TextBox".

POur la protection du document, je l'ai enlevé. Elle serait à mettre sur le fichier final.

Veux-tu que je te file un modèle soft du fichier pour faire les modifications toi-même plus facilement?

Comme tu veux.

Zaitsev
 

mrzaitsev90

XLDnaute Occasionnel
Re : Aide sur USERFORM : Code pour créer sa nomenclature de manière manuelle

Salut Bebere, le forum,

J'ai recrée un fichier light.

Effectivement, il y a quelques soucis avec ton code. On y voit carrément plus clair.

1) Je me suis aperçu que les données rentrées en textbox BOM1 passaient à la trappe. Elles n'apparaissent jamais.

2) Je me suis aperçu que si une autre colonne du document n'est pas vide, lorsque l'on valide l'exportation des données du USF, ces données commencent à la dernière ligne du document où il y a quelque chose.

Ex : rentres des données dans le USF et valide. Tout commencera à la ligne 7 mais uniquement à partir du BOM2. Le niveau BOM1 devrait apparaître aussi. Ce n'est pas le cas

Maintenant, rentres le nombre que tu veux dans la cellule M18, inscrit des choses dans les textbox du USF1 et valide. Les données vont s'exporter à la partir de la cellule M18. Il faudrait que les données soient exportées dans les bonnes colonnes et à partir de la ligne 7 quelles que soient les cellules remplies ailleurs dans la sheet.

3) Si tu pouvais, mettre ton code pour enlever une textbox ce serait sympa.

Merci beaucoup de ton aide.

Mrzaitsev90
 

Pièces jointes

  • fichier terminal.xlsm
    36 KB · Affichages: 20
  • fichier terminal.xlsm
    36 KB · Affichages: 23
  • fichier terminal.xlsm
    36 KB · Affichages: 21

Bebere

XLDnaute Barbatruc
Re : Aide sur USERFORM : Code pour créer sa nomenclature de manière manuelle

bonjour Mrzaitsev
explication dans feuille et code sur ce que tu signales
 

Pièces jointes

  • fichier terminal.xlsm
    31.1 KB · Affichages: 20
  • fichier terminal.xlsm
    31.1 KB · Affichages: 22
  • fichier terminal.xlsm
    31.1 KB · Affichages: 26

mrzaitsev90

XLDnaute Occasionnel
Re : Aide sur USERFORM : Code pour créer sa nomenclature de manière manuelle

Bonjour Bebère,

Merci pour la Mise à jour.

Y'aurait-il un moyen pour que les textbox aient la même largeur que les commandbutton BOM 1 BOM 2 etc ?

Je ne sais pas où ces textbox apparaissent lors de la création du formulaire.

Merci Bebere

MrZaitsev90
 

Bebere

XLDnaute Barbatruc
Re : Aide sur USERFORM : Code pour créer sa nomenclature de manière manuelle

bonjour Mrzaitsev,le forum
lire commentaires dans le code(ligne ajoutée)

Code:
Private Sub ObjCmd_Click()
    Dim j As Byte, Ctrl As Control, Cl As Classe2

    If Icmd < UBound(Ligne, 1) Then
        Icmd = Icmd + 1
        L = L + 1
    Else
        Exit Sub
    End If

    j = Mid(ObjCmd.Name, 4)    'le bouton cliqué
    'ajoute textbox et donne un nom "TboBom" & Icmd
    Set Ctrl = Usf1.Controls.Add("Forms.TextBox.1", "TboBom" & Icmd, True)
    Ctrl.Left = ObjCmd.Left
    Ctrl.Top = ObjCmd.Top + (ObjCmd.Height * Icmd)
    Ctrl.Tag = L
    Ctrl.Tag = Ctrl.Tag & "-" & j
    Ctrl.Width = ObjCmd.Width    'propriété widht =largeur ligne ajoutée

    Set Cl = New Classe2
    Set Cl.ObjTbo = Ctrl
    ObjTbo.Add Cl
    'ajoute textbox et donne un nom "TboRef" & Icmd
    Set Ctrl = Usf1.Controls.Add("Forms.TextBox.1", "TboRef" & Icmd, True)
    Ctrl.Left = Usf1.Label1.Left
    Ctrl.Top = ObjCmd.Top + (ObjCmd.Height * Icmd)
    Ctrl.Tag = L
    Ctrl.Width = Usf1.Label1.Width    'propriété widht =largeur ligne ajoutée

    Set Cl = New Classe2
    Set Cl.ObjTbo = Ctrl
    ObjTbo.Add Cl

End Sub
 

mrzaitsev90

XLDnaute Occasionnel
Re : Aide sur USERFORM : Code pour créer sa nomenclature de manière manuelle

Bonjour Bebere, le forum,

Code ajouté. Tout fonctionne bien. Les textbox sont bien aussi grandes que les commandbutton. C'est génial !

Je crois que j'ai ce que je cherchais. S'il n'y a pas de bug, je n'aurai plus de requêtes. En tout cas, merci beaucoup pour ton aide.. jusqu'au bout. La classe !

Bonne continuation Bebère. ;)

Je laisse le fichier final au cas où un néophyte comme moi aurait besoin de cette base.

Merci à tous.

MrZaitsev90
 

Pièces jointes

  • fichier terminal(2).xlsm
    33.5 KB · Affichages: 25

Discussions similaires

Statistiques des forums

Discussions
312 331
Messages
2 087 353
Membres
103 528
dernier inscrit
hplus