MsgBox d'alerte avant ajout, svp

pompaero

XLDnaute Impliqué
Bonjour à tous

Je viens vers vous pour un coup de pouce sur des MsgBox avant enregistrement ou modification.
Je viens de créer un début de fichier avec une BDD concernant des personnels sur plusieurs sites, jusque la je pense y avoir arrivé.
J'aimerai sur Usf-Ajout et UsF_Modif avoir un MsgBox afin d'éviter les doublons sur les Nom, Prénom, Site et Fonction car je n'arrive à le faire.
Egalement sur Usf-Ajout un MsgBox pour obliger le renseignement de tous les objets (Textbox, Combobox), chose que j'ai commencé à faire mais ne fonctionne pas bien.

Merci à vous
Cdlt.
 

Pièces jointes

  • Mise en place fichier casque.xlsm
    80.8 KB · Affichages: 99

Dranreb

XLDnaute Barbatruc
Bonjour.

Voilà le résultat, quand on fait un UserForm différent pour chaque action ajout, modification ou suppression, au lieu d'un seul avec recherche obligatoire incontournable assumée par objet ComboBoxLiées et possibilités d'actions finales imposées selon préexistence trouvée ou non !
 

pompaero

XLDnaute Impliqué
Bonjour Dranreb

Merci de ta réponse,
Je suis sur ce petit projet depuis 15 jours maintenant en écoutant plusieurs conseils on ma conseillé justement de créer les différents UserForm et donc maintenant je ne sais plus comment faire.
Ca fais 3 présentations que je fais et j'ai l'impression de ramer sur ce sujet qui parai simple, je pense.

Si tu a des idées je suis preneur, quitte à recommencer de zéro si il le faut.

Cdlt.
 

Dranreb

XLDnaute Barbatruc
Alors inspire toi du classeur CBxLiéesPompaero.xlsm que j'avais joint un jour dans une discussion.
Ce n'était pas seulement une solution à un problème isolé, mais aussi une solution générale à tous les problèmes à venir de mise à jour ou consultation de tableaux.
Parce que ce sont des modules de service ultra puissants et simples à utiliser coté recherche dedans d'informations.
 

Paf

XLDnaute Barbatruc
Bonjour pompaero, Dranreb,

Egalement sur Usf-Ajout un MsgBox pour obliger le renseignement de tous les objets (Textbox, Combobox), chose que j'ai commencé à faire mais ne fonctionne pas bien.

Code:
'# --> METTRE EN PLACE MsgBox OBJETS SI VIDE
If Me.TBxAjouNom = "" Or Me.TBxAjouPrenom = "" Or Me.CBxAjouSite = "" Or Me.CBxAjouFonction = "" Then
  MsgBox "Renseignement obligatoire ! !"
End If
Exit Sub

On n'était pas loin !
Mais le Exit Sub à l'extérieur du test se déclenchait systématiquement quelque soit le résultat du test.
Donc, remonter Exit Sub avant End If

Pour le test de doublon, une solution possible:

Pour l'USF UsF_Ajout dans Private Sub CdB_NouveauAjou_Click(), insérer ce code
VB:
 ' verif doublon
With LBxVisuelAjout
If .ListCount > 0 Then
     For i = 0 To .ListCount - 1
        If .List(i, 1) = CBxAjouSite And _
            .List(i, 2) = TBxAjouNom & " " & TBxAjouPrenom And _
            .List(i, 3) = CBxAjouFonction Then
            Doublon = True
            Exit For
        End If
   Next
End If
End With
If Doublon Then
    MsgBox "Existe déjà..."
    Exit Sub
End If
' fin verif
entre
Code:
 '# --> METTRE EN PLACE MsgBox POUR EVITER LES DOUBLONS SUR LES NOMS, PRENOMS, SITE ET FONCTION
et
Code:
  L = Sheets("BDDAgent").Range("A65536").End(xlUp).Row + 1

Ne pas oublier,en tête de sub, de rajouter les déclaration de i as long et Doublon as Boolean

A+

Edit : précision sur USF et sub concernées
 
Dernière édition:

pompaero

XLDnaute Impliqué
Bonjour Dranreb et Paf

Dranreb,
je me souvient dont tu parle, je vais voir pour essayer d'adapter par la suite ou refaire un nouveau test, pour le moment je suis parti sur ce principe mais comme c'est un fichier que je ne dois absolument pas louper (Fichier demandé par ma direction pour un suivi de dotation, vérification et entretien de casque avec plusieurs sites au niveau national), et niveau présentation je sais pas trop comment m'y prendre pour l'instant donc fais plusieurs essais.

Paf,
Merci de ta contribution ton code fonctionne bien et reste dans l'optique que je me suis donné, j'ai adapté dans mes autres UF et cela me permet d'avancer de la construction du projet pour le moment.

Encore merci à vous et si besoin je reviens vers le forum qui viens de changer avec une belle présentation

Cdlt
 

Dranreb

XLDnaute Barbatruc
Je me demande s'il ne serait pas plus simple de tout mettre dans un seul tableau.
Quitte à ce qu'il contienne aussi des casques non attribués et des personnes n'ayant momentanément pas de casque…
Mais c'est juste une question que je me pose…
 

pompaero

XLDnaute Impliqué
Bonjour Dranreb

Ah oui tu crois !!

J'imagine en tant expert VBA, si tu propose cette idée, c'est qu'elle doit être possible et plus simple (plus simple! chose que je recherche)
Cela signifie que je reparte de zéro avec le feuille "Fiche Vie Materiel" par exemple et y ajouter le Nom, Prénoms, Site et Fonction ?
Dit moi ce que je dois faire en construction UF et Feuille pour t'avancer, si tu veux.
Ton idée m'intéresse fortement, si tu veux bien m'aiguiller la dessus, je suis prêt à repartir de zéro pour avoir un fichier qui tiens la route et travailler par la suite dans de meilleurs conditions.

Mon fichier en PJ pour voir en j'en suis.
Merci de ton soutien

Cdlt
 

Pièces jointes

  • Mise en place fichier casque.xlsm
    118.2 KB · Affichages: 77

Dranreb

XLDnaute Barbatruc
Bonsoir.
Ne t’emballe pas. C'était juste une réflexion mais il n'est pas tout à fait sûr que ce soit la meilleure solution.
Ce qui est sûr c'est que moins il y a de tableaux mieux ça vaut parce que tout ce qui est en relation est sur la même ligne. Pas obligé d'aller chercher des infos associée à une clé dans une autre table. Et la limite de ce principe c'est de vraiment avoir tout dans un seul tableau. Mais après mon esprit à plutôt erré vers l'idée de deux tableaux, un pour l'historique des casques, l'autre pour les personnes (auraient elles un numéro de matricule tout comme les casques ont une identification ?).
Le point commun des deux idées serait du coté utilisation: Un seul UserForm avec une série de contrôle pour la personne, une autre pour le casque, et tous les boutons nécessaires pour faire correspondre les données avec la réalité: Ajouter, Modifier, Supprimer séparément l'un ou l'autre, mais aussi associer ou dissocier le casque et la personne. Mettre des ComboBox pour toutes données devant pouvoir faire l'objet de recherches, quitte à ne pas mettre la flèche pour inciter à la frappe au besoin (propriété ShowDropButtonWhen à 0).

Remarque: Si tu a vraiment été frappé par la simplicité de l'idée d'un seul tableau, allons-y comme ça. Si la "Fiche Vie Materiel" contient tout ce qu'il faut c'est bon mais peut être faut-il y ajouter quelques infos de "Tableau Suivi" non ?
Chaque ligne représenterait un évènement daté en somme.
 
Dernière édition:

pompaero

XLDnaute Impliqué
Bonjour
Je ne m'emballe pas tkt, lol
Ton idée me plait assez fortement mais n'arrive pas trop à l'imaginer dans ma tête comme toi tu le vois.
Pour les tableaux moins il y en a mieux sais, ça je m'en suis rendu compte, mais pas évident à faire en tant qu'amateur.
Mon idée était d'avoir la gestion des personnels à part des casques et ensuite faire un lien avec les deux mais je ne suis pas sur de mon coup.
Mon rôle dans tout ça, va être d'enregistrer tous les personnels des différents sites pour leurs affecter un casque et ensuite effectuer un suivi d'entretien annuel qui peu amener à changer une ou deux pièces du casque ou voir carrément le changer.
L'idée des deux tableaux me satisfait assez bien, voir un troisième car pour la feuille "Fiche Vie Materiel" et "Tableau suivi" je craint au niveau fonctionnel que cela ce complique (ne voyant pas trop la finalité de ton idée dans ma tête) car :
La feuille "Fiche Vie Materiel" sert de carte d'identité du casque (une seule ligne par casque)
La feuille "Tableau suivi" sert au suivi d'entretien annuel (plusieurs ligne par casque)
donc le dessus, je te carte blanche sois un seul tableau ou garder les deux.
Pour l'identification des personnes, elle n'existe pas mais le principe peut être intéressent afin d'éviter les doublons, je pense, non ? Donc, si cela facilite le lien avec les casques tu peux en mettre une identification aux personnes (par ex : le Matricule de la Sté)
Un seul UserForm avec une série de contrôle pour la personne, une autre pour le casque à l'ère efficace et simple d'utilisation, du moment que l'on puisse ajouter, modifier une personne sans doublons puis affecter, suivre l'entretien des casques par personnes, cela me convient pour moi.
Pour les suppressions j'aimerai garder le tout en archive afin de pouvoir retrouver en cas d'erreur ou soucis (interne Sté ou Fournisseurs).
Le feu est allumé, reste plus qu'à forger.. Lol

PJ mon fichier pour mon évolution.
Cdlt
 

Pièces jointes

  • Mise en place fichier casque.xlsm
    135.6 KB · Affichages: 116

Dranreb

XLDnaute Barbatruc
Bonjour.
Ce qui m'embête bien c'est qu'il y ait plusieurs tableaux pour les casques.
Ça risque de compliquer pas mal.
Peux tu avancer un peu sur la constitution de l'UserForm unique.
Supprime la colonne Recherche bien sûr. On cherchera un nom et/ou un prénom dans leurs ComboBox réspectives c'est plus simple. Remplace la par le matricule par exemple.
L'idée, si on ne peut pas tout avoir dans un seul tableau, c'est d'utiliser deux objets ComboBoxLiées dans l'UserForm, un basé sur un tableau de personnes, l'autre sur un tableau casques. L'idt casque et le matricule de la personne seraient les seuls à être à la fois des ComboBox basées sur leurs tableaux respectifs et une info associée trouvée réciproquement dans l'autre tableau. On ne peut pas utiliser un 3ième ComboBoxLiées pour l'historique des casque parce qu'il devrait prendre en charge la ComboBox d'idt casque qui est déjà prise en charge par le 2ième.
Alors il va falloir transformer en Dictionary un Sujet basé sur l'historique…
 
Dernière édition:

pompaero

XLDnaute Impliqué
Bonjour,
Pour les tableaux des casques, je veux bien en faire qu'un du moment que je puisse effectuer une recherche par la suite soit d'une Fiche (carte d'identité) d'un casque, l'historique du suivi d'une personne ou un casque individuellement puis l'ensemble d'un site dans le but d'une impression pour donner à chaque responsable de site. A toi de voir pour le mieux.

Jai construit un UserForm unique dénommé (UsF_Unique) en espèrent avoir bien compris tes attentes. Si nécessaire il est possible de modifier, enlever, ajouter des objets.
Concernant le Matricule des personnes des n° sont mis au hasard et seront, je pense à rentrer manuellement.
Dans le cas d'un seul tableau, j'ai préparé sur la droite du UsF_Unique (masqué) les 5 ou 6 objets correspondant au "Tableau suivi"

J'espère avoir fais de mon mieux pour t'avancer.
Merci à toi pour ton aide.

P.J
 

Pièces jointes

  • Mise en place fichier casque - UF unique.xlsm
    141.9 KB · Affichages: 74

Dranreb

XLDnaute Barbatruc
Oui si on pouvait ça m'arrangerait. Mais ça irait en même temps à l'encontre d'un principe de ne pas utiliser une colonne à plusieurs choses.
Il faudrait alors une colonne type d'enregistrement qui indiquerait s'il s'agit d'un enregistrement descriptif du casque ou d'un contrôle technique, et mettre si possible les infos un peu semblables dans les 2 types d'enregistrements dans les mêmes colonnes.
Mais bon, sinon je peux me débrouiller avec deux tableaux séparés à l'aide d'un Dictionary.
Puisqu'on a décidé de garder séparés les personnes et les casques, il ne serait pas nécessaire de rappeler des détails site, fonction et nom, propres à la personne, dans la base Casque. En revanche le matricule de la personne est essentiel pour établir le lien entre les deux. Et il faudrait à mon avis un bouton pour rompre cette liaison entre un casque et une personne, afin de pouvoir ensuite lui en attribuer un autre qui n'est pas déjà attribué.

Voudrais tu avancer sur l'initialisation de la partie Casque, c'est un peu plus flou pour moi.
Nom de casque d'un coté, N°ID de l'autre, et puis il y a peut être des changements si les info perso sont à supprimer au profit de son matricule…
Marrant: La partie recherche personne marche déjà !
Mais bon il reste plein de choses à mettre derrière, bien sûr…
 

Pièces jointes

  • CbxLiéesPompaeroRelationnel.xlsm
    174.3 KB · Affichages: 80
Dernière édition:

pompaero

XLDnaute Impliqué
Quel boulot, tu a déjà fais !!! tu appel ça simple ? et ben !!

La présentation du UF me semble très intéressante, enthousiasme pour la suite.
Je n'arrive pas trop encore à voir la finalité du UF, mais bon, je fais confiance sans soucis.
Si j'ai bien compris, pour le moment tu a effectué le moyen de recherche pour la partie personnel et Casque.
J'ai donc renseigné l'initialisation de la partie Casque (si j'ai tout compris !! pas sur.) sauf que j'ai laissé le Site, Nom et Fonction, car pour moi c'est plus de chercher par site, ensuite le nom et pour info perso je vois la Fonction.
Le Matricule et N°ID Casque y sont également.
Si ça ne convient pas pour ton déroulement, évidemment tu peux modifier. Ce qui me semble un peu étonnant c'est que tu commence par la Recherche, alors que perso j'ai toujours commencé par remplir les BDD.
Effectivement, la partie recherche personne marche déjà ! mais comment vas tu fais pour renseigner la DBB personne ?
J'espère avoir bien fais, en tout cas.
 

Pièces jointes

  • CbxLiéesPompaeroRelationnel.xlsm
    178.2 KB · Affichages: 92

Statistiques des forums

Discussions
312 198
Messages
2 086 149
Membres
103 132
dernier inscrit
hedfahmi