1. Ce site utilise des "témoins de connexion" (cookies) conformes aux textes de l'Union Européenne. Continuer à naviguer sur nos pages vaut acceptation de notre règlement en la matière. En savoir plus.

XL 2016 Problème avec formulaire recherche

Discussion dans 'Forum Excel' démarrée par DG-59, 2 Décembre 2018.

  1. Dranreb

    Dranreb XLDnaute Barbatruc

    Inscrit depuis le :
    31 Janvier 2011
    Messages :
    14752
    "J'aime" reçus :
    906
    Sexe :
    Masculin
    Habite à:
    Belfort
    Utilise:
    Excel 2016 (PC)
    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: 19 Décembre 2018
  2. Dranreb

    Dranreb XLDnaute Barbatruc

    Inscrit depuis le :
    31 Janvier 2011
    Messages :
    14752
    "J'aime" reçus :
    906
    Sexe :
    Masculin
    Habite à:
    Belfort
    Utilise:
    Excel 2016 (PC)
    La procédure qui permettrait d'assumer la correspondance quand la fiche est bloquée :
    Code (Visual Basic):
    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: 19 Décembre 2018
  3. DG-59

    DG-59 XLDnaute Nouveau

    Inscrit depuis le :
    1 Janvier 2018
    Messages :
    24
    "J'aime" reçus :
    0
    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: 19 Décembre 2018
  4. Dranreb

    Dranreb XLDnaute Barbatruc

    Inscrit depuis le :
    31 Janvier 2011
    Messages :
    14752
    "J'aime" reçus :
    906
    Sexe :
    Masculin
    Habite à:
    Belfort
    Utilise:
    Excel 2016 (PC)
    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 :
    Code (Visual Basic):
    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: 20 Décembre 2018
  5. Dranreb

    Dranreb XLDnaute Barbatruc

    Inscrit depuis le :
    31 Janvier 2011
    Messages :
    14752
    "J'aime" reçus :
    906
    Sexe :
    Masculin
    Habite à:
    Belfort
    Utilise:
    Excel 2016 (PC)
    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é.
     
  6. DG-59

    DG-59 XLDnaute Nouveau

    Inscrit depuis le :
    1 Janvier 2018
    Messages :
    24
    "J'aime" reçus :
    0
    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:

  7. BOISGONTIER

    BOISGONTIER XLDnaute Barbatruc

    Inscrit depuis le :
    28 Septembre 2007
    Messages :
    7074
    "J'aime" reçus :
    477
    Habite à:
    Montigny
    Page d'accueil :
    Utilise:
    Excel 2003 (PC)
    Bonjour,

    cf PJ

    Boisgontier
     

    Pièces jointes:

  8. Dranreb

    Dranreb XLDnaute Barbatruc

    Inscrit depuis le :
    31 Janvier 2011
    Messages :
    14752
    "J'aime" reçus :
    906
    Sexe :
    Masculin
    Habite à:
    Belfort
    Utilise:
    Excel 2016 (PC)
    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: 21 Décembre 2018
  9. DG-59

    DG-59 XLDnaute Nouveau

    Inscrit depuis le :
    1 Janvier 2018
    Messages :
    24
    "J'aime" reçus :
    0
    J'ai modifier mais je ne vois pas de changement

    CBnChanger.Enabled modifier aussi
     
  10. Dranreb

    Dranreb XLDnaute Barbatruc

    Inscrit depuis le :
    31 Janvier 2011
    Messages :
    14752
    "J'aime" reçus :
    906
    Sexe :
    Masculin
    Habite à:
    Belfort
    Utilise:
    Excel 2016 (PC)
    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: 22 Décembre 2018
  11. DG-59

    DG-59 XLDnaute Nouveau

    Inscrit depuis le :
    1 Janvier 2018
    Messages :
    24
    "J'aime" reçus :
    0
    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:

  12. Dranreb

    Dranreb XLDnaute Barbatruc

    Inscrit depuis le :
    31 Janvier 2011
    Messages :
    14752
    "J'aime" reçus :
    906
    Sexe :
    Masculin
    Habite à:
    Belfort
    Utilise:
    Excel 2016 (PC)
    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: 27 Décembre 2018
  13. Dranreb

    Dranreb XLDnaute Barbatruc

    Inscrit depuis le :
    31 Janvier 2011
    Messages :
    14752
    "J'aime" reçus :
    906
    Sexe :
    Masculin
    Habite à:
    Belfort
    Utilise:
    Excel 2016 (PC)
    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
      Taille du fichier:
      90 Ko
      Affichages:
      11
  14. DG-59

    DG-59 XLDnaute Nouveau

    Inscrit depuis le :
    1 Janvier 2018
    Messages :
    24
    "J'aime" reçus :
    0
    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é
     
  15. DG-59

    DG-59 XLDnaute Nouveau

    Inscrit depuis le :
    1 Janvier 2018
    Messages :
    24
    "J'aime" reçus :
    0
    une dernière petite question peux t'on ce servir fichier d'excel comme il es la mais lier excel et google sheet pour la feuille contact ?
     
  16. Dranreb

    Dranreb XLDnaute Barbatruc

    Inscrit depuis le :
    31 Janvier 2011
    Messages :
    14752
    "J'aime" reçus :
    906
    Sexe :
    Masculin
    Habite à:
    Belfort
    Utilise:
    Excel 2016 (PC)
    Bonsoir.
    Ça je ne sais pas, désolé.
     
Chargement...
Discussions similaires - Problème formulaire recherche Forum Date
Problème sur une formulaire de recherche Forum Excel 9 Octobre 2014
XL 2010 j'ai un problème dans un formulaire Forum Excel 13 Juillet 2017
XL 2010 j'ai un problème dans ce formulaire aide moi de trouver la solution Forum Excel 13 Mars 2017
XL 2010 [VBA] Problème de formulaire erreur "13" et améliorations Forum Excel 13 Février 2017
problème de récupération de données dans un formulaire Forum Excel 13 Janvier 2017

Partager cette page