Besoin d’aide pour module de classe

fenec

XLDnaute Impliqué
Bonjour le forum,
Besoin de vos compétences
Ayant plusieurs textbox renommés avec le même code ainsi que dans initialisation de mon userform, j’ai après de nombreuses recherche lu qu’il fallait passer par des modules de classe mais mon niveau vba est trop faible et n’y suis pas parvenu.
Cordialement
Philippe
 

Pièces jointes

  • BD Forum.xls
    167.5 KB · Affichages: 64
  • BD Forum.xls
    167.5 KB · Affichages: 78
  • BD Forum.xls
    167.5 KB · Affichages: 85

Dranreb

XLDnaute Barbatruc
Re : Besoin d’aide pour module de classe

Ce n'est quand même pas comme si c'étaient beaucoup de dates à saisir. Je pense qu'il est plus pratique de la saisir avec des "/", des "-" ou des espaces, avec un seul chiffre quand ça suffit, voire le mois en lettres, et 2 chiffres pour l'année, comme vous voulez.
Oui, si c'est bien pratique comme ça, on oublie le bouton bascule.

Edit:
Bonjour.
…Toutefois l'un n'empêche pas l'autre:
À une frappe suite à 5 chiffres consécutifs dans une ComboBox date, cette pièce dans la Sub CL_KeyPress ajouterait des slash :
VB:
   Case "Dat"
      If CBM.CBx.Text Like "#####*" Then
         P = CBM.CBx.SelStart: P = P + P \ 2
         CBM.CBx.Text = Format(Left$(CBM.CBx.Text, 5), "00/00/0")
         CBM.CBx.SelStart = P: End If
Information: Ajouté la vérif du N° SS et plein d'autres choses. Amélioré ComboBoxLiées: Enfin compris et géré le rôle sournois de la touche Echap quand une ComboBox a le focus, et dégâts consécutifs évités à l'exécution très tardive de la procédure du bouton ayant la propriété Cancel à True.
 
Dernière édition:

fenec

XLDnaute Impliqué
Re : Besoin d’aide pour module de classe

Re le forum, Dranreb
Rencontrant un petit souci je vois votre code pour le format date.
Je l’intègre dans mon code et le test, il fonctionne bien mais pourriez-vous m’expliquer votre remarque car je ne la comprends pas.
de lInformation: Ajouté la vérif du N° SS et plein d'autres choses. Amélioré ComboBoxLiées: Enfin compris et géré le rôle sournois a touche Echap quand une ComboBox a le focus, et dégâts consécutifs évités à l'exécution très tardive de la procédure du bouton ayant la propriété Cancel à True.

Pour revenir sur mon souci si je vide ma base je rencontre une erreur
Une erreur d’exécution’91’
Variable objet ou variable de blocwith non définie

Si je clic sur débogage
Usf_Fiche.show

Est en jaune

Et une autre question si pas trop abuser

Pourriez m’aider pour mon format téléphone ?
J’ai essayé mais en vain vous joint mon fichier qui à évoluer avec ce que j’avais testé dans Sub CL_KeyPress

D’avance merci.

Cordialement,

Philippe
 

Pièces jointes

  • BD Dranreb.xls
    251.5 KB · Affichages: 50

Dranreb

XLDnaute Barbatruc
Re : Besoin d’aide pour module de classe

Bonsoir.
Je joins déjà mon fichier dans son état actuel, et puis je regarde le votre.
Il n'est pas prévu de pouvoir le faire fonctionner sur une base vide. Il faut un minimum d'au moins deux lignes, quitte à ce qu'elles contiennent n'importe quoi.

Oh là ! 19 arguments de recherche, ça commence à faire du monde !
Les numéros de téléphone, je vous recommande de les enregistrer en numérique comme le N° SS
J'ai l'impression que rien de cette rubrique Coordonnées n'a au moins une de ces trois caractéristique: ça ne bouge jamais plus après création, ou on doit pouvoir faire une recherche dessus, ou on doit pouvoir attribuer une valeur existant déjà dans la base à la même colonne. Dans ce cas il vaudrait mieux des TextBox.
Le problème c'est qu'on ne peut pas les faire gérer par l'objet ComboBoxLiées.
Souhaiteriez vous deux modules de classe supplémentaires (plus simples) pour pouvoir les gérer dans le même style ? J'espère que vous n'aurez pas d'autres sortes de contrôles…
 

Pièces jointes

  • CBxLiéesFenec.xls
    234 KB · Affichages: 45
  • CBxLiéesFenec.xls
    234 KB · Affichages: 54
  • CBxLiéesFenec.xls
    234 KB · Affichages: 52
Dernière édition:

fenec

XLDnaute Impliqué
Re : Besoin d’aide pour module de classe

Re le forum, Dranreb
Viens de voir votre fichier alors la bravo ca devient du lourd pour moi mais le résultat est surprenant, j’ai encore énormément de chose à apprendre, pas demain que j’y arriverais sans votre aide et celui de tout le forum.
Pour votre remarque :
Il n'est pas prévu de pouvoir le faire fonctionner sur une base vide. Il faut un minimum d'au moins deux lignes, quitte à ce qu'elles contiennent n'importe quoi.
Si besoin de 2 lignes est-il possible qu’elles soient masquées pour éviter toute erreur ?
Je regarde ca de près et vous tiens au courant
Cordialement,
Philippe.
 

Dranreb

XLDnaute Barbatruc
Re : Besoin d’aide pour module de classe

Bonjour.
J'opte pour deux lignes portant juste 0 en colonne 1, mais avec les bons formats dans les colonnes de données.
Elles seront utilisées en priorité lors de la création de fiches, et remises en place en cas de suppressions s'il reste moins de 3 lignes, pour ne pas détruire la ligne de début de la base ni les formats.
Une question: ne pourrait-on pas virer de la base les colonnes Age et Ancienneté ? Elles ne servent à rien et sont gênantes pour pouvoir transvaser d'un coup les donnée dans les deux sens entre plage de la ligne et tableaux de valeurs de cellules, car ce sont des formules.
 

fenec

XLDnaute Impliqué
Re : Besoin d’aide pour module de classe

Re le forum, Dranreb

Pour répondre dans un premier temps à votre post #18

Souhaiteriez-vous deux modules de classe supplémentaires (plus simples) pour pouvoir les gérer dans le même style ?

Si plus simple pour vous bien sure

J'espère que vous n'aurez pas d'autres sortes de contrôles…

Pour ne pas vous ennuyez plus, non mais la prochaine fois que je ferais une demande je ne mettrais plus un fichier allégé, je donnerais ce que j’ai fais car en fait dans mon fichier j’ai trois frames.
Mais je pensais pouvoir appliquer votre solution aux autres mais mon niveau est trop faible pour faire dans simple userform une vraie application comme vous

Venant de regarder votre merveille de plus près (post#20).

Je trouve que l’idée des couleurs sympa pour les combos modifiable ainsi que le compteur employés est superbe.

Néanmoins j’ai constaté des petits trucs que je ne m’explique pas :

Quand je rajoute une personne exemple toto et que je valide par la touche entrée je me retrouve dans la combo prénom etc. mais une fois dans les combos modifiables la touche entrée valide les données et la je dois rappeler le nom pour continuer la saisie.

Une autre chose :

Si je désire ajouter une personne ayant le même nom je ne peux plus par rapport à votre version précédente.

Pour votre question

En ce qui concerne l’âge et l’ancienneté cela m’a été demandé mais si ingérable …

Cordialement
Philippe.
 

Dranreb

XLDnaute Barbatruc
Re : Besoin d’aide pour module de classe

l’âge et l’ancienneté cela m’a été demandé
Il n'est pas question une seule seconde de les supprimer de l'Userform, juste de la base. Je ne m'en sers pas du tout et ils m'auraient gêné si on avait du passer la vitesse supérieure avec un module de classe capable de gérer toutes sortes de contrôles, déchargeant l'Userform des détails de lecture et écriture dans la base.
Si je désire ajouter une personne ayant le même nom
Je tape Nom DUEZ, il trouve Albert, je tape par dessus Patrick, il semble bien s'être engagé dans la création d'une nouvelle fiche puisqu'il me critique le N° SS ?
Edit: à moins que DUEZ n'ait été amené par une autre voie… Une astuce à savoir: si une ComboBox est d'un beau vert foncé, c'est que vous n'avez pas choisi son contenu. Celui ci est instable ! Cliquez simplement dedans pour la figer: elle passera en vert fluo comme si c'était vous qui l'aviez choisi.
une fois dans les combos modifiables la touche entrée valide…
…toute la fiche: Il y a "Ajouter" affiché dessus ! Pour simplement changer de contrôle c'est Tab non Entrée.
Si plus simple pour vous bien sur
Non, pour nous deux ! S'il n'y aura plus besoin d'autres sortes de contrôles que des TextBox, je vais ajouter un TextBoxAssociées et TextBoxMmbr qui feront le pendant des ComboBoxLiées et ComboBoxMmbr avec intégration relativement simple dans la programmation existante, même si celle ci restera plus conséquente au bout du compte qu'en reprenant tout à zéro avec un système plus puissant.

Edit: C'est vrai que vous auriez eu intérêt à mettre toutes les Frame. Il y aurait au moins eu dès le début effectivement des TextBox à considérer.
Bon j'ai un peu la flemme de reprendre la 2ième Frame de votre dernier fichier, surtout que les ComboBox sont à y remplacer par des TextBox. J'ai mis la structure en place. Applicatif à développer, tester…
.
 

Pièces jointes

  • CBxLiéesFenec.xls
    341 KB · Affichages: 55
  • CBxLiéesFenec.xls
    341 KB · Affichages: 54
  • CBxLiéesFenec.xls
    341 KB · Affichages: 47
Dernière édition:

fenec

XLDnaute Impliqué
Re : Besoin d’aide pour module de classe

Bonjour le forum, Dranreb

Je reviens vers vous car je rencontre un souci, vous avez changé la gestion du format du N°SS. J’ai essayé de comprendre et trouver pourquoi lors de l’entrée de la clé, un chiffre non taper s’inscrit, mais je n’ai pas trouvé!!!

surtout que les ComboBox sont à y remplacer par des TextBox.

J’avais mis des combobox pour continuer sur le même principe afin qu’elles soient modifiables. Je vais donc reprendre ma frame au début.

Cordialement,
Philippe.
 

Dranreb

XLDnaute Barbatruc
Re : Besoin d’aide pour module de classe

Bonsoir.
Oui, ce n'était pas clairement voulu ce chiffre non tapé qui s'inscrit… Tout ce que je peux vous dire c'est que c'est un chiffre qu'il faudrait, à la place de celui que vous essayez d'entrer, si vous ne vous êtes pas trompé ailleurs, pour que votre N° SS soit valide, et que vous puissiez ouvrir la nouvelle fiche. Ma fois je l'ai laissé: ça permet, pour les test, de taper des N° SS bidons mais valides.

Edit:
J’avais mis des combobox … afin qu’elles soient modifiables
Je ne vous suis pas, là. Les TextBox sont des contrôles modifiables. Ils n'ont pas de propriété List, c'est tout. Ne les confondriez vous pas avec les Label par hasard ?
 
Dernière édition:

fenec

XLDnaute Impliqué
Re : Besoin d’aide pour module de classe

Bonjour le forum, Dranreb

J’ai repris ma seconde frame et remplacer mes combobox par des textbox . Mais bon !!!

Je m’explique dans ma première frame, vous gardez des combos pour des choses modifiables (statut, emploi, affectation, coef et cat) et la dans la deuxième vous voulez des textbox, j’avoue ne pas bien vous suivre sur ce point !!!

Néanmoins n’ayant pas votre niveau et demandant de l’aide j’ai fait ce que vous me dites.

Alors voila ce que j’ai constaté avec ma frame 2:

J’appelle par exemple " DUPOND "
Là, un message me dit : fiche existante. Ouvrez pour la modifier

Si je rentre le contenu de ma seconde frame, il m’est impossible de modifier le bouton étant bloqué...

Par contre si j’appelle " DUPOND " que je renseigne ma seconde frame et que je clique sur ouvrir, là, le bouton deviens modifier et si je clique les données sont bien enregistrées. Est ce normal ou j’ai loupé quelque chose …

Vous joint mon fichier.

Cordialement,
Philippe.
 

Pièces jointes

  • BD Dranreb Forum.xls
    307.5 KB · Affichages: 40
  • BD Dranreb Forum.xls
    307.5 KB · Affichages: 47
  • BD Dranreb Forum.xls
    307.5 KB · Affichages: 49

Dranreb

XLDnaute Barbatruc
Re : Besoin d’aide pour module de classe

Bonjour.

Tout de suite: Le petit bogue responsable du bouton qui reste bloqué quand on change le contenu des TextBox.
C'est dans le module de classe TextBoxAssociées, Public Sub TBM_KeyPress, la dernière instruction doit annuler l'effet de la 1ère.
Ça doit être: NePasExécuterChange = False au lieu de True

Continuons par d'autres corrections de programmation dans l'UsF_Fiche.
Dans la Sub Cmn_Effacer_Données_Click: remplacer HabiliterContrôles par GarnirChamps
Dans l'UserForm_Initialize, mettez derrière les 3 TA.Add Me.Tb_Téléphone, "S", Format:="00 00 00 00 00"

Dans votre 1ère Frame, c'est vous qui aviez mis des ComboBox au départ. Mais ça a l'intérêt de permettre deux choses :
1) Rechercher une personne seulement parmi celles qui ont un certain statut, emploi, affectation, coef ou cat,
2) À la modification, sélectionner un de ces renseignements à attribuer parmi tous ceux qui existent déjà dans la base.
Il me semble qu'aucune de ces deux n'a d'intérêt pour la deuxième Frame.

Après réparation du bogue, le principe général c'est de ne procéder à des modifications que sur une fiche ouverte. D'ailleurs dans HabiliterContrôles mettez derrière For I = 1 To TA.Count: With TA.Item(I)
VB:
   .TBx.Locked = CL.Actif

Remarques secondaires: j'aimerais raccourcir les noms des contrôles. Et ne plus y utiliser de "_", réservé aux noms de procédures de gestion d'évènements comme séparateur entre le nom de l'objet et le nom de l'évènement.
J'aimerais aussi mettre à tout ça une police plus jolie que Courrier New.
 
Dernière édition:

fenec

XLDnaute Impliqué
Re : Besoin d’aide pour module de classe

Bonjour le forum, Dranreb

Vais faire les modifications de programmations et reviens si je rencontre un problème.

Remarques secondaires: j'aimerais raccourcir les noms des contrôles. Et ne plus y utiliser de "_", réservé aux noms de procédures de gestion d'évènements comme séparateur entre le nom de l'objet et le nom de l'évènement.
J'aimerais aussi mettre à tout ça une police plus jolie que Courrier New.

Pour votre remarque, faites pour le mieux, cela me permettra de voir comment réaliser une application correctement.

Merci encore une fois pour votre aide.

Cordialement,

Philippe.
 

Dranreb

XLDnaute Barbatruc
Re : Besoin d’aide pour module de classe

Vous avez quand même votre mot à dire, pour la police en particulier.
J'en propose quelques unes:
Cambria: proportionnelle avec jambages plus discrets que Courrier New nuisant moins à la lisibilité.
Calibri: proportionnelle sans jambage avec caractères assez bien détachés les uns des autres. L'une des plus lisibles de toutes.
Verdana n'est pas mal non plus dans le genre.
 

fenec

XLDnaute Impliqué
Re : Besoin d’aide pour module de classe

Bonsoir le forum, Dranreb

Pardonnez ma réponse tardive mais j'étais absent ce week end.
j'ai pris en considération vos remarques et retravailler la police, renommer les contrôles sans les "underscore " ainsi que les modifications de programmation.

Suite aux modifications, je rencontre deux problèmes:

1- Dans la sub Cmn_Enregistrer_FIche_Click() =>Erreur d'exécution'1004'.

2- Dans la Sub HabiliterContrôles =>Erreur de Compilztion.

J'ai également essayé de définir le format de la textbox "CP" mais sans plus de succès.

Vous joint mon fichier,

Cordialement,
Philippe
 

Pièces jointes

  • BD Dranreb Forum.xls
    325 KB · Affichages: 43
  • BD Dranreb Forum.xls
    325 KB · Affichages: 48
  • BD Dranreb Forum.xls
    325 KB · Affichages: 34

Dranreb

XLDnaute Barbatruc
Re : Besoin d’aide pour module de classe

Bonsoir.

Des fois ça marche, des fois pas, je ne sais pas à quoi ça tient. Essayez CL.PlgTablo.Item(1, 1).Value ou bien CL.PlgTablo.Cells(1, 1).Value, il y en a bien un des deux qui va marcher !

Non, je voulais dire derrière l'instruction, sur une nouvelle ligne, pas à la suite dans l'instruction. Éventuellement sur la même ligne mais alors avec ":" devant. Comme un peu plus haut pour les Combobox avec Tag …Idt : .CBx.Locked = Not CL.Actif sauf que là c'est .TBx.Locked = CL.Actif. (interdit la modification sur une fiche non ouverte).

Pour le CP, déjà mettre le format derrière dans le TA.Add, et prévoir éventuellement un Case "CPo" dans la TA_KeyPress

Chez moi j'ai aussi surtout renommé les boutons BtnEntrée, BtnSupprimer, BtnImprimer et BtnEchap.

Edit: Ayant vu d'autres bogues, et le problème de la touche Echap qui se présente aussi pour les TextBox, je joins le fichier.
 

Pièces jointes

  • CBxLiéesFenec.xls
    331.5 KB · Affichages: 35
  • CBxLiéesFenec.xls
    331.5 KB · Affichages: 44
  • CBxLiéesFenec.xls
    331.5 KB · Affichages: 43
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 345
Messages
2 087 485
Membres
103 557
dernier inscrit
gerard.messerlin68@orange