XL 2019 formulaire de recherche à 4 ComboBox

Emmanuel-G

XLDnaute Nouveau
Bonjour

Etant novice dans la programation VBA sous Excel et après de multiple essais qui ne fonctionnait pas, n'ayant rien trouvé d'équivalent sur le net (Forum, you tube etc..) .

Je sollicite votre aide pour ce formulaire de rechercher fonctionnant avec quatre ComboBox (Clien, titre, pagination, pli).

La base de données se compose de 43 collonnes réparti de 7 ComboBox, 1TextBox et 35 TextBox à valeur numérique).

Je vous remercie par avance de votre aide
 
Solution
Je me suis amusé à terminer l'UFmRecherche parce qu'il était assez simple.
Il me paraît cependant assez inutile: S'il fallait absolument pouvoir consulter tous les tableaux de "Liste Rotoman" on pourrait très bien mettre le même dispositif dans l'UFmSaisie.

*** Pièce jointe mise à jour ***

Dranreb

XLDnaute Barbatruc
Le code sera à peu près comme ça :
VB:
Option Explicit
Private WithEvents CLs As ComboBoxLiées, CAs As ControlsAssociés, LCou As Long, TVL()
Private Sub UserForm_Initialize()
   Set CLs = CLsCAs.Création.ComboBoxLiées: CLs.Plage Feuil2
   Set CAs = CLsCAs.Création.ControlsAssociés: Set CAs.Colonnes = CLs.Colonnes
'———————————————————————————
'Partie à compléter par vous. Juste la 1ère instruction :
   CLs.Add Me.cboClient, "Client"
'  faire :
'  CLs.Add Me.NomDuContrôle, IntituléColonne pour une ComboBox à liste dynamique
'  CAs.Add Me.NomDuContrôle, IntituléColonne pour tout autre contrôle y compris une ComboBox à liste fixe
'Fin de la partie à compléter
'———————————————————————————
   CLs.CouleurSympa
   CLs.LMaxDropBtn = 75
   CLs.Actualiser
   End Sub
Private Sub CLs_Change(ByVal Complet As Boolean, ByVal NbrLgn As Long)
   CBnEchap.Caption = "Effacer"
   If NbrLgn = 1 Then
      CBnEntrée.Enabled = True: CBnEntrée.Caption = "Modifier": CBnSuppr.Enabled = True
      Exit Sub: End If
   CBnSuppr.Enabled = False
   CBnEntrée.Caption = "Ajouter"
   CBnEntrée.Enabled = Complet And NbrLgn = 0
   LCou = 0
   ReDim TVL(1 To 1, 1 To CLs.Colonnes.Count)
   CAs.ValeursDepuis TVL
   End Sub
Private Sub CLs_BingoUn(ByVal Ligne As Long)
   LCou = Ligne
   TVL = CLs.Lignes(LCou).Range.Value
   WshSaisDons.[E3:E10].Value = WorksheetFunction.Transpose(TVL)
   CAs.ValeursDepuis TVL
   End Sub
Private Sub CBnEntrée_Click()
   CAs.ValeursVers TVL
   If LCou = 0 Then
      CLs.ValeursVers TVL
      CLs.Lignes.Add.Range.Value = TVL
      CLs.Actualiser
   Else: CLs.Lignes(LCou).Range.Value = TVL: End If
   End Sub
Private Sub CBnSuppr_Click()
   If MsgBox("Êtes vous sûr de vouloir supprimer ça définitvement ?", vbYesNo + vbExclamation _
      + vbDefaultButton2, Me.Caption) = vbNo Then Exit Sub
   CLs.Lignes(LCou).Delete
   CLs.Actualiser
   End Sub
Private Sub CBnEchap_Click(): If CLs.ChangéÀLEchap Then Exit Sub
   Select Case CBnEchap.Caption
      Case "Effacer": CLs.Nettoyer: CBnEchap.Caption = "Quitter"
      Case Else: Unload Me: End Select
   End Sub
Mais ça plante parce que la cboClient a un RowSource renseigné, ce qui interdit au CLs de lui affecter la liste des noms de clients trouvés dans la base …
 
Dernière édition:

Emmanuel-G

XLDnaute Nouveau
les Combobox , client et titre sont énorme (plus de 200 pour la client et environ 350 pour la titre sans compter sur les nouveaux clients qui arrive, d'autre vont partir puis revenir et certain définitivement, pas facile à gérer.
je regarde ça demain en fin d'aprés-midi et j'essaierais de conprendre tout ça.
Bonne soirée à vous et merci pour cette rapidité
 

Dranreb

XLDnaute Barbatruc
Je me suis amusé à terminer l'UFmRecherche parce qu'il était assez simple.
Il me paraît cependant assez inutile: S'il fallait absolument pouvoir consulter tous les tableaux de "Liste Rotoman" on pourrait très bien mettre le même dispositif dans l'UFmSaisie.

*** Pièce jointe mise à jour ***
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Bonjour Emmanuel
Bonjour Bernard
je me permets
Bernard dans le Fichier joint tu as oublié de modifié le Nom des Userforms dans les procédure des Boutons
exemple :
Code:
Sub OuvreFormulaire()
    frmSaisie.Show
End Sub
Sub OuvreModification()
    frmModification.Show  
End Sub
a moins que ce ne soit volontairement ! lol
Bonne journée
jean marie
 
Dernière édition:

Emmanuel-G

XLDnaute Nouveau
Bonjour Emmanuel
Bonjour Bernard
je me permets
Bernard dans le Fichier joint tu as oublié de modifié le Nom des Userforms dans les procédure des Boutons
exemple :
Code:
Sub OuvreFormulaire()
    frmSaisie.Show
End Sub
Sub OuvreModification()
    frmModification.Show
End Sub
a moins que tu ce ne soit volontairement ! lol
Bonne journée
jean marie
 
Dernière édition:

Emmanuel-G

XLDnaute Nouveau
Bonjour
je viens de regarder votre travail, sur l'UFmRecherche avec les couleurs qui servent de confirmation a la bonne saisie super travail don je suis incapable.

Il y a eu plusieurs erreurs lors de l'overture du formulaire de saisie dont une que j'ai corrigé (ComboBox qui etait en cbo modifier par CBx comme vous me l'avez conseillé) j'ai un message qui reste (erreur '70' permission refusée) dans UFmSaisie qui est en jaune. Je pense que c'est parce que le code se trouve en mode commentaire.

je vais suivre vos conseil et mettre le (les) dispositif (s) "recherche et aussi le dispositif modification/supréssion" dans le formulaire de saisie.

Un grand merci pour votre travail (je commence à comprendre (un peu) le fonctionnement du VBA).

Cordialement
 

Emmanuel-G

XLDnaute Nouveau
Bonjour

je viens de finir les modifications sur le formulaire de Saisie et transformé tout les btn en CBn pour avoir le même language.

Pour le bouton modification /Suppression il a été supprimé mais j'ai laissé celui de modification en place et affichera la recherche dans le formulaire de saisie.

J'ai montré le formulaire de Recherche à mes jeunes padawan ils ont trouvé ça super, pour le formulaire de Saisie ils le connaissent déjà et servent des enregistrements effectués
 

Pièces jointes

  • Programe des réglages Machine 2.xlsm
    56.5 KB · Affichages: 16
Dernière édition:

Emmanuel-G

XLDnaute Nouveau
Je regarde ça en rentrant, du fait qu'il soit un peu plus avancé que le mien je n'en doute pas une seconde (je vous fais confiance vu le travail effectué sur le formulaire de recherche). Il m'a fallu à peu près deux semaines pour faire la base de données et le formulaire de saisie avec un niveau 0 mais j'apprends.
 

Emmanuel-G

XLDnaute Nouveau
j'ai fini de compléter les CAs.Add plus quelques TBx resté en txt et le changement de l'écriture de quelques TBx avec du numérique chose que je n'avais pas fait donc erreur et les virgules remplacées par un p minuscule.
Une fois fini il y a eu un méssage d'erreur qui apparait (Erreur d'exécution 13 : incompatibilité de type et quand je quitte le mode développeur j'ai se message (Colonne "rouge" inconnue dans le tableau_Source_Rotoman).

je vous joins le fichier.

Encore une foi merci, vous avez fait un super travail
 

Pièces jointes

  • CLsCAsEmmanuel-G (1)R.xlsm
    70.3 KB · Affichages: 9
Dernière édition:

Dranreb

XLDnaute Barbatruc
J'ai regardé vite fait, et j'ai vue que c'est parce qu'il n'existe pas de colonne intitulée "Rouge" dans le tableau, exactement tout comme il vous le dit !
Il en existe par contre une intitulée "Rouge ", avec un espace inutile à la fin …
Bonne nuit.
 

Emmanuel-G

XLDnaute Nouveau
bonjour

j'ai résolu en partie le petit problème exposé cette nuit, il y en avait plusieurs du même type je suis arrêté sur RRU3, ce qui m'amène à la question suivante dû au changement d'ordinateur qui fonctionne sur win 8 et office pro plus 2016.
Le programme m'envoie un message d'erreur (Erreur de compilation: Proget ou bibliothèque introuvable) dans Option Explicit sur la ligne du dessous la phrase Cas As Controls Associés est dans un cadre bleu, je pense que le le problème se situe dans Références VBAProject la case est bien coché la phrase suivante et (MANQUANT: CBxLCtlA,xlam.
il y a eu une belle micro coupure de courant cette nuit et qui a msi le bazar dans l'ordinateur, si c'est bien ça comment le réinstaller car là j'ai peur de mettre le bazar
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 611
Messages
2 090 226
Membres
104 453
dernier inscrit
benjiii88