Rechercher : dans
Par :

VBA : Gestion d'évènement Userform dynamique

Dernière réponse le 4 sep 2009 à 21:56:38 canichon, le 14 déc 2007 à 16:39:24 
 Signaler ce message aux modérateurs

Bonjour à tous,

Voilà mon probleme, j'ai un Userform que je construis dynamiquement suivant le nombre d'items utilisé dans un onglet Excel ( en fait, je cré un formulaire dynamique ).

Dans ce formulaire, suivant certaines cases cochées, je bloque l'acces à certains TextBox à l'ouverture du Userform ( Initialisation ).

Mon probleme est que si je décoche ces cases, rien ne se passe : NORMAL !!

Je sais qu'on peut gérer ça en statique : Private sub TextBox1_Change ()

Mais comment proceder quand les TextBox sont multiples et que je ne connais pas leur nombre ( création en dynamique ) ??

Merci a tous pour votre aide... et bon week-end si je n'ai pas de réponse avant...

Configuration: Windows XP
Firefox 2.0.0.11

Meilleures réponses pour « VBA : Gestion d'évènement Userform dynamique » dans :
VBA et les collections d'objets. VoirVBA et les collections d'objets Quand plusieurs (beaucoup de) contrôles sont mis sur une feuille ou un Userform il est parfois fastidieux d'écrire du code dans chaque évènement des contrôles. Ce Tuto vous permet de traiter vos contrôles comme...
[VBA] Enlever la croix rouge d'un UserForm. VoirIl est parfois intéressant de supprimer la possibilité de sortir d'un userform tant que toutes les entrées n'ont pas été saisies, mais voilà, il reste toujours cette croix qui autorise l'utilisateur à sortir. Le code ci-dessous permet d'oter cette...
[Multimédia] Gestion multimédia VoirLogiciels de gestion multimédia Par gestion multimédia, comprenons : l'affichage des images sous formes de vignettes, la gestion d'albums de photos, la lecture de fichiers audio, la visualisation de vidéos, éventuellement des possibilités...
Méthodologie de gestion de projet VoirLa gestion de projet - La nécessité d'une méthodologie claire On appelle « gestion de projet » (éventuellement « conduite de projet ») l'organisation méthodologique mise en œuvre pour faire en sorte que l'ouvrage réalisé par le maître...
MERISE - Modèle conceptuel des traitements VoirLe modèle conceptuel des traitements Le modèle conceptuel des traitements permet de traiter la dynamique du système d'information, c'est-à-dire les opérations qui sont réalisées en fonction d'événements. Ce modèle permet donc de représenter de...

1

phil232, le 14 déc 2007 à 17:17:48

Faut choisir son identifiant intelligement, n'oublies pas que windows aussi arrive à les distinguer

Répondre à phil232

2

canichon, le 14 déc 2007 à 17:19:43

Pardon !!!!

Répondre à canichon

3

phil232, le 14 déc 2007 à 17:29:22

En vba tu peut écrire des trucs comm

txtTest & i --> p.ex. txtTest1 si i = 1

Répondre à phil232

4

canichon, le 14 déc 2007 à 17:39:43

Je veux bien croire que c'est vendredi soir mais où t'as fumé ou c'est moi... JE NE COMPRENDS RIEN A CE QUE TU ME DIS.... Laisse tomber !!!!

Bon week-end

Répondre à canichon

5

phil232, le 14 déc 2007 à 18:00:15
  • +1

Moi, c'est Super Pollem

et je me demandes si Delphi ne serait pas mieux adapté à tes besoin. là c'est pas un pb d'attacher un event p.ex.
par contre en vba ce n'est pas possible (à ma connaissance)

Répondre à phil232

6

Polux31, le 15 déc 2007 à 05:29:28
  • +1

Bonjour,

Pour les créer :

Dim myTextBox As Object
Dim i As Long

With UserForm1
For i = 1 to nbCaseCochee
set myTextBox = .controls.add("Forms.TextBox.1","le nom du TextBox" & i, true)
... < tu mets les propriétés du textbox : myTextBox.Top = ..., la hauteur, largeur etc ...>
Next i
End With

....

pour les lire et mettre les données saisies dans les textboxes dans la colonne A de la première feuille du classeur par exemple:

Dim myTextBox As Object
Dim i As Long

With UserForm1
For i = 1 to nbCaseCochee
set myTextBox = .controls("le nom du TextBox" & i)
worksheets("Feuil1").Range("A" & i).Value = myTextBox
Next i
End With
.....

;o)

Polux

Répondre à Polux31

7

Rom1_35, le 8 jui 2009 à 09:51:03

Bonjour,
Je me permets de ressortir ce sujet pour savoir s'il était possible de créer une fonction du type Change() sur un TextBox créé dynamiquemment.
En statique cela donne :
Private sub myTextBox_Change ()
... [mon code]
End Sub

Mais quand est-il du dynamique? Est-ce possible?

Cordialement,
Romain.

Répondre à Rom1_35

8

Rom1_35, le 8 jui 2009 à 11:17:36

Je viens de trouver réponse à ma question.
Pour ceux que ca pourrait intéresser :
http://silkyroad.developpez.com/VBA/VisualBasicEditor/#LV-A

Répondre à Rom1_35

9

Aseghir, le 4 sep 2009 à 17:04:30

Excellent.

Tu a perdu u peu de temps avec ces imbéciles qui te répondent sans savoir de quoi ils parlent; mais la solution que tu as trouvée toi-même est excellente, j'aurais répondu la même chose si j'avais lu à temps.

Il faut en effet "Sub-classer" l'objet créé, dans une classe, déclarer l'évènement, etc. et après ça roule tout seul.

-AS

Répondre à Aseghir

10

Polux31, le 4 sep 2009 à 17:23:36

Mais bien sûr ... tu n'as pu eu le temps ... c'est cela ... il faut "Sub_classer" .... mouaarrrffff «Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.» 
Nicolas Boileau

Répondre à Polux31

11

 Aseghir, le 4 sep 2009 à 21:56:38

Bof, Polux31. Ne pas avoir "lu *à* temps" devient dans votre imaginaire, "ne pas avoir eu le temps" ce qui est sémantiquement très différent. Ce qui se lit correctement se conçoit puis s'énonce correctement.
- AS

Répondre à Aseghir
Collection CommentÇaMarche.net