récupérer les valeurs d'un Formulaire (UserForm) dans une macro

récupérer les valeurs d'un Formulaire (UserForm) dans une macro - VB/VBA/VBS - Programmation

Marsh Posté le 10-10-2006 à 15:08:05    

j'ai créer un feuille que j'active quand je presse un bouton via
  DialogSheets("Dialogue1" ).Show
 
J'ai bien paramêtré mes passages de tabulation pour que la saisie se fasse dans l'odre souhaitée
 
Maintenant, ce que je veux c'est récupéré les données entrées (dans l'ordre des tab) et les mettre dans un tableau en ligne (sur une ligne fixe, avec les colonnes allant de 1 à 37)
 
je ne peux pas me contenter du formulaire automatique de saisie d'excel parce que mon nombre de champs est trop important
 
J'essaie donc de trouver la solution pour récupérer les valeur de mes textbox et de ma Listbox contenu dans le formulaire
 
et je patauge lamentablement...
 
NB : évidemment, les numéro de mes textbox ne se suivent pas parce que j'ai mis des labels et autre titres pour la présentation de mon formulaire
 
une piste ???


Message édité par fabienne35 le 10-10-2006 à 15:12:40
Reply

Marsh Posté le 10-10-2006 à 15:08:05   

Reply

Marsh Posté le 10-10-2006 à 15:10:38    

Tu veux mettre les champs de ta form dans des colonnes précises ?


---------------
"Mon modèle, c'est moi-même."
Reply

Marsh Posté le 10-10-2006 à 15:13:16    

dans l'ordre ie
dans la colonne 1, le 1er champ du TabIndex
dans le colonne 2, le 2è champs (après 1 pression sur Tab)
 
etc...

Reply

Marsh Posté le 10-10-2006 à 15:18:26    

Bah tu peux mettre des éléments du style, pour une listbox :
 
Dim i as integer
i=1
Sub Listbox_Change()
  ActiveSheet.cells(i,1) = Listbox.Value
End Sub
 
Tu as des événements "Change" pour pratiquement tous les types de contrôles modifiables.
Après, tu incrémentes i à ta convenance.


Message édité par agkklr le 10-10-2006 à 15:19:27

---------------
"Mon modèle, c'est moi-même."
Reply

Marsh Posté le 10-10-2006 à 15:21:04    

je dois donc créer 37 fonction d'évènement (pour chaque TextBox/ListBox ?)
 
arg, je pensais qu'il existait une manière de faire une boucle sur le sujet :(
 
Fabienne

Reply

Marsh Posté le 10-10-2006 à 15:24:34    

Ben ça dépend de la manière dont tu veux le faire : Si tu veux que ce soit dynamique, ouais, faut autant de fonctions que de contrôles modifiables.
En revanche, si tu veux juste faire un "valider" après avoir rempli tes champs, alors là c'est possible :  
Il suffit effectivement de renommer tes contrôles avec un incrément (le name, pas la caption, donc la cosmétique de ta feuille n'est pas modifiée), et de faire une boucle, en vérifiant bien à chaque fois le type du contrôle, pour bien prendre le bon paramètre.


---------------
"Mon modèle, c'est moi-même."
Reply

Marsh Posté le 10-10-2006 à 16:16:26    

et si je fais une boucle ca respecte l'ordre défini par les tables ou pas ?
 
en fait mon pb c'est que mon user form n'a pas été créer dans le module VBA d'excel mais dans uen dialogSheet et j'ai l'impression que cela change beaucoup de chose .. je me trompe ?
 

Reply

Marsh Posté le 10-10-2006 à 16:30:41    

Comment ça dans un dialogsheet ?


---------------
"Mon modèle, c'est moi-même."
Reply

Marsh Posté le 11-10-2006 à 00:15:59    

agkklr a écrit :

Comment ça dans un dialogsheet ?


 
En fait j'ai créer une nouvelle feuille sans mon classeur, mais plutot que de choisir WorkWheet, j'ai choisir DialogSheet, et j'ai construit mon formulaire dedans...
 
mais j'ai pas réussi à l'utiliser correctement
 
j'ai (re)construit le mêem formulaire comme un useForm sous  l'éditeur VBA, et là tout marche !!!!
 
Comme quoi.... la simplificté (apparente) du départ m'a joué bien des tour... j'aurais du partir directement avec l'éditeur...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed