XL 2010 Combobox liées

cathodique

XLDnaute Barbatruc
Bonjour,

Je voudrais lier les 3 combobox et que les 2 textboxs se complètent suivant les données des comboboxs.
Je sais que Dranreb a développé des modules de services dans ce sens.
Toute proposition est la bienvenue.

Avec mes remerciements anticipés.

Bonne journée.
 

Dranreb

XLDnaute Barbatruc
Oui, oui, depuis j'ai fait toutes les modifs que j'expliquais
Je viens de l'enregistrer sous CLsCAsCathodique au cas où vous voudriez le corrigé de cet exercice d'utilisation du dispositif, auquel cette discussion est consacrée, suite à votre conversation.
L'utilisation c'est une chose, simple d'ailleurs, mais si vous souhaitez aussi comprendre comment ça marche à l'intérieur, n’hésitez pas à me poser des questions.
 
Dernière édition:

cathodique

XLDnaute Barbatruc
Oui, oui, depuis j'ai fait toutes les modifs que j'expliquais

De mon coté j'ai aussi repris le code de l'UserForm et changé les Add comme suit :
CLs.Add Me.CBxTypeOp, "TypeOp"
CLs.Add Me.CBxCode, "Code"
CLs.Add Me.CBxRubriq, "Rubrique"
CAs.Add Me.TBxLibellé, "LIBELLE"
CAs.Add Me.TBxPrévBudg, "Prévision/Budget/Initial"

Après avoir ajouté la référence à Microsoft Scripting Dictionary et mis en commentaire provisoirement les instructions relatives au CBnModifier/Ajouer/Supprimer.Enabled, ça a marché du 1er coup.
je ne comprends plus rien du tout.
Je n'ai qu'un seul bouton dans l'userform.
Désolé de t'avoir dérangé. Je laisse tomber, je vais m'arranger autrement.

Merci de m'avoir répondu et consacré de ton temps.

Bonne journée.
 

Dranreb

XLDnaute Barbatruc
S'il vous manque des base VBA, bien qu'elles étaient censé acquise si vous avez décidé de programmer dans ce langage orienté objet, quant aux notions d'objet, de propriété, de méthode et d'évènement, voire de portée des variables, ne manquez surtout pas cette occasion de me les réclamer.
 

cathodique

XLDnaute Barbatruc
N'hésitez pas à me poser des questions sur les deux points bien séparés qui vous intéressent: Comment on l'utilise, et comment il fonctionne.
Bonjour Dranreb,

Désolé pour le retard. Justement, j'ai des questions sur les 2 points que tu cites. Mais, je voudrais prendre un peu de temps pour essayer de comprendre tes codes qui sont de hauts niveaux. Ce n'est pas mon cas, mon codage est des plus basiques mais qui fonctionne bien.
Je suppose qu'il y a des modules qui ne sont pas nécessaires pour gérer des combobox liées. Car je trouve qu'il y a beaucoup de codes (modules de classe) conçus pour faire plus de choses que de lier des combobox.
Je reviendrai poser mes questions.

Merci. Bon week-end.
 

cathodique

XLDnaute Barbatruc
S'il vous manque des base VBA, bien qu'elles étaient censé acquise si vous avez décidé de programmer dans ce langage orienté objet, quant aux notions d'objet, de propriété, de méthode et d'évènement, voire de portée des variables, ne manquez surtout pas cette occasion de me les réclamer.
En effet, Je pourrai dire qu'il me manque des bases. Quand on se lance dans n'importe quelle pratique tardivement, on rencontre des difficultés de compréhension surtout en autodidacte. Je n'ai pas une vaste connaissance de toutes les notions et possibilité qu'offre le VBA. D'où très souvent, je me lance dans un codage compliqué alors qu'une petite fonction aurait suffit. En fait, ma mémoire n'est plus ce qu'elle était et je manque de pratique plusque je suis un "VBAiste"; voilà, je me mets à inventer des mots pour ne pas utiliser le mot Développeur.

Mon défaut aussi, est que je suis brouillon. Bien que j'essaie de stocker mes bouts de codes et fichiers dans un dossier. Je n'arrive pas à les retrouver et du coup je fais appel à Google. Qui me renvoie très souvent sur XLD.

Si tu as des tutos, des astuces ou autres conseils je suis preneur. Pour info, tous mes projets personnels sont ludiques. Pour m'occuper, je m'invente des projets. J'aide gracieusement de temps à autre des personnes avec mes basiques codes. Le dernier est une association de protection animale.

Voilà, je pense avoir le tour.

Merci.
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Je ne suis pas enseignant et ne dispense pas d'un programme d'enseignement. J'ai fait de mon mieux pour établir une aide décrivant tous les membres des objets de ma fourniture CAsCLs, mais elle suppose évidemment préalablement acquis les concepts de base de VBA. D'ailleurs j'ai l'impression qu'à force d'être trop complète elle a tendance à effrayer en donnant l'impression que c'est plus compliqué qu'en réalité. Donc plus d'exposé ou de cours à partir de rien. Je répondrai seulement à des questions, sur un point précis particulier c'est tout. Parce que si vous ne vous, et ne me, posez aucune question, vous ne sauriez accrocher à aucune réponse !
Alors, pour commencer qu'est-ce que souhaiteriez savoir en premier, quelle est la 1ère question qui vous vient à l'esprit, celle dont vous avez l'impression qua sa réponse vous ferait le plus avancer dans une compréhension générale ?
 
Dernière édition:

cathodique

XLDnaute Barbatruc
Bonjour.
Je ne suis pas enseignant et ne dispense pas d'un programme d'enseignement. J'ai fait de mon mieux pour établir une aide décrivant tous les membres des objets de ma fourniture CAsCLs, mais elle suppose évidemment préalablement acquis les concepts de base de VBA. D'ailleurs j'ai l'impression qu'à force d'être trop complète elle a tendance à effrayer en donnant l'impression que c'est plus compliqué qu'en réalité. Donc plus d'exposé ou de cours à partir de rien. Je répondrai seulement à des questions, sur un point précis particulier c'est tout. Parce que si vous ne vous, et ne me, posez aucune question, vous ne sauriez accrocher à aucune réponse !
Alors, pour commencer qu'est-ce que souhaiteriez savoir en premier, quelle est la 1ère question qui vous vient à l'esprit ?
Bonjour,

Avant tout propos merci beaucoup, pour ton aide, ton temps et ta patience. Cependant, à te lire je constate que ta patience à des limites. Ce qui est toute à fait légitime. Cependant, je ne sollicite pas de cours particulier, ni à la demande.

Au vu, de ton code tu es très calé et je m'en réjouis pour toi. Mes connaissances sont des plus basiques. Je sais donc que je ne parviendrai ni à comprendre le fonctionne, ni à retenir le mode d'utilisation de tes modules de service. Je ne vais donc, ni te faire perdre ton temps, ni abuser de ta gentillesse.

Pour info, je me suis réveillé très tôt et depuis jusqu'à cet instant j'essayais de comprendre tes codes. Plein de fonctions dont la plus part je n'ai pas compris le pourquoi. ex:
VB:
' Ctl :  Propriété en lecture seule: Contrôle supporté par l'objet.
Function Ctl() As MSForms.Control: End Function
Pourquoi pas un Dim.

Comme tu peux le constater, je suis loin derrière. ça me donne l'impression d'être le bourricot du forum.
On s'en tient là. Mes excuses de t'avoir fait perdre ton temps.

1000 mercis.

Bon week-end.
 

Dranreb

XLDnaute Barbatruc
Cette Function est dans un module de classe d'un genre particulier: une interface. Dans un tel module c'est le seul moyen de communiquer au code utilisateur des propriétés d'exemplaires d'objets de types spécifiques qui l'implémentent. Mais même en dehors de ce cas, certains programmeurs estiment plus correct de toujours définir les propriétés d'une classe à travers des procédures Property ou Function transférant une variable Private. Moi, je pense que ça peut parfois être plus simple de la définir comme variable Public, et que c'est tout aussi correct.
À la réflexion, il serait possible de la définir comme une variable Public dans l'interface. Mais dans ce cas, dans les classes qui l'implémentent, le contrôleur de classe réclamerait pour elle toutes les procédures Property possibles: Set, Let et Get. Or moi je veux qu'elle soit en lecture seule, et ne puisse être établie que par sa méthode Init, elle même invoquée par la méthode Add du ControlsAssociés.
 
Dernière édition:

laurent950

XLDnaute Accro
Bonjour @Dranreb
VB:
' Col :  Propriété en lecture seule: Numéro de la colonne contenant sa valeur dans le tableau à mettre à jour.
Function Col() As Long: End Function
Cette Function est dans un module de classe d'un genre particulier: une interface. Dans un tel module c'est le seul moyen de communiquer au code utilisateur des propriétés d'exemplaires d'objets de types particuliers qui l'implémentent

Ce module de classe est particulier je suis d'accord.
L'interface : avec qu'elle autres module ?
La fonction est vide : le simple fait d'appeler cette fonction depuis un autre module, cela initialise
ByVal Col As Long (depuis Public Sub Init) dans ce même module de classe particulier ?
Mais aussi il n'y a aucun argument nommées renvoyer dans cette fonction : Function Col([...VIDE...]) As Long
C'est quoi des propriétés d'exemplaires d'objets (de types particuliers et qui l'implémente comment)

Si vous pouvez décrire ces actions : tous le chemins sans codes, juste en langage écrit pour expliquer ce chemin.
Depuis un module (Quel ?) ----->>> la function Col est appelé ---->>> on arrive dans ce module de classe particulier depuis l'appel de cette function --->>> ensuite il se passe quoi (par rapport à ce qui est dit avant ?)

Très intéressant en tous cas, Merci Dranreb si vous avez la réponse à cette interrogation.
 

Dranreb

XLDnaute Barbatruc
Bonjour @laurent950
Le commentaire en tête dit : interface avec les CAsso de différents types spécifiques. Cela veux dire tous les modules de classe qui commencent par une instruction Implements CAsso.
Comme par exemple le CAssoTBx qui est spécialisé dans le support d'une TextBox.
En mettant cette instruction dans une classe on a une erreur de compilation tant qu'il manque une procédure prévue par l'interface. Leurs modèles peuvent s'implanter par la même voie que les procédure de prise en charge d'évènements (je parle des listes déroulantes qui surmontent la fenêtre de code) sauf qu'à la différence de ces dernières elles sont toutes obligatoires.
 
Dernière édition:

laurent950

XLDnaute Accro
Bonjour @Dranreb

C'est une sorte d'héritage ? l'impléments ?
J'ai essayé de traduire l'aide VBA
je joins le fichier
C'est ce que vous avez fait avec la classe (CAsso) ? l'équivalent de la classe PersonalData
Je suis plus trop je mis perd aussi.
C'est cette base qu'il faut commencer à comprendre pour pouvoir poursuivre ? Impléments ?
 

Pièces jointes

  • Implements Exemples.xlsm
    21.2 KB · Affichages: 3

Dranreb

XLDnaute Barbatruc
Oui, mais il faut mettre le modèle des procédures communes à toutes les classe spécifiques qui l'implémenteront, car ce sont elles qui définiront les propriétés et méthodes de l'objet générique. On ne met généralement pas de code dedans car dans le cadre de ce principe il n'aurait qu'une valeur documentaire et ne serait jamais exécuté. C'est le code des procédures correspondates des classes qui l'implémentent qui sera exécuté à sa place.
Mais c'est vrai aussi que deux variable Public font l'affaire s'il n'y a pas de méthode à prévoir par ailleurs.
Vous avez vu que le controleur de classe exige les Property Let et Get si ce ne sont pas des objets. Si c'en avait été il aurait exigé une Property Set en plus.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 412
Messages
2 088 196
Membres
103 763
dernier inscrit
p.michaux