begin process at 2012 02 17 11:57:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Langages dérivés

 > 

VBA

 > 

Probleme d'ecriture de code


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme d'ecriture de code

lundi 29 juin 2009 à 15:27:43 | Probleme d'ecriture de code

shenkool

Bonjour a tous

Tout d'abord un grand merci a vous pour ce site qui m'a sortie du petrin plus d'une fois, malheuresement cette fois ci je seche. Je precise que je suis vraiment debutant en macro Access.

 Voila mon probleme : Je souhaite faire reference a un ensemble d'objets ( listbox, bouton de commande etc) qui expose la meme methode "visible". Je ne sais pas comment m'y prendre sans lister un a un chaque objet et de dire
pour chaque objet si je veut qu'il soit visible ou non.

En claire  au lieu de faire

MonObjet.visible = true
MonObjet1.visible = true
.......

Je souterais avoir quelque chose du genre MonGroupeObjet.visible= true
Je crois qu'il faut passe par des classes  mais j'en suis pas sure et je sais pas comment faire.
Merci d'avance pour votre aide.
lundi 29 juin 2009 à 15:41:03 | Re : Probleme d'ecriture de code

Mayzz

Membre Club
Bonjour,

Plusieurs solutions possible :

1\Tu place tes contrôles dans un panel, et tu joue avec la propriété visible de celui-ci

2\Tu joue avec la collection Controls du formulaire (ce qui implique que tu à fais attention à l'ordre dans lequel tu as placer tes controles):

Ex :

For i = 5 to 10
   Me.controls(i).Visible = False
Next i
  
@+ Mayzz.

                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
<

lundi 29 juin 2009 à 16:49:47 | Re : Probleme d'ecriture de code

shenkool

Bonjour Mayzz,

Pour la premiere solution, je pense que tu parle d'un frame option bouton mais mes controles sont soit des listbox soit des boutons de commande et je ne sais pas s'il est possible de les integrer dans un frame d'options et de les controlés, et pour la deuxieme solution j'y est pas pensé mais pour la lisibilité du code c'est pas terrible

Je me demande s'il est pas possible de creer une classe qui reference l'ensemble des controles que je souhaite inserer et ensuite dans mon code appeler une methode  (par ex: afficher) pour ma classe.
Par contre je ne sais pas du tout comment m'y prendre

Merci Mayzz pour ta reponse et je croi que j'adopterai ta 2ieme solution si je trouve pas exactement ce que je veux.
lundi 29 juin 2009 à 17:25:47 | Re : Probleme d'ecriture de code

PCPT

Administrateur CodeS-SourceS
salut,

si c'est "tous les contrôles", la 2e proposition de mayzz est la bonne, je ne vois pas le problème de lisibilité

tu peux aussi filtrer par type

(à vérifier pour la syntaxe access) :

sub setVisibility(byval bValue as boolean)
dim ctrl as control 'ou as object
for each ctrl in monformulaire.controls

if (typeof ctrl is msforms.listbox) or (typeof ctrl is msforms.commandbutton) then
ctrl.visible = bValue
endif
next ctrl

set ctrl = nothing
end sub



NB : macro access = VBA, attention aux thèmes, ce n'est pas VB.NET !!

catégorie modifiée




mardi 30 juin 2009 à 07:58:49 | Re : Probleme d'ecriture de code

shenkool

Salut pcpt,

justement ce n'est pas tous les controles contenue dans mon formulaire mais seulement 5.

je te remercie pour ton code, je vais essayé de faire une mix de tout ca.
mardi 30 juin 2009 à 10:40:16 | Re : Probleme d'ecriture de code

PCPT

Administrateur CodeS-SourceS
Réponse acceptée !
l'utilisation de la collection controls selon la position de chacun (1 à 5, 5 à 10, etc.....) n'est malheureusement pas toujours fiable

une solution serait alors de "marquer" les contrôles que tu veux changer, en mode design :
rempli leur propriété TAG, avec n'importe quoi (juste "m" par exemple)
puis dans le for each, ne modifie le visible que des contrôles dont le tag n'est pas vide
++

mardi 30 juin 2009 à 13:47:40 | Re : Probleme d'ecriture de code

shenkool

la propieté tag je ne la connaissais pas et ca a l'air tres partique
voila ce que j'ai fais donc

Dim ctr As Control

For Each ctr In Me.Form.Controls
  If ctr.Tag = "appli" Then ctr.Visible = False
Next ctr

je me demande si pour le test comparaison si je peux utiliser ce que j'ai fais ou plutot faire ceci
If StrComp(ctr.Tag, "appli") = 0 Then ctr.Visible = False
quelle est le meilleur choix?
petite question a part , pourqoi l'intellsence ne me propose pas la methode visible pour ctr alors que cela fonctionne correctement
Merci encore pour vos aides.

mardi 30 juin 2009 à 13:56:42 | Re : Probleme d'ecriture de code

PCPT

Administrateur CodeS-SourceS
strcomp donne des options de comparaison plus évoluées et paramétrables que EGAL, pas spécialement utiles ici

le type "control" représentant des objets de différents types, les propriétés peuvent être différentes ou même ne pas exister
l'intellisense ne peut donc pas deviner, en mode conception, le control qui sera représenté en mode execution

mardi 30 juin 2009 à 14:05:50 | Re : Probleme d'ecriture de code

shenkool

ok, merci pour ton aide et t'es explications qui m'on été trés utile.
a+
lundi 6 juillet 2009 à 15:42:19 | Re : Probleme d'ecriture de code

shenkool

Bonjour a tous,

Apres quelque recherche j'ai trouvé exactement ce que je voulais faire. En faite je voulais creer une nouvelle collection d'objet mais je ne savais pas comment l'exprimer.
donc voila un exemple, cela pourra servir a d'autre peut etre:

Dim collEACP As Collection, i As Byte
Set collEACP = New Collection
collEACP.Add Form_Formulaire2.Version
collEACP.Add Form_Formulaire2.Alim

For i = 1 To collEACP.Count
  collEACP.Item(i).Visible = False
Next i

Set collEACP = Nothing

Par contre j'ai essayé de faire la meme chose avec la boucle For each mais cela ne fonctionne pas

1 2

Cette discussion est classée dans : code, objet, probleme, visible, ecriture


Répondre à ce message

Sujets en rapport avec ce message

Prob avec ADO et un objet non trouvé :S [ par RellikPowa ] Bonjour a tous, jai un petit probleme que je comprend absolument pas!.. voici le code causant le prob..:Rst.CloseCmd.CommandText = "select * from list probleme condition if textbox [ par boss24 ] salut j'ai un champ textbox appelle periode absence et le code appliqué sur lui est le suivant [code=vb] If txtPERIOD_ABS.Text = "3" Then Deux thread dans le même objet (problème lors de la déstruction de mon objet) [ par Polack77 ] Bonjour [^^happy13], Je suis débutant en multithreading et un détail (qui m'embête beaucoup) me pose problème : J'améliore en ce moment une classe Jo Aide post formulaire [ par Cornelius62 ] Bonjour a tous ! Voila j'ai un petit probleme que je n'arrive pas résoudre je veux me loguer automatiquement sur un site mais le probleme c'est qu'i petit probleme svp [ par mokhtarone1 ] bonjours a tous jai un petit probleme ici : [code=vb]For Each foundFile1 As String In My.Computer.FileSystem.GetFiles(ComboBox2.SelectedItem,FileIO.Se Probleme avec ado erreur 80004005 [ par ades2babi ] j'ai un soucis avec une requette je n'arrive pas a comprendre depuis un certain moment exécutait ce code sans problème [code=vb]oDB.Execute "ALTER TA convertir les objet en code [ par le1scorpion1noir ] salut a tous y a-t-il une méthode pour convertir une music ou une image ou n'importe quel objet en code pour pouvoir le recrée apré avec une applicat VB.net/SQL (Filter) code probleme [ par JLuc01 ] Bonsoir, Voila mon code: [code=vb]Private Sub txtSearch_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSearch.Te probleme keydown [ par culie3 ] Bonsoir, Je suis en trin de crée un appli sous vb6 et j'ai un probleme avec keydown. Je l'utilise dans une condition c'est à dire: [code=vb]Private S [Macros XLS]Plusieurs petits problèmes de débutant. [ par Jeremy45380 ] Bonjour à tous, comme indiqué dans mon profil, je suis amateur en Visual Basic (j'ai appris les bases If, Do while, ...) d'un point de vue scolaire.


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,257 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales