XL 2016 [ RESOLU ]Problème avec formulaire recherche

DG-59

XLDnaute Nouveau
Bonjour j'ai suivie quelque tuto sur internet mais je suis un peux bloqué

je cree un formulaire de contact pour géré des familles d'accueil pour une association protection animalière

le module ajouter fonctionne bien mais je bloque sur la fenêtre recherché qui ce trouve sur la feuille accueil

sur la page feuil1 qui sera masqué et je pense verrouiller, j'ai mis la recherche V mais après je suis perdu

pouvez vous regardé
Merci d'avance
 

Pièces jointes

  • FICHIER FAMILLE D'ACCUEIL.xlsm
    5.4 MB · Affichages: 48

DG-59

XLDnaute Nouveau
Bonjour.
Je l'ai un peu fait évoluer.

j'ai test sa fonctionne super bien

j'ai du modifier ce que j'avais fait pour l'association mais en laissant les modifications que vous avez fait en code

juste ajouté des détails ect, pensez vous que ces possible de faire apparaître une ville avec le code postal ?

txtbox = code postal
listbox =ville
 

Pièces jointes

  • CBxLiéesDG-59.xlsm
    162.1 KB · Affichages: 25

Dranreb

XLDnaute Barbatruc
Bonsoir.
Le mieux c'est de puiser dans la base, comme ça vous aurez en même temps une sélection des animaux déjà hébergés dans cette ville.
Vous pouvez mettre autant de CombobBox que vous voulez et en confier la charge à CL au lieu de CA.
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Oui, c'est un problème que j'avais un peu pressenti. Et je ne sais pas encore trop comment y palier.
Saisissez d'abord le code postal puis cliquez dans la ville pour qu'elle passe de 'Assumé' à 'Imposé' et saisissez le reste après.
Mais j'ai conscience que ce n'est pas parfait.
Une autre chose: mettre dans la fenêtre de propriété du CBnChanger la Enabled à True et supprimer les instructions qui le changent, afin qu'on puisse bloquer la fiche même en création.
Mais dans ce cas, une fois bloquée, si on change la ville ou le CP la correspondance de l'autre n'est plus assumée. À moins d'implanter une procédure ChangeStop de l'objet CL qui le fasse quand même.
Voudriez vous homogénéiser peu à peu les trigrammes en tête des noms d'objets selon cette liste :
upload_2018-12-19_10-39-30.png

Par exemple au lieu de Txtfaitpar, TBxFaitPar.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
La procédure qui permettrait d'assumer la correspondance quand la fiche est bloquée :
VB:
Private Sub CL_ChangeStop(ByVal CBM As ComboBoxMmbr)
   Dim L As Long
   Select Case True
      Case CBM.CBx Is CBxCP
         L = CBM.SujetBdD(1)(CBM.CBx.ListIndex)(1)
         CBxVille.Text = CL.PlgTablo(L, CBM.Col + 1).Value
      Case CBM.CBx Is CBxVille
         L = CBM.SujetBdD(1)(CBM.CBx.ListIndex)(1)
         CBxCP.Text = CL.PlgTablo(L, CBM.Col - 1).Value
      End Select
   End Sub
CBM.SujetBdD(1)(CBM.CBx.ListIndex)(1) : première ligne dans la base correspondant au ListIndex de la ComboBox qui a changé. Parce que CBM.SujetBdD, c'est le Sujet ce cette ComboBox, dont l'élément 0 est à l'image de sa propriété List, …(1) c'est, cet élément 1 du Sujet, la liste des tables de numéros de lignes, …(CBM.CBx.ListIndex) c'est la table de numéros de ligne qui y correspond, et …(1) et bien c'est le 1er d'entre eux vu que n'importe lequel conviendrait. Compliqué hein ? Je ne m'attendais pas à ce que vous sachiez l'écrire !

Conseil: Ne bloquez la fiche qu'une fois que tous les vrais éléments d'identification garantissant son unicité ont été spécifiés, et en modification éviter autant que possible de changer ceux ci. Ce blocage neutralise la recherche et entraine donc un risque minime, voire presque seulement théorique, de créer des doublons. Mais bon… s'il y a eu une faute d'orthographe dans un nom par exemple, il y a peu de chances que sa correction aboutisse à un autre nom existant, surtout avec tout le reste pareil en plus…
 
Dernière édition:

DG-59

XLDnaute Nouveau
Re
j'avais un petit problème de bouton j'ai changer sa fonctionne Ajout et Recherche fonctionne
Cp et ville aussi
juste l'effacement qui beug mais bon
Chapeau pour le boulot sans vous je serai très loin de ce résultat
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Ce n'est pas un bogue, c'est tout à fait normal. Lorsqu'on change une ComboBox prise en charge par un ComboBoxLiées ça déclenche d'office une recherche, et si la combinaison de valeurs n'existe pas dans la base, ça nettoie tous les contrôles associés. À moins que l'objet soit stoppé. C'est le rôle du bouton "Bloquer", c'est pour qu'on puisse changer la valeur d'une ComboBox sans que ça ne déclenche de recherche. Ainsi on peut la changer sans que rien d'autre ne s'efface. La fiche garde le statut qu'elle avait avant de bloquer, Ajouter ou Modifier. Ne pas Libérer, en principe, jusqu'à cette validation.
Le seul truc c'est que si on change le CP ou la ville ça ne rectifie pas l'autre si la fiche est bloquée. C'est pourquoi je vous propose cette Sub CL_ChangeStop qui fait en sorte que ça se fasse quand même.
Mais j'ai l'impression qu'il peut y avoir plusieurs codes postaux pour Paris. Si c'est la cas il faudrait peut être la rectifier comme ceci :
VB:
Private Sub CL_ChangeStop(ByVal CBM As ComboBoxMmbr)
   Dim L As Long, CBMrCP As ComboBoxMmbr
   Select Case True
      Case CBM.CBx Is CBxCP
         If CBxCP.MatchFound Then
            L = CBM.SujetBdD(1)(CBxCP.ListIndex)(1)
            CBxVille.Text = CL.PlgTablo(L, CL.Item(CBxVille).Col).Value
         Else: CBxVille.Text = "": End If
      Case CBM.CBx Is CBxVille
         If CBxVille.MatchFound Then
            Set CBMrCP = CL.Item(CBxCP)
            If CBxCP.MatchFound Then
               L = CBMrCP.SujetBdD(1)(CBxCP.ListIndex)(1)
               If CBxVille.Text = CL.PlgTablo(L, CBM.Col) Then Exit Sub
               End If
            L = CBM.SujetBdD(1)(CBxVille.ListIndex)(1)
            CBxCP.Text = CL.PlgTablo(L, CBMrCP.Col).Value
         Else: CBxCP.Text = "": End If
      End Select
   End Sub
[/code]À tester
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour.
Si le mot "Bloquer" n'est pas clair vous pouvez en mettre un autre qui vous parle plus: "Figer", "Éditer", "Changer", "Rectifier", "Isoler", "Ouvrir", "Exposer", "Détacher", "Déconnecter", "Suspendre", "Stop"…
Ce n'est pas la fiche elle même qui est bloquée mais le processus de recherche.
On pourrait aussi mettre une CkxRecherche ou un TBnRecherche qui serait le plus souvent respectivement cochée ou enfoncé.
 

DG-59

XLDnaute Nouveau
Bonjour je ne vois pas ou mettre les codes, la j'ai essaie d'avances un peux dans la liste des animaux
sa fonctionne bien, quelque petit soucis quand je rentre un Cp la ville ( ex seul) ne s'affiche pas je doit me mettre sur le clavier est fait fleche Bas pour la sélectionné je me demande ou j'ai fait une connerie
 

Pièces jointes

  • CBxLiéesDG-59.xlsm
    390.8 KB · Affichages: 20

Dranreb

XLDnaute Barbatruc
Bonjour.
Vous parler de la Sub CL_ChangeStop ?
Elle peut se mettre où vous voulez, mais moi je la mettrais juste avant la CL_Change.
Remarque: avec ou sans cette procédure, on n'est pas obligé de bloquer, si on saisit ou choisit le code postal avant quoi que ce soit d'autre. Mais même alors il faudrait cliquer un coup dans la ville ramenée sinon elle s'effacera en saisissant une autre ComboBox.
Et vous n'avez pas suivi mes instruction, pour que la CBnChanger.Enabled soit toujours True
Vous avez apparemment introduit des doublons manuellement dans la base. Il s'en suit qu'on ne peut plus y accéder: il vous dit d'affiner mais toutes les ComboBox sont déjà renseignées sur fond vert un peu sombre signifiant "assumé".
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Partout, j'espère. Vous l'avez mis à True dans la fenêtre de propriétés, puis supprimé les instructions qui le changeaient ?
Montrez ce que vous avez fait. Vous avez aussi supprimé les doublons ?
Et quand vous saisissez le code postal d'abord, sans bloquer, vous cliquez bien dans la ville après pour qu'elle passe en fond vert fluo comme si vous l'aviez choisie, pour la stabiliser ?
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 101
Messages
2 085 300
Membres
102 857
dernier inscrit
Nony1931