Re :RESOLU cbxliescpville de dranreb a intégré dans classeur clients?? MERCI DRANREB

grisan29

XLDnaute Accro
bonjour a vous tous du forum

j'ai essayer d'intégrer le classeur cbxliescpvilles de dranreb sur mon fichier clients mais sans succes
il est vrai que les 2 sont a base de modules de classe
en fait je voudrais remplacer les combobox de mon classeur client par ceux du classeur de dranreb
voici l'essai puis le classeur de dranreb et celui que j'utilise
il sont tous sous .xls et je suis sous 2013 donc .xlsm

merci de vos réponses

Pascal
j' ai oublier de dire que c'est pour les combobox d'ajout clients
 
Dernière édition:

grisan29

XLDnaute Accro
Re : cbxliescpville de dranreb a intégré dans classeur clients??

re dranreb
F c'est la colonne adresse du client que j'ai essayer avec un textbox
CL = comboboxliés ??
car si je mets comme ceci
Code:
Set CBL = New ComboBoxLiésCPVil
CBL.Plage Feuil2.[A2]
CBL.Add Me.ComboBox1, "B"
CBL.Add Me.ComboBox2, "C"
CBL.Actualiser
ca me mets type défini par l'utilsateur non défini
Pascal
tu dits
Deux ComboBoxLiés différents j'ai dit
dans le module de classe
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : cbxliescpville de dranreb a intégré dans classeur clients??

Non il sont tous les deux de même type ComboBoxLiés mais ne peuvent pas s'appeler tous les deux CBL. Ils doivent être déclarés en tête de l'userform, avec 2 noms différents.
 

grisan29

XLDnaute Accro
Re : cbxliescpville de dranreb a intégré dans classeur clients??

re
comme ceci alors
Code:
Option Explicit
Dim CLCPVil As ComboBoxLiés
Dim CL As ComboBoxLiés
Dim LCou As Long, VLgn() As Variant '

Private Sub CommandButton1_Click()
Dim i As Integer
With Sheets("feuil1")
i = .Range("B65536").End(xlUp).Row
    .Range("A" & i + 1).Value = ComboBox1.Value
    .Range("B" & i + 1).Value = ComboBox2.Value
    End With
End Sub

Private Sub CommandButton6_Click()
Unload Me
End Sub

Private Sub UserForm_Initialize()
Set CLCPVil = New ComboBoxLiés
CLCPVil.Plage Feuil2.[A2]
CLCPVil.Add Me.ComboBox1, "B"
CLCPVil.Add Me.ComboBox2, "C"
CLCPVil.Actualiser

Set CL = New ComboBoxLiés
CL.Plage Feuil4.[B2]
CL.Add Me.ComboBox4, "D"
CL.Add Me.ComboBox5, "E"
CL.Actualiser
End Sub

et cela fonctionne

Pascal
 

Dranreb

XLDnaute Barbatruc
Re : cbxliescpville de dranreb a intégré dans classeur clients??

Voila.
Mais nous allons avoir besoin de gérer les évènements de CL. Celui là doit donc être déclaré avec le mot clé WithEvents.
N'hésitez pas, pour CL, à inclure aussi des ComboBox pour la "C" et la "F", si la "F" ne risque pas de changer dans une fiche existante, surtout si ça peut être deux contacts différents dans une même société.


Je reviens un à une question d'un poste précédent :
comprends a quoi se réfère ces variables dans l'usf
Indications: LCou sera la ligne courante sur laquelle on sera positionné ou 0 si le client n'existe pas encore. On y affectera le paramètre Ligne transmis à la procédure CL_BingoUn par exemple, et
VLgn = CL.PLgTablo.Rows(LCou).Resize(, 14).Value
Il ne restera plus qu'à garnir les contrôles d'après VLgn. Je le fais habituellement dans une procédure séparée que j'appelle GarnirChamps.
 
Dernière édition:

grisan29

XLDnaute Accro
Re : cbxliescpville de dranreb a intégré dans classeur clients??

re
pour la "F" c'est la colonne " a l'attention de:"
en mettent la colonne "C" pour la civilité cela rempli également les combobox nom et prénom comme il faut
Pascal
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : cbxliescpville de dranreb a intégré dans classeur clients??

Oui, oui, j'avais bien compris ça. Ne connaissant le contexte réel de l'application, j'ai imaginé que deux contacts différent dans une même entreprise pouvaient être considérés logiquement comme deux clients distincts.
 

grisan29

XLDnaute Accro
Re : cbxliescpville de dranreb a intégré dans classeur clients??

re
a l'attention de ne veux pas dire 2 clients distincts dans l'entreprise mais la personne a contacter
je rajoutais une ligne dans le post précédent quand tu mis le tien (croisement)
Pascal
 

Dranreb

XLDnaute Barbatruc
Re : cbxliescpville de dranreb a intégré dans classeur clients??

Soit. Ne mettons pas la personne à contacter dans l'identification du client alors.
À l'occasion, quand vous aurez un peu avancé, joignez à nouveau votre classeur, en xls de préférence. J'en profiterai pour l'équiper des versions les plus récentes des modules de services. Ce n'est pas qu'ils aient beaucoup changé, les explications surtout, et une ou 2 méthodes en plus par ci par là…
 

Dranreb

XLDnaute Barbatruc
Re : cbxliescpville de dranreb a intégré dans classeur clients??

Comme promis j'ai mis les modules plus récents.
J'ai juste aussi remis le mot clé WithEvents dans la déclaration de CL afin qui se remette dans la liste de gauche qui surmonte la fenêtre de code, car la première étape va être de l'y sélectionner.
Ça va vous installer une Private Sub CL_Change. Gardez la, elle va servir. Sélectionner BingoUn dans la liste de droite. Il ne reste plus qu'à mettre les codes appropriés dans ces procédures.

Vous devriez supprimer les colonnes P et Q de la feuille client: elles gênent pour trouver la fin de la base clients.

Pour les TextBox écrivez une Private Sub GarnirChamps dans laquelle vous affecterez à leurs propriétés Text les éléments de VLgn.
Pour les boutons j'écris souvent une procédure HabiliterBoutons qui veille à rendre Enabled seulement ceux qui peuvent être utilisés, par exemple BtnSupprimer.Enabled = LCou > 0, et met le bon Caption sur ceux qui en ont plusieurs possibles. Par exemple BtnValider.Caption = IIf(LCou = 0, "Ajouter", "Modifier").
 

Pièces jointes

  • CbxLiésCPVille+CLIENT2.xls
    262 KB · Affichages: 53
Dernière édition:

grisan29

XLDnaute Accro
Re : cbxliescpville de dranreb a intégré dans classeur clients??

bonjour dranreb
merci pour cette nouvelle version
j'ai supprimer les colonnes P et Q du xls car xlsm c'était fait
je vais te joindre un aperçu pour que tu valides tes expression tel que
Sélectionner BingoUn dans la liste de droite.
ou est la liste de droite
j'ai bien trouvé "bingo" mais dans l'ini de l'usf dans le module de classe "comboboxlies"
Code:
Event Bingo(Lignes() As Long)
et
Code:
Event BingoUn(ByVal Ligne As Long)

voila pour ce matin, de retour après midi
Pascal
 

Pièces jointes

  • apercuvba.jpg
    apercuvba.jpg
    48.1 KB · Affichages: 54

Dranreb

XLDnaute Barbatruc
Re : cbxliescpville de dranreb a intégré dans classeur clients??

Bonjour.
Ben la liste de droite (bulle "Procédure") elle est en haut :confused: à droite, en somme … à droite de celle qui est en haut à gauche, quoi.:rolleyes: Dans l'image jointe, c'est "Initialize" qui est sélectionné. Normal puisque dans celle de gauche (bulle "Objet") c'est "Userform" qui y est sélectionné et non "CL", qui y figure forcément aussi puisqu'il est déclaré en tête avec le mot clé WithEvents.
Ah je vois aussi une procédure CL_Change qui n'a manifestement pas été installée comme elle aurait dû à l'aide de ces listes, mais imitée manuellement sur celles d'autres objets.:mad: Pas bien, ça ! À effacer et faire la manœuvre correcte.:)
Mais c'est bien aussi d'avoir trouvé les instructions Event qui les définissent, et très très attentivement lu les commentaires décrivant les conditions dans lesquelles ils surviennent et expliquant l'intérêt du service ainsi offert et la signification des paramètres qui y sont gentiment passés à l'intention de l'Userform.
 
Dernière édition:

grisan29

XLDnaute Accro
Re : cbxliescpville de dranreb a intégré dans classeur clients??

bonjour dranreb
tu préfère ceci pour CL
Code:
Private Sub CL_Change(ByVal Complet As Boolean, ByVal NbrLgn As Long)

End Sub
Code:
Private Sub CL_Bingo(Lignes() As Long)

End Sub

Private Sub CL_BingoUn(ByVal Ligne As Long)

End Sub
mais je ne sais faire venir un "loto" bingo dedans mais en private
Pascal
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : cbxliescpville de dranreb a intégré dans classeur clients??

Une seule des trois: Bingo, BingoUn ou Résultat suffira selon sa spécificité préférée.
La différence entre Bingo et Résultat c'est que Bingo n'est décrété que si tous les ComboBox sont renseignés (sois manuellement soit automatiquement du fait qu'ils ne proposent qu'un seul choix possible) tandis que Résultat rend toujours la table des lignes couvertes par les seuls choix effectués, à condition qu'il y en ait au moins une. Et BingoUn est spécifique au cas ou une seule ligne est définie par les choix, ce qui sera je crois toujours le cas ici. Donc pas besoin de Bingo. Mais Change, si, pour détecter la frappe d'un nouveau client.
 
Dernière édition:

grisan29

XLDnaute Accro
Re : cbxliescpville de dranreb a intégré dans classeur clients??

dans CL a gauche j'ai les 3 choix a droite je n'avais vu pour résultat car je ne savais pas

dans l'ini de l'usf du module de classe "comboboxlies il y a ceci qui n'a pas été modifié de CBL vers CL où CLCPVIL
Code:
Private Sub Userform_Initialise()
Set CBL = New ComboBoxLiés
CBL.CouleurSympa         
CBL.Plage Feuil1.[A2].Resize(Feuil1.[A65536].End(xlUp).Row - 1) 
CBL.Add Me.ComboBox1, "A" 
CBL.Add Me.ComboBox2, "B" 
CBL.Add Me.ComboBox3, "C" 
CBL.Actualiser            
End Sub

faut 'il les remplacer
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 948
Membres
101 849
dernier inscrit
florentMIG