Gestion de dossiers - Base données

goldenboy

XLDnaute Occasionnel
Bonjour à tous,

Je viens vous solliciter sur mon projet de gestion de dossier.

J'ai créé mes USF, je suis capable d'ajouter des données, mais je bloque sur la recherche, et je pense qu'ensuite je bloquerais sur la modification.

Chaque chose en son temps, je viens d'abord vous demander un coup de main sur la recherche.

Voici un fichier avec des explications de fonctionnement et de résultats attendus sur la feuille MODE D'EMPLOI.

Merci d'avance à tous ceux qui participerons et m'aiderons dans cette réalisation. :D
 

Pièces jointes

  • Test gestion dossier.xlsm
    82.9 KB · Affichages: 216
  • Test gestion dossier.xlsm
    82.9 KB · Affichages: 222
  • Test gestion dossier.xlsm
    82.9 KB · Affichages: 226
Dernière édition:

goldenboy

XLDnaute Occasionnel
Re : Gestion de dossier [Recherche multi critère]

Bonsoir Dranreb,

J'ai donc remodifier le code en respectant ce que vous m'aviez dit.

Je suis en train de faire le mutlipage, et il me viens une question.
Si les combobox de recherche deviennent à leur tour ceux de la fiche (pour modif ou création selon la valeur du bouton final) pourra-t-on quand même écrire une nouvelle valeur, sans que les combobox de recherche ne se mettent à jour ?
Ou plutôt, disons que l'on souhaite ajouter une donnée liées aux combobox de recherche, ce la va créer une nouvelle fiche ou modifier l'existante ?

Je sais pas trop si vous comprenez ce que je veux dire, et j'ai l'impression moi même de ne pas trop m'y retrouver.

Je continue sur le multipage et on verra ce que cela donnera.
Edit :

J'ai avancé sur le multipage. (ci joint)
Il me vient également une question. Le ComboBox de recherche "En attente..." contient actuellement trois valeurs. Normalement, il doit être limité à 5 valeurs, mais doit également proposer 5 valeurs : Pour la modification et la création. (Se sont peut-être des détails auxquels vous avez déjà pensé, qui pour moi, en toute honnêteté, reste flous quant à leurs solutions).

Qu'en pensez-vous ?

Ps : J'ai laissé l'ancien userform. On pourra le supprimer pour alléger le fichier si c'est ok.
 

Pièces jointes

  • Gestion-dossier 220413.xls
    263.5 KB · Affichages: 94
  • Gestion-dossier 220413.xls
    263.5 KB · Affichages: 90
  • Gestion-dossier 220413.xls
    263.5 KB · Affichages: 81
Dernière édition:

ChTi160

XLDnaute Barbatruc
Re : Gestion de dossier [Recherche multi critère]

Bonjour goldenboy
Bonjour Dranred
Bonjour le Forum

si je peux me permettre , pour ce qui est de ta demande :
il me vient également une question. Le ComboBox de recherche "En attente..." contient actuellement trois valeurs. Normalement, il doit être limité à 5 valeurs, mais doit également proposer 5 valeurs
la procédure de Dranred , tient compte du nombre d'intitulés Différents de la Colonne Statut dossier (texte) ,
donc lorsque tu vas y ajouter un nouvel Intitulé , il sera présent dans Le ComboBox de recherche "En attente..."
en espérant avoir pu te faire avancer .
Bonne Journée
Amicalement
Jean Marie
 

Dranreb

XLDnaute Barbatruc
Re : Gestion de dossier [Recherche multi critère]

Bonjour.

Ceci a été rédigé avant d'ouvrir votre classeur. Vous disiez :
Je suis en train de faire le mutlipage, et il me viens une question.
Et que je supposais qu'il comporterait un onglet Recherche et un autre Fiche spécifiques.
Si les combobox de recherche deviennent à leur tour ceux de la fiche (pour modif ou création selon la valeur du bouton final) pourra-t-on quand même écrire une nouvelle valeur, sans que les combobox de recherche ne se mettent à jour ?
Je crains que non, du moins pas dans tous les cas. Je ne pense pas que ce soit gênant, parce que si on a été obligé de copier les combobox, c'est qu'ils ne contenait rien de cohérent: soit une recherche inaboutie soit une intention de ne pas utiliser son résultat aboutit. Si le basculement vers la fiche a lieu par programme suite à sélection d'une ligne, les ComboBox ne seront ni copiés ni modifiés, la fiche sera simplement garnie selon cette ligne et il n'y aura pas de recherche. Seule une modification de certains champs de la fiche provoquera une recherche. La modification de "En attente…" n'en provoquera notamment pas.
Ou plutôt, disons que l'on souhaite ajouter une donnée liées aux combobox de recherche, ce la va créer une nouvelle fiche ou modifier l'existante ?
Si, parmi les ComboBox, ce champ de la fiche n'est qu'un critère de recherche, et non un élément fondamental d'identification du dossier, ça ne changera pas l'occurrence de celui qui est en cours de mise à jour.
Le ComboBox de recherche "En attente..." … des détails auxquels vous avez déjà pensé
J'avais pensé copier le List du ComboBox de recherche dans celui de la fiche, une seule fois, juste après exécution de CBL.Actualiser. À ce moment là, il contient la liste sans doublon de toutes les valeurs existantes de la base.

Je n'ai pas encore ouvert votre classeur. Je vais le faire maintenant.
À +

Vous vous êtes finalement rallié, je vois, à ma première idée: une présentation faisant à la fois office de recherche et de fiche, sans répétition des champs. Ça change tout. Il faut que je réfléchisse encore.
Edit: Non ça ne change peut être pas tant de choses que ça: l'onglet aura un statut interne de fiche quand les 3 ComboBox d'identification obligatoires fondamentaux seront renseignés ou qu'une ligne aura été sélectionnée ou s'il n'en existe qu'une. On les sauvegarde pour qu'ils puissent être utilisés comme champs de saisie et on verrouille ceux d'identification (Confirmez moi qu'il s'agit toujours de CONTRAT, RAISON et NOMSAL) On les restaure à utilisation d'un bouton Annuler ou du bouton Valider. Mais il reste certes des détails à régler.
Édit: Posons nous bien la question: Quelle combinaison minimale de caractéristiques obligatoires ne change jamais dans la vie d'un dossier et est unique dans leur ensemble ? (mais sans tenir compte d'exceptions très improbables qu'on pourra toujours contourner par d'exceptionnelles modifications directes dans les cellules: s'il refusera de les créer, le programme saura s'en accommoder si elles existent déjà.)
 
Dernière édition:

goldenboy

XLDnaute Occasionnel
Re : Gestion de dossier [Recherche multi critère]

Bonsoir Dranreb,

Ne mettez pas des actions sur vos onglets, mais leur nature en tant que support: "Liste" et "Fiche" ou leur vocation générale: "Consultation" et "Mise à jour".
Je ne voyait pas vraiment ce que vous vouliez dire, donc j'ai effectivement fait un userform contenant, et les champs de recherche et la fiche. Je suis toujours preneur de votre idée, celle-ci peut être intéressante. Vous pourriez m'en donner un aperçu ?

Je pense que pour être vraiment certain d'avoir une combinaison unique, il faut CONTRAT, RAISON, NOMSAL et PRENOM.

Un dossier ne peut pas être enregistré sans les données minimum suivantes :
CONTRAT - RAISON - ENATTENTE
En revanche, ENATTENTE change au cours de la vie d'un dossier.
Il reste donc CONTRAT et RAISON.
Le service ne change pas, mais ne fait pas parti des champs de recherche, et je ne sait pas si je dois le rendre obligatoire...

Pour le ComboBox de recherche "En attente...", normalement je suis censé avoir toutes les valeurs. ou alors on a plus besoins de ce programme :). Au pire, je peux toujours créer des lignes uniques avec les valeurs manquante pour que celles-ci soient intégrées dans la base et ressortent donc dans le formulaire.

Cordialement,
 

Dranreb

XLDnaute Barbatruc
Re : Gestion de dossier [Recherche multi critère]

Bonsoir.

J'ai un peu avancé sur le projet recherche et fiche à la fois.
J'y ai ajouté une pièce importante: GarnirChamps
Mais il y a encore du boulot !
Pour arriver à concilier les deux utilisations possibles des ComboBox, une variable logique ModeFiche indiquera qu'ils ne doivent plus modifier la liste ni le numéro de ligne courant si on les change. Ce mode s'instaurera soit en sélectionnant une ligne, soit en modifiant un champ saisissable, accessible lorsqu'il y a moins de 2 lignes et même garni s'il y en a une, ce qui assumera la sélection de cette ligne unique. La sélection manuelle d'une ligne parmi plusieurs complètera aussi les ComboBox non renseignés lors de la recherche.
La HabiliterContrôles promet de devenir balaise !
 

Pièces jointes

  • Gestion-dossier 220413.xls
    235 KB · Affichages: 64
  • Gestion-dossier 220413.xls
    235 KB · Affichages: 66
  • Gestion-dossier 220413.xls
    235 KB · Affichages: 72

goldenboy

XLDnaute Occasionnel
Re : Gestion de dossier [Recherche multi critère]

Bonsoir,

Vous avez drôlement bien bossé.
Dans l'userform initialise, il faut ajouter "en traitement" dans la combobox statut.

Code:
Me.CB_STATUT.List = Array("En attente", "En traitement", "Traité")

J'ai hâte de voir les premières possibilités de modification ou d'ajout de fiche !!!

Merci pour tout ce que vous avez déjà réalisé.
 

Dranreb

XLDnaute Barbatruc
Re : Gestion de dossier [Recherche multi critère]

Bonsoir.

Il vous faudra encore attendre un tout petit peu pour cela, je m'arrête là pour ce soir.
Surtout parce qu'il y a déjà de quoi faire en essais de mise au point avec ça.
C'est bien connu: le programmeur ne teste toujours que ce qui marche, alors ça ne sert à rien !…
La validation ce n'est plus grand chose à écrire.
À +

Edit
Bonjour.

D'ailleurs ça y est la BT_VALIDER_Click est écrite.
Il reste de la mise au point. Il y a un danger théorique de créer un doublon sur les 4 éléments d'identification si la recherche incluait AUTRECT ou ATTENTE et qu'on a tapé ensuite de l'inexistant, mais seulement avec ça, dans les autres ComboBox
La liste n'est pas remise à jour suite à une validation. Après suppression (non encore écrite) ce sera indispensable car les numéros de lignes de ne seront plus justes dans TNLgn. Après ajout, si, puisque l'ajout est fait à la fin de la liste.
À +
 

Pièces jointes

  • Gestion-dossier 220413.xls
    296.5 KB · Affichages: 83
  • Gestion-dossier 220413.xls
    296.5 KB · Affichages: 79
  • Gestion-dossier 220413.xls
    296.5 KB · Affichages: 78
Dernière édition:

goldenboy

XLDnaute Occasionnel
Re : Gestion de dossier [Recherche multi critère]

Bonjour Dranreb,

Je vois que vous avez pas mal avancé. Merci beaucoup.

J'ai un message d'erreur sur l'ajout d'une fiche : Erreur d’exécution '13': Incompatibilité de type.
Le débogage m’amène sur la dernière ligne de ce morceau de code :
Code:
Private Sub BT_VALIDER_Click()
With CBL.PlgTablo
   If LCou = 0 Then
      LCou = .Rows(.Rows.Count): .Rows(LCou).Copy: .Rows(LCou).Insert: LCou = LCou + 1

J'ai testé quelques fiches, et la consultation à l'air d'être bien rodée.
Vous avez bien compris le principe du créateur et du modificateur de fiche. Est ce qu'il est possible que le label NAMEDATE soit modifié sur l'usf en temps réel ? C'est à dire, qu'après une modification, la partie qui concerne le modificateur soit actualisée. Et tant qu'on est sur ce détail là, S'il n'y a pas eu de modification de faites, de remplacer "modifié le, par" par "N'a pas été modifié." ?

J'ai finalement réussi tout seul :) (du moins pour le remplacement dans le cas ou la fiche n'a pas été modifiée).

Code:
If L > 0 Then
    Me.LBL_NAMEDATE.Caption = "Dossier créé le " & Format(LSrc(1, 13), "dddd d mmmm yyyy") & " par " & LSrc(1, 14) & "," _
    & vbLf & IIf(LSrc(1, 15) <> "", "Modifié le " & Format(LSrc(1, 15), "dddd d mmmm yyyy") & " par " & LSrc(1, 16) & ".", "N'a pas été modifié.")
    Else
    Me.LBL_NAMEDATE.Caption = "Aucun dossier existant n'est isolé."
End If

J'ai également testé la capacité du fichier, en simulant environ 3000 lignes, avec 1500 En attente Bulletin et 1500 En attente contrepasse, et ça à l'air de tenir la route. Ça ne provoque pas une grosse lenteur. (juste quelques secondes de recherche).

Vous me direz quand vous voudrez que je vous fasse part de tous les critères avant enregistrement, et puis toutes les autres petites modifications à apporter.

Merci à vous pour tout.

Cordialement.

Ps : Je m'excuse de ne pas avoir pu vous prévenir que je n'étais pas disponible ce weekend, et par conséquent, de ne donner une suite qu'aujourd'hui. :(
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Gestion de dossier [Recherche multi critère]

Bonsoir.
Mais qu'est ce que j'ai fichu ? C'est pas LCou = .Rows(.Rows.Count) c'est LCou = .Rows.Count tout simplement.
Ça plante un peu plus loin sur IIf(Me.TB_DEBCT <> "", CStr(CDate(Me.TB_DEBCT)), Empty) parce que bien qu'elle n'aurait pas été retenue, l'expression est évaluée même si Me.TB_DEBCT = "". Il faut la transformer en If normal. Après quoi ça va jusqu'au bout.
Ça se voit que je n'ai pas testé parce que je ne savais pas quoi mettre dans les champs !

On devrait pouvoir ajouter GarnirChamps LCou derrière le End With de BT_VALIDER_Click pour voir apparaitre le changement de Date et de modificateur suite à une validation. Attention j'ai pris pour l'instant une autre option: la date de modif et le modificateur sont toujours renseignés même à la création parce qu'elle s'assimile en quelque sorte à la modification d'une ligne vierge, mais ils sont ensuite copiés dans leurs équivalents coté créateur si ceux ci sont vides. Et c'est écrit plutôt vers la fin de la procédure, où on ne sait plus si c'est une création ou une modification parce que le LCou n'est plus à 0. Mais ça pourrait se mettre au début: dans le If LCou = 0 on renseigne Date et créateur devant un Else ajouté, derrière lequel on ne renseigne que Date et modificateur devant le End If si vous y tenez. Mais ça rendrait plus difficile un classement de la liste sur les dates d'interventions pour auditer l'activité des évolutions de dossiers vu que ce ne serait plus forcément la date de modification, non renseignée la première fois.

Les contrôles supplémentaire seraient à mettre tout à la fin dans HabiliterContrôles, dans le bloc With Me.BT_VALIDER sur le même modèle que ceux qui existent déjà.
Sauf d'éventuels impératifs sur CONTRAT, RAISON, NOMSAL ou PRENOM qui devraient entrainer Saisissable = False au début pour empêcher de passer en mode fiche Ajout, parce qu'après c'est trop tard, on ne peut plus les changer.
 
Dernière édition:

goldenboy

XLDnaute Occasionnel
Re : Gestion de dossier [Recherche multi critère]

Bonsoir Dranreb,

Je n'arrive pas à transformer le IIf en simple If. (Pas si simple que cela apparemment...)

Comme j'apprend en même temps, je vous met ce que j'ai tenté pour que vous puissiez me corriger et que je puisse comprendre la différence.
Code:
LSrc(1, 7) = If Me.TB_DEBCT.Value <> "" then CStr(CDate(Me.TB_DEBCT)) else Empty: LSrc(1, 8) = Me.TB_SERVICE
J'ai aussi essayé ça :
Code:
If Me.TB_DEBCT.Value <> "" Then
LSrc(1, 7) = CStr(CDate(Me.TB_DEBCT))
else
Empty: LSrc(1, 8) = Me.TB_SERVICE
End If
Je crois que j'ai un problème avec le mot Empty. Je ne sais pas ce que cela veut dire.


Pour ce qui est des dates de création et modification, je suis d'accord avec vous sur le fait de mettre deux fois la même date lors de la création. Notre outil de gestion fonctionne déjà comme cela. Je me complique parfois la tache.
Par contre il y a le problème de l'actualisation de l'USF. Où alors, je n'ai pas bien compris votre message.:confused:

Je me suis aussi un peu plus penché sur l'ajout d'une fiche. (Même si cela ne fonctionne pas encore chez moi). Il faut que l'on puisse ajouter une fiche a partir du moment où la CB_CONTRAT et la CB_ENATTENTE sont renseignées. Actuellement, j'ai l'impression qu'il faut que toutes les ComboBox de recherche soient renseignées avant d'avoir accès au bouton "Ajouter".

A vous lire,
 

Dranreb

XLDnaute Barbatruc
Re : Gestion de dossier [Recherche multi critère]

Comme j'apprend en même temps, je vous met ce que j'ai tenté pour que vous puissiez me corriger
Très bien. C'était:
VB:
If Me.TB_DEBCT <> "" Then LSrc(1, 7) = CStr(CDate(Me.TB_DEBCT)) Else LSrc(1, 7) = Empty
   LSrc(1, 8) = Me.TB_SERVICE
Et vous me ferez 3 Avé et deux pater. Heu je veux dire deux utilisation de la touche F1 en ayant placé le curseur texte de l'éditeur sur If puis sur Empty. Vous y découvrirez deux syntaxes du If, une sans End If et l'autre avec selon qu'il y a une instruction directement derrière le Then ou non, et la signification du mot clé Empty en tant que sous type de Variant.
Pour l'actualisation je suggérais d'ajouter GarnirChamps LCou à la fin de BT_VALIDER_Click. Comme ça:
VB:
   End With
GarnirChamps LCou
CBL.Actualiser: ModeFiche = False: CBL.Activer
HabiliterContrôles
End Sub
J'aurai du y penser: ça montre la fiche telle qu'elle est après validation.
Actuellement, j'ai l'impression qu'il faut que toutes les ComboBox de recherche soient renseignées avant d'avoir accès au bouton "Ajouter".
Non. CONTRAT, RAISON, NOMSAL et PRENOM doivent être renseignés déjà rien que pour pouvoir accéder aux autres champs saisissables où la 1ère frappe instaure le mode Fiche en création. AUTRECT et ATTENTE n'ont pas besoin d'être renseignés pour cela puisqu'ils peuvent changer par la suite. Mais on peut rendre ATTENTE obligatoire en plus pour la validation. C'est déjà un peu le cas puisqu'il faut encore qu'au moins un champ saisissable soit renseigné pour pouvoir ajouter, or en mode fiche, ATTENTE a ce statut. Çà se traduit dans la programmation par l'idée que s'il n'y a rien à annuler c'est qu'il n'y a pas non plus matière à modifier ni à créer.
Si NOMSAL et PRENOM peuvent ne pas être connus à la création ça pose un problème car comment les distinguerez vous s'il y en a plusieurs pour mêmes CONTRAT et RAISON ? À moins que ça ne puisse jamais arriver parce que dans ce cas il est toujours forcément seul ? Ne serait ce parce que ce ne serait qu'une situation provisoire, en quelque sorte d'amorce à la naissance d'un nouveau contrat devant pouvoir être créée, et que s'ils sont vides NOMSAL et PRENOM doivent exceptionnellement être une seule fois modifiables par la suite ? Les règles ne sont pas claires pour moi…
Mais si c'est ça on peut y arriver en établissant comme règle que NOMSAL et PRENOM ne font partie des éléments obligatoires d'identification d'une ligne de dossier qu'à partir du moment où ils sont renseignés.

J'ai ajouté dans HabiliterContôles ces indispensables commentaires devant chaque instruction ou groupe d'instruction qui assume ce qu'ils expliquent ou simplement derrière l'instruction sur la même ligne quand ils ne commençent pas par "Rem. ——"
Ils sont dans l'ordre, à vous de les mettre au bon endroit. :
VB:
Rem. —— Le bouton Effacer n'est accessible que si au moins un ComboBox de recherche est renseigné.
… ' Et la liste: si elle contient quelque chose.
Rem. —— Les autres contrôles sont accessibles si on est déjà en mode fiche, ou s'il y a exactement une seule ligne dans la liste,
'       ou si elle est vide mais que tous les ComboBox obligatoires d'identification du nouveau dossier sont renseignés.
Rem. —— Détection d'un changement apporté, y compris d'abord, mais en mode fiche seulement, dans un ComboBox recherche facultatif.
… ' Il n'y a pas eu changement, donc on ne peut pas utiliser le bouton Annuler.
… ' Il y a eu changement, et le bouton Annuler permettra de rétablir l'état d'origine.
Rem. —— Suite au changement on bascule s'il y a lieu en mode fiche soit en sélectionnant d'office la seule ligne de la liste ce
'       qui provoque le basculement, soit en l'effectuant, puis mettant "Recherche figée.", l'ancien texte n'ayant plus de sens.
Rem. —— Les ComboBox obligatoires d'identification sont bloqués en mode fiche. 
Rem. —— Le bouton Supprimer n'est utilisable que sur un existant affiché d'origine, où il n'y aurait donc rien à annuler.  
   Rem. —— Le bouton Valider n'est tout au plus utilisable que sur une fiche modifiée, que le bouton Annuler pourrait rétablir.
     Rem. —— Mais ce n'est évidemment pas une condition suffisante.
On peut assouplir tout ce que vous voulez, jusqu'à dire que CONTRAT est le seul élément obligatoire d'identification du dossier, mais n'oubliez pas qu'a partir du moment où l'utilisateur parvient à entrer en mode fiche, il peut modifier tout ce qui est accessibles et éventuellement taper quelque chose qui existe déjà dans un autre dossier. Mais si vous juger que grâce à la recherche et au sérieux de vos collaborateurs le risque est faible, allons y !
 
Dernière édition:

goldenboy

XLDnaute Occasionnel
Re : Gestion de dossier [Recherche multi critère]

Bonjour Dranreb,

Merci pour cette explication sur le If. Pour le Empty, je n'ai pas vraiment compris.
J'ai trouvé ça comme explication :
Le mot clé Empty est utilisé comme un sous-type Variant. Il indique une valeur de variable non initialisée.
C'est un peu léger.


Pour l'actualisation de l'usf c'est ok.
Pour ce qui est de l'ajout des commentaires dans le habiliterContrôles, je pense les avoir bien placés. De toute manière, si je les ai mal placés, c'est que j'aurais rien compris au code. :)

Pour ce qui est de la possibilité d'accéder au mode fiche (en ajout, donc LB_RESULTAT = 0 lignes), et des renseignements minimums pour pouvoir le faire, je viens d'y re-réfléchir. :eek:
Il y a des choses auxquelles je n'avais pas pensé et que je ne vous avais pas expliquées. Je suis confus. :confused:
J'espère que cela ne va pas être trop compliqué.

Nous recevons parfois des dossiers (ou plutôt des éléments de dossier) pour lesquels nous ne connaissons quasiment rien à part la raison sociale ou le numéro (complet ou une partie) du contrat ou d'un des contrats. (santé ou prévoyance).
Si nous avons le numéro de contrat ou une partie, nous pouvons retrouver la raison sociale.
Si nous avons la raison sociale, nous pouvons retrouver le contrat ou les contrats.
Ensuite, selon l'action menée et la réponse attendue, et pour pouvoir retrouver le dossier dans l'armoire, la CB_ENATTENTE (mail, contrepasse etc...) doit elle aussi absolument être renseignée.

Donc si j'ai bien compris le fonctionnement, il faudrait au minimum les combinaisons suivantes pour pouvoir accéder au mode fiche :
CB_CONTRAT (7 caractères mini) + CB_RAISON + CB_ENATTENTE ou
CB_AUTRECT (7 caractères mini) + CB_RAISON + CB_ENATTENTE.

Une fois le mode fiche activé, il y a d'autres obligations avant de pouvoir ajouter une fiche :
Les Options Buttons doivent être renseignés. Que se soit dans l'outil ou droits validés. on peut peut-être mettre non par défaut.
Le CB_Statut doit également être renseigné.

Il y a aussi des obligations de renseignement, mais qui sont soumises à conditions.
Si le dossier est en attente contrepasse, le service doit absolument être renseigné.
Toujours en attente contrepasse, si c'est le contrat santé qui est renseigné, le montant 1 devra également être renseigné. Si le contrat prévoyance est renseigné, le montant 2 devra être renseigné. Si les deux contrats sont renseignés, on attend pas forcément une contrepasse sur les deux. Mais au moins sur un. Sinon le dossier ne serait pas en attente contrepasse...

Si le dossier est en attente règlement, même correspondance que pour la contrepasse.

Même chose pour les dossiers en attente complément.

J'espère que vous y voyez claire dans mes explications.
Voici le fichier mis a jour.

J'ai le cerveau qui fume bien trop à mon gout pour un 1er mai !!!!
 

Pièces jointes

  • Gestion-dossier 010513.xls
    277.5 KB · Affichages: 70
  • Gestion-dossier 010513.xls
    277.5 KB · Affichages: 80
  • Gestion-dossier 010513.xls
    277.5 KB · Affichages: 84

Dranreb

XLDnaute Barbatruc
Re : Gestion de dossier [Recherche multi critère]

Bonjour.
il faudrait au minimum les combinaisons suivantes pour pouvoir accéder au mode fiche :
CB_CONTRAT (7 caractères mini) + CB_RAISON + CB_ENATTENTE ou
CB_AUTRECT (7 caractères mini) + CB_RAISON + CB_ENATTENTE.
Pas d'accord. Je ne veux que des éléments immuables une fois la ligne créée.
Il n'en reste qu'un et c'est RAISON et non CONTRAT comme je le croyais. ENATTENTE n'en fait partie. D'ailleurs selon l'état de la recherche, toutes les valeurs possibles peuvent ne même pas être proposées. On ne peut à coup sûr le renseigner que dans la fiche.

Et qu'en est il du NOMSAL et PRENOM ? Vous auriez grandement intérêt, soit dit en passant, ne serait ce que pour économiser un filtrage de Dictionary, à les grouper dans une seule colonne et donc un seul ComboBox, à moins que vous n'ayez besoin à partir de la liste de produire des documents où ils figureront séparés ? Peut il toujours y avoir plusieurs dossiers avec mêmes CONTRAT, AUTRECT et RAISON mais des salariés différents ? Auquel cas ceux ci devront aussi devenir des éléments immuables d'identification. Je propose désormais que seul RAISON soit obligatoire pour entrer dans une nouvelle fiche, sachant que si les autres (à part ENATTENTE) sont renseignés, ils ne pourront plus y être modifiés, que ce soit la fiche d'un nouveau dossier ou d'un existant.

Si "non" peut être assumé par défaut il est par défaut toujours renseigné ! Vraiment, mettez plutôt une case à cocher au lieu de deux bouton d'options, c'est la façon normale, naturelle et professionnelle d'exprimer toute information à caractère ON/OFF. En outre elle pourrait supporter un troisième état "non défini" apparaissant sous la forme d'une coche grisée. Et, indépendamment et accessoirement, dans la liste, VRAI et FAUX serait techniquement plus simple à assumer que "oui" et "non", et tout aussi clair. Si ces deux révisions étaient adoptées simultanément, la programmation se résumerait à de simples affectations dans les deux sens entre les Value des cellules et celles des CheckBox.

Vous avez mis les commentaires au bon endroit. Je les faisais juste précéder d'une ligne vide, et le Rem. —— Le bouton Valider… vraiment juste devant .Enabled = Me.BT_ANNULER.Enabled
À +
 

goldenboy

XLDnaute Occasionnel
Re : Gestion de dossier [Recherche multi critère]

Bonsoir,

Pas d'accord. Je ne veux que des éléments immuables une fois la ligne créée.
Il n'en reste qu'un et c'est RAISON et non CONTRAT comme je le croyais. ENATTENTE n'en fait partie. D'ailleurs selon l'état de la recherche, toutes les valeurs possibles peuvent ne même pas être proposées. On ne peut à coup sûr le renseigner que dans la fiche.
Je propose désormais que seul RAISON soit obligatoire pour entrer dans une nouvelle fiche, sachant que si les autres (à part ENATTENTE) sont renseignés, ils ne pourront plus y être modifiés, que ce soit la fiche d'un nouveau dossier ou d'un existant.
Donc à partir du moment où l'on renseigne la raison sociale , on aurait accès à la fiche ? Soit en modification si on sélectionne une ligne dans la LB_RESULTAT, soit en création si la LB_RESULTAT ne contient aucune ligne ?

Ok, ça me va. En faite, le reste ce passera dans le habiliterContrôle.
- Au minimum un contrat de renseigné. (Santé ou prévoyance, avec un minimum de 7 caractères numériques)
- Les cases Dans l'outil et droits validés renseignées.
- Et le reste d'obligation conditionnées à la CB_ENATTENTE.
- Etc...

Et qu'en est il du NOMSAL et PRENOM ? Vous auriez grandement intérêt, soit dit en passant, ne serait ce que pour économiser un filtrage de Dictionary, à les grouper dans une seule colonne et donc un seul ComboBox, à moins que vous n'ayez besoin à partir de la liste de produire des documents où ils figureront séparés ?
Il se peut effectivement que je travail à partir de la base et me serve des informations séparément.
Ma question va vous paraître bête, mais qu'est ce que l'on gagne à économiser un filtrage de Dictionary ?

Peut il toujours y avoir plusieurs dossiers avec mêmes CONTRAT, AUTRECT et RAISON mais des salariés différents ?
Il peut effectivement y avoir des dossiers avec même CONTRAT, AUTRECT et RAISON, avec des salariés différents.

Cela me fait également penser que l'on pourrait aussi avoir une information erronée quant au numéro de contrat, et que nous soyons obligés de reprendre la fiche erronée pour y changer le numéro du contrat. Donc pas immuable.
J'y pense aussi, mais il se peut la même chose quant à la raison sociale... Là je crois que vous devez vous arracher les cheveux... Je pense que si on a eu une information erronée sur la raison sociale, ou si celle-ci change pendant la durée de vie d'une fiche, nous clôturerons la fiche erronée pour en créer une nouvelle.

Si "non" peut être assumé par défaut il est par défaut toujours renseigné ! Vraiment, mettez plutôt une case à cocher au lieu de deux bouton d'options, c'est la façon normale, naturelle et professionnelle d'exprimer toute information à caractère ON/OFF. En outre elle pourrait supporter un troisième état "non défini" apparaissant sous la forme d'une coche grisée.
Et comme je suis ouvert à toutes vos propositions, j'ai modifié l'USF avec des cases à cocher. :)

Voici le fichier modifié. (J'ai enlevé l'ancien USF pour alléger le fichier.)

Ps :
- J'ai pas nommé les checkbox et j'ai avancé sur l'onglet Statistiques.
- A l'initialisation de l'usf, je force l'ouverture sur la page 0 du multipage.
- J'ai modifié les commentaires Rem. etc...
- J'ai fait des tests, jusqu’à 14000 lignes, et ça à l'air de tenir la route. (mais je ne pense pas dépasser les 8000 lignes).
Bonne soirée et merci.
 

Pièces jointes

  • Gestion-dossier 010513.xls
    247 KB · Affichages: 71
  • Gestion-dossier 010513.xls
    247 KB · Affichages: 69
  • Gestion-dossier 010513.xls
    247 KB · Affichages: 70
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Gestion de dossier [Recherche multi critère]

qu'est ce que l'on gagne à économiser un filtrage de Dictionary ?
Un peu de rapidité d'exécution. Votre "quelques secondes" dans un autre message m'a un peu fait tiquer…
Mais s'il n'y a pas de raison de garder nom et prénom séparés c'est tellement plus pratique de les avoir ensemble dans une seule colonne identifiant simplement la personne, que ça vaudrait presque le coup de les mettre quand même ensemble quitte à utiliser un séparateur "|" entre le nom et le prénom.

Les erreurs peuvent toujours se corriger en intervenant exceptionnellement dans les cellules. Donc quand je dis immuable, je sous entend en principe seulement. Mais si vous ne tenez à aucune sécurité, moi je veux bien. On pourra alors allez dans la fiche pourvu qu'il n'y ait pas plusieurs lignes dans la liste dont aucune n'est sélectionnée, et dans la fiche on pourra partout remplacer n'importe quoi par n'importe quoi d'autre puisqu'une fois qu'on y est on ne peut plus contrôler la cohérence des changements par rapport au reste de la liste.
j'ai modifié l'USF avec des cases à cocher.
Bien. Mais il ne faut pas y mettre "Oui / Non" mais le sens de son état coché: "Dans l'outil" et "Droits validés". On ne met généralement pas de désignation devant les cases à cocher (ni donc au dessus je suppose, puisque vous avez décidé de les mettre au dessus, à moins que vous ne puissiez y mettre autre chose, par exemple "Droits :" et dans la case "Validés").

Et pour VRAI/FAUX dans la liste au lieu de "oui"/"non" êtes vous d'accord ? Remarque: ça se change facilement à l'aide d'une formule dans une colonnes libre: en T2:
Code:
=SI(I2<>"";I2="oui";"")
Propager vers le bas puis 1 colonne à droite, atteindre les formules texte, touche Supppr, Copier, Collage spécial par valeurs sur I:J


Avez vous encore besoin d'un coup de main pour finir la programmation ?

J'ai légèrement remanié deux procédures récentes de ComboBoxLiés:
VB:
Public Sub Stopper()
Dim I As Long
Stoppé = True
For I = 1 To UBound(TCBM)
   With TCBM(I): Set .DicCBx = .DicBdD: .CBx.List = .DicCBx.Keys
      If FondsÀColorer Then .CBx.BackColor = &H80000005
      End With
   Next I
End Sub
'

Public Sub Activer()
Dim I As Long
If FondsÀColorer Then For I = 1 To UBound(TCBM): TCBM(I).CBx.BackColor = FondCyan: Next I
Stoppé = False
End Sub
Ça a surtout pour but d'avertir par la couleur que la recherche est redevenue opérationnelle suite à une validation, sinon on ne le sait pas forcément, car rien d'autre ne change, et on peut se croire encore dans la fiche.

J'ai aussi ajouté une nouvelle procédure après la Private Sub Cbx_Change dans ComboBoxMembre:
VB:
Private Sub CBx_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Assumé Then Parent.CBM_Change Me
End Sub
J'ignore si elle sera indispensable, mais elle permet de figer un peu, en cliquant dessus, un ComboBox contenant quelque chose qui ne résulte pas d'un choix direct de l'utilisateur, pour que ça ne disparaisse pas s'il tape du neuf dans un autre.
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
380
Réponses
3
Affichages
195
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 474
Messages
2 088 723
Membres
103 935
dernier inscrit
GGV