rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

VBA variables d'un userform dans un module

Posté par Steve, le mercredi 23 mai 2007 à 19:17:36
Bonjour,

Je vous explique mon problème, c'est sûrement simple mais ... :s

Donc voilà, je suis actuellement en stage dans une société où l'on me demande de créer un serveur pour un appareil de mesure avec le matériel et les logiciels dont ils disposaient, rien d'autre, liste des logiciels :
-Office
c'est tout oui lol donc en cherchant un peu j'ai découvert les macros d'excel, ...

et je me suis lancé dans la programmations d'un module effectuant ce qu'ils me demandaient, et j'ai réussi, je reçois les valeurs de l'appareil, les affiche, les traite, ...

le problème c'est qu'au démarrage de la macro, je souhaite que l'utilisateur puisse indiquer sur quel port COM est branché l'appareil, j'ai donc réalisé un petit userform, et je veux que quand l'oppérateur choisis par exemple com1, la variable valcom soit égale à 1, (c un exemple) donc je réussi mais là où je bloque c'est pour envoyer la variable vers le module une fois l'userform fermé ou meme avant ce n'est pas important, (j'ai des difficultés à fermer le userform, si vs avez des conseils ...) donc voilà mon problème c'est juste ça, l'explication est peut-etre longue désolé j'essayai d'etre precis.

Je vs remercie. (j'ai cherché partout avant de poser la question mais étrangement je ne trouve pas.)
Configuration: Windows Vista
Internet Explorer 7.0
Répondre à Steve  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
EBasta, le jeudi 24 mai 2007 à 10:09:34
Bonjour,

Pour envoyer une variable dans d'autres modules, il existe en gros 2 façons :

- comme c'est sous Excel, venir copier la valeur de la variable dans une cellule du classeur,

- définir la varible comme Public à tout le projet : A l'extérieur de tout Sub, il suffit d'écrire...

Public valcom as Single

Il existe aussi les passages de paramètres, mais c'est plus restrictif...

Pour fermer un formulaire, c'est juste...

Unloab NomFormulaire

J'espère avoir un peu aidé !
Répondre à EBasta

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
steve, le vendredi 25 mai 2007 à 08:19:11
Merci beaucoup, je teste ça dans la journée et vous redonne très vite des nouvelles.
Répondre à steve

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
steve, le vendredi 25 mai 2007 à 08:40:59
Ca y est je teste,
je vous montre une partie du code :


'Utilisations touches clavier
Private Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vkey As Long) As Integer

  Public valcom As Single 'je l'ai mise ici pour testet c'est bien ça ?

 Sub OLE_Demo()

'déclarations
    '(1 To 99) numero de test
    Dim objServerResult As Object
    Dim vntResult(1 To 99)  As Variant
    Dim vntMin(1 To 99) As Variant
    Dim vntMax(1 To 99) As Variant
    Dim vntMnem(1 To 99) As Variant
    Dim vntTestPass(1 To 99) As Variant
    Dim vntAllPAss As Variant
    Dim vntPol(1 To 99) As Variant
    Dim vntNumberOfTests As Variant
    Dim vntUnit(1 To 99) As Variant
  
    
    UserForm2.Show
    
    Do
    Loop Until (valcom = 1) 
'ce n'est pas ce que je veux faire mais c'est un test simple qui me permet de savoir si ça fonctionne
    
    Cells(4, 1) = UserForm2.ComboBox1.Value



pour ce qui est du userform, pour tester je vais faire très simple aussi, juste le clique sur un bouton par exemple :

Private Sub CommandButton1_Click()
valcom = 1
End Sub


une declaration nécessaire ici je pense non ?

comme ça ?

Public valcom As Single


Private Sub CommandButton1_Click()
valcom = 1
End Sub



bon et bien voilà, ça ne fonctionne pas vraiment, ça va surement vous sembler logique mais désolé je n'ai jamais programmé de cette façon.

MERCI
Répondre à steve

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 EBasta, le vendredi 25 mai 2007 à 09:17:24
Public valcom as single n'est à définir qu'une seule fois. Sinon, il va y avoir conflit ! Le premier a bien été placé.

Définir des variables ainsi permet de garder leur valeur pour tout le projet et entre les différents Sub, Function et Userform... mais il faut éviter de trop en placer : cela prend trop de mémoire. Pour cette raison, j'ai mis un Single au lieu d'un Interger, largement suffisant pour un définir les ports COM.
Répondre à EBasta
Logiciels pertinents trouvés dans les téléchargements
Télécharger Toutes les extensions (petits modules complémentaires) de Firefox ?Toutes les extensions (petits modules complémentaires) de Firefox - Au lieu d'énumérer toutes les extensions (petits modules complémentaires) de Fire fox , allez dans le menu outils de...Catégorie: Extensions Firefox
Licence: Freeware/gratuit
Télécharger Patch français pour Ad-aware 1.1Patch français pour Ad-aware - Inclus les modules pour Ad-Aware (pour toutes versions antérieures à Ad-Aware 2007) pour les langues suivantes : Catalan,...Catégorie: Anti-Spyware
Licence: Freeware/gratuit
Télécharger WAMP Server 2.0cWAMP Server - WAMP5 (WAMP signifiant Windows Apache Mysql PHP) est une plateforme de développement Web sous Windows. Il vous permet de...Catégorie: Serveurs
Licence: Freeware/gratuit
Télécharger ModPlug Player 1.46.01ModPlug Player - MODPlug est un lecteur permettant de lire des fichiers MOD, c'est-à-dire des pistes de séquenceurs (trackers), mélant des...Catégorie: Lecteurs audio
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « VBA variables d'un userform dans un module »