OVH Cloud OVH Cloud

VBA : infos

5 réponses
Avatar
Loupiot
Bonjour,
Où puis-je chercher des informations sur les instructions à utiliser pour
traiter un ensemble de contrôles d'un UF .
Exemple:
Sur un UF, j'ai 18 text box auxquels j'ai donné les noms date1, date2, ... à
date18.
Et je souhaite que : si j'envoie l'information 12, par exemple, cette
information soit récupérée pour que les textbox date13, date14, ... date18
ne soient plus visibles.

C'est à dire que j'aimerais bien que soit possible un truc comme :

For i = info to 18
date & i .Visible = false
next i

Mais je tourne en rond.
Et je ne sais pas où trouver dans l'aide des explications pour ce genre de
problème. (boucler sur les contrôles)
Une piste?
D'avance merci.
Bernard

5 réponses

Avatar
Clément Marcotte
Bonjour,

Pas sur, pas sur, mais je pense que quelque chose du genre devrait
aller:

For i = info to 18
controls("date" & i) .Visible = false
next i

Mais je pense que tu ne devrais pas utiliser le mot date pour nommer
des objets. VBA risque de brailler, parce que date() est une fonction
VBA. Par contre, tu pourrais les baptiser Ladate ou unedate.



--
On n' apprend pas à un vieux singe à faire des grimaces
"Loupiot" a écrit dans le message de
news:
Bonjour,
Où puis-je chercher des informations sur les instructions à utiliser
pour

traiter un ensemble de contrôles d'un UF .
Exemple:
Sur un UF, j'ai 18 text box auxquels j'ai donné les noms date1,
date2, ... à

date18.
Et je souhaite que : si j'envoie l'information 12, par exemple,
cette

information soit récupérée pour que les textbox date13, date14, ...
date18

ne soient plus visibles.

C'est à dire que j'aimerais bien que soit possible un truc comme :


Mais je tourne en rond.
Et je ne sais pas où trouver dans l'aide des explications pour ce
genre de

problème. (boucler sur les contrôles)
Une piste?
D'avance merci.
Bernard




Avatar
Loupiot
Clément Marcotte a pris le temps de m'instruire, et je l'en remercie.
Bonjour,

Pas sur, pas sur, mais je pense que quelque chose du genre devrait
aller:

For i = info to 18
controls("date" & i) .Visible = false
next i
Merci

En fait j'ai trouvé un truc qui marche en cherchant sur googlegroups.
Du type for each ctrl in controls etc...

Dans le même genre je me demande s'il y a un moyen de définir des
instructions identiques pour un ensemble de contrôles.
Par exemple si j'ai 10 command button nommés cb1 à cb10 et que je souhaite
que le code affecté à cb1_click soit identique à cb2_click etc, est-ce qu'il
faut recopier le code pour chacun ou bien est-ce qu'il existe un truc pour
ne l'écrire qu'une fois?
Voilà.
Bernard.

Avatar
Philippe.R
Bonjour,
Le plus simple AMHA, est de coller le code dans une macro rangée dans un module ordinaire et de
l'appeler gentiment par son nom dans l'évènement click de chacun des boutons.
--
Amicales Salutations
XL 97 / 2000 / 2002
Préférez suivre facilement sur le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Loupiot" a écrit dans le message de news:
%
Clément Marcotte a pris le temps de m'instruire, et je l'en remercie.
Bonjour,

Pas sur, pas sur, mais je pense que quelque chose du genre devrait
aller:

For i = info to 18
controls("date" & i) .Visible = false
next i
Merci

En fait j'ai trouvé un truc qui marche en cherchant sur googlegroups.
Du type for each ctrl in controls etc...

Dans le même genre je me demande s'il y a un moyen de définir des instructions identiques pour un
ensemble de contrôles.
Par exemple si j'ai 10 command button nommés cb1 à cb10 et que je souhaite que le code affecté à
cb1_click soit identique à cb2_click etc, est-ce qu'il faut recopier le code pour chacun ou bien
est-ce qu'il existe un truc pour ne l'écrire qu'une fois?
Voilà.
Bernard.




Avatar
anonymousA
bonjour,

Ecrire un module de classe puis déclarer les combobox comme des
instances de ce module de classe permet de faire ce que tu demandes.
Il y a cependant pour certains evenements de certains controles des
impossibilités à utiliser cette technique (p.e l'evenement Enter ou Exit
ne sont pas accessibles par ce biais pour le controle TextBox).
L'avantage de la technique par module de classe , c'est qu'il n'est pas
nécessaire d'écrire autre chose qu'une seule procédure evenementielle
pour décrire complètement le comportement de tous les objets se
rapportant au module de classe.
Si ca t'interesse, reviens sur ce forum ou va sur le site Excelabo où de
mémoire il y a un exemple.

A+

Clément Marcotte a pris le temps de m'instruire, et je l'en remercie.

Bonjour,

Pas sur, pas sur, mais je pense que quelque chose du genre devrait
aller:

For i = info to 18
controls("date" & i) .Visible = false
next i


Merci
En fait j'ai trouvé un truc qui marche en cherchant sur googlegroups.
Du type for each ctrl in controls etc...

Dans le même genre je me demande s'il y a un moyen de définir des
instructions identiques pour un ensemble de contrôles.
Par exemple si j'ai 10 command button nommés cb1 à cb10 et que je souhaite
que le code affecté à cb1_click soit identique à cb2_click etc, est-ce qu'il
faut recopier le code pour chacun ou bien est-ce qu'il existe un truc pour
ne l'écrire qu'une fois?
Voilà.
Bernard.





Avatar
Loupiot
anonymousA a pris le temps de m'instruire, et je l'en remercie.
bonjour,

Ecrire un module de classe
...

Si ca t'interesse, reviens sur ce forum ou va sur le site Excelabo où
de mémoire il y a un exemple.
Bonjour et merci.

Il me semblait bien que ça devait tourner autour de cela et qu'il faudrait
bien un jour que je me confronte à ces modules de classe.
Du travail en perspective;
mERCI à TOUS;
b;