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
Bonjours est joyeux noël

heu bonne question je ne suis pas très fort dans les codes j'essaie de comprendre ce que vous m'avez donnée et ajouté certain element que l'on me demande après

la chose qui es un peux dérangeant ces le fait que " quand on remplis , arrivé ex adresse on ce met sur code postal l'adresse ce supprime "
apres ces le top tout fonctionne super bien :)
 

Pièces jointes

  • CBxLiéesDG-59.xlsm
    387.3 KB · Affichages: 13

Dranreb

XLDnaute Barbatruc
Bonjour, joyeux Noêl à vous aussi.
Je sais, c'est pour cela qu'il faut pouvoir bloquer aussi en création, pour que les autre contrôles déjà remplis ne s'effacent pas.
Ce n'est que pour changer une ComboBox qu'il est nécessaire de bloquer, pour les TextBox ce n'est pas nécessaire. Fiez vous à leur couleur de fond.
Bleu lég. azur très clair: CBx non renseignée.
Émeraude lég. vert: CBx non renseignée mais assumée (seul choix possible dans les existants). Elle s'effacera si vous tapez d'autres info. d'identification, à moins de cliquer d'abord dedans pour qu'elle devienne officiellement renseignée.
Chartreuse lég. vert: CBx renseignée et correspondante.
Rouge lég. orange: CBx renseignée et non correspondante.
Cyan lég. azur: TBx ou autre contrôles associés, ou CBx ne participant pas à l'identification ni à la recherche de fiche, ou quand la recherche est bloquée même si elle y participe sinon.
J'interviendrai probablement plus tard, quand tout ça sera un peu stabilisé et que vous aurez homogénéisé les débuts de noms de contrôles (généralement la 1ère et dernière majuscule de son nom de type et sa dernière lettre, voir liste poste #21, suivi d'un mnémonique commençant par une majuscule)
On verra si on peut détecter facilement les conditions où le blocage doit être automatique quand on arrive dans la CBxCP ou la CBxVille. À première vue ce n'est qu'après un effacement qu'il ne doit pas se faire, afin de pouvoir toujours limiter d'entrée la recherche aux animaux d'une ville. D'ailleurs si cette possibilité ne présentait aucun intérêt, il suffirait de ne plus confier à CL mais à CA ces deux CBx, et les gérer à part, voire à l'aide d'un deuxième objet ComboBoxLiée, je ne sais pas…
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour.
Pour vous aider à comprendre le codage de l'UserForm je joins ce classeur.
Attention, il est conçu pour s'installer automatiquement comme complément. Vous n'en avez pas besoin sous cette forme à moins que vous ne le souhaitiez, parce que ses modules de service sont déjà installés directement dans le classeur d'application.
Je le joins uniquement pour que vous puissiez étudier sa feuille d'aide.
Je n'ai pas encore créé l'équivalent pour les contrôles associés, qui est plus simple mais en reprend quelques principes.
 

Pièces jointes

  • CBxL.xlsm
    90 KB · Affichages: 22

DG-59

XLDnaute Nouveau
Bonjour et Meilleur voeux

j'ai modifier avec toute les infos que vous m'avez apportez tout fonctionne très bien
J'attend le retour de l'asso pour mettre en résolu si il ne me demande pas autre chose

encore merci pour le tps que vous m'avez déjà accordé
 

DG-59

XLDnaute Nouveau
Bonjour j'ai un nouveau petit souci

le fichier fonctionne super bien,
il nous manqué des informations quand une personne possède plusieurs animaux
donc j'essais de crée une ListBox1 dans mon userform mais je n'arrive pas a l'alimenté

j'ai essayer de lié la ListBox1 à la TxtAdresse mais sans sucée

le contact xx a 2 animaux sa me le marque bien dans la partie LabInfo est dans le Nom de l'animal qui me permet de choisir lequel je souhaite modifier

mais j'aimerai que les nom s'affiche dans la liste box quand la personne est sélectionné

Penser vous que sa sois réalisable

Merci d'avance
 

Pièces jointes

  • CBxLiéesDG.xlsm
    426.2 KB · Affichages: 14

Dranreb

XLDnaute Barbatruc
Je ne vois pas où est le problème ni pourquoi vous avez besoin d'une ListBox pour ça:
Tapez Nom/Prénom existant en premier, puis choisissez le nom de l'animal, c'est tout. Seul les noms d'animaux hébergés par cette personne seront proposés dans la ComboBox.
Si vous voulez pouvoir chercher une adresse, mettez une ComboBox pour l'adresse et faites la gérer aussi par CL.
Cela dit il est possible de renseigner une ListBox contenant l'ensemble des lignes trouvées.
Il est aussi possible de retrouver la liste des numéros de lignes attachée à une ComboBox gérée par CL
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Exemple de code :
VB:
Private Sub CL_Résultat(Lignes() As Long)
   Dim TBas(), LBas As Long, TLBx(), LLBx As Long
   Dim TLgn() As Long ' Attention: il pourrait devenir intéressant de la déclarer globale.
   If CBnChanger.Caption = "Libérer" Then Exit Sub
   TLgn = Lignes
   If UBound(TLgn) > 1 Then
      ReDim TLBx(1 To UBound(TLgn), 1 To 1)
      TBas = CL.PlgTablo
      For LLBx = 1 To UBound(TLgn)
         LBas = TLgn(LLBx)
         TLBx(LLBx, 1) = TBas(LBas, 5)
         Next LLBx
      ListBox1.List = TLBx
   Else
      ListBox1.Clear
      LCou = Lignes(1): btnAjout.Caption = "Modifier": btnAjout.Enabled = True
      CBnSupprimer.Enabled = True: CBnChanger.Enabled = True
      TVL = CL.Lignes(LCou).Range.Value
      CA.ValeursDepuis TVL: Affiché = True: End If
   End Sub
 

Dranreb

XLDnaute Barbatruc
Pourquoi le CBnChanger a toujours encore sa propriété Enabled à False dans sa fenêtre de propriété, et que les instruction suivante n'ont pas été supprimée, alors qu'on a vu à plusieurs reprises qu'il devait être possible de bloquer pendant un ajout ?
VB:
… : CBnChanger.Enabled = False
… : CBnChanger.Enabled = True
 

Dranreb

XLDnaute Barbatruc
Si la TLgn est seulement déclarée parmis les variables globales, cette procédure devient possible :
VB:
Private Sub ListBox1_Click()
   LCou = TLgn(ListBox1.ListIndex + 1)
   TVL = CL.Lignes(LCou).Range.Value
   CL.ValeursDepuis TVL
   CA.ValeursDepuis TVL
   LabInfo.Caption = "Sélection liste"
   End Sub
 

Dranreb

XLDnaute Barbatruc
J'ai aussi retrouvé trace dans une ancienne version d'une procédure assurant la correspondance entre CP et Ville si on change une des deux pendant que CL est bloqué.
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
         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
         End If
      End Select
   End Sub
Elle a aussi un dispositif qui le bloque automatiquement dès qu'on entre dans la CBxCP ou la CBxVille.
(CBx : ComboBox. TBx: TextBox. CBn: CommandButton. Je ne garderai pas trace ni ne bosserai sur de nouveau classeurs joints avec des noms de contrôles commençant par Cbo, Txt ou Btn. C'est comme ça, à prendre ou à laisser)
 
Dernière édition:

DG-59

XLDnaute Nouveau
Re Bonjour

j'ai rectifie j'espere ne rien avoir oublié dans les : CBx, CBn, TBx

… : CBnChanger.Enabled = True j'ai aussi modifier le 2eme que j'avais oublié
 

Pièces jointes

  • CBxLiéesDG.xlsm
    423.5 KB · Affichages: 6
Dernière édition:

DG-59

XLDnaute Nouveau
sans rien marqué sa me dit 4 contacts je ne vois pas ce qu"il prend en compte

est pour la listbox sa me retourne une erreur : ( TLgn )

Code:
Private Sub ListBox1_Click()
   LCou = TLgn(ListBox1.ListIndex + 1)
   TVL = CL.Lignes(LCou).Range.Value
   CL.ValeursDepuis TVL
   CA.ValeursDepuis TVL
   LabInfo.Caption = "Sélection liste"
   End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 722
Messages
2 081 930
Membres
101 843
dernier inscrit
Thaly