UserForm et macro plusieurs parametres

constantina

Nouveau membre
Salut à Tous,

Je reviens sur ce forum car j'ai un petit soucis au niveau de l'attribution de plusieurs parametres à un userform.

Petit topo:

J’ai créé un userform avec un bouton de commande permettant d’ouvrir une connexion Telnet, de me connecter à un serveur unix et de faire a peu pres ce que je veux car j’utilise des SendKeys.

Voici le code :


Code:
    Dim EnterKey As String
    '--------------------------
    
EnterKey = "~"
        
    '--------------------------
   
On Error GoTo 0
Shell "telnet serveur port", vbMaximizedFocus
 
DoEvents
 
 
'----------------------
'LOGIN
    
   Application.Wait Now + TimeValue("00:00:03")
   SendKeys "login", False '=========> login
 
   SendKeys EnterKey, False
    
'----------------------
'PASSWORD
    
    Application.Wait Now + TimeValue("00:00:02")
    SendKeys "password", False '========> mot de passe
 
    SendKeys EnterKey, False
    
'----------------------
‘exemple commande
 
    Application.Wait Now + TimeValue("00:00:02")
    SendKeys "cp fichier1 repertoire1", False
 
    SendKeys EnterKey, False
    Application.Wait Now + TimeValue("00:00:01")
    SendKeys "exit", False
    Application.Wait Now + TimeValue("00:00:01")
SendKeys EnterKey, False

J'ai 2 "scripts" à executer.L'un prend 1 parametre(qui sera "un fichier parmi plusieurs dans un repertoire précis), puis un second qui prendra 2 parametres.
Ce que j’aimerais, c’est que au niveau du bouton commande du userform, il donne la possibilité a l’utilisateur de choisir ces parametres.

En gros l'utilisateur va cliquer sur le bouton commande du userform,la une fenetre apparait pour que l'utilsateur tape le parametre du premier script,puis il valide, et la une seconde fenetre apparait pour choisir les 2 parametres du second script,puis il valide et donc a ce moment ,tout le processus va etre lancer(connexion telnet et les scripts avec les parametres choisis).

Le 2eme script est sous cette forme: prend en parametre 2 éléments: 1 chiffre (un chiffre à 2 digits que le user choisira), et un PATH avec le nom d'un fichier a créer.ex: script.sh "2" "/home/user/nom_écrit_par_user".

Ce qui serait bien, c'est que l'utilisateur écrit dans la fenetre de parametre par exemple "2" et "Fichiertest1" et lors de l'execution de la fenêtre telnet, on envoie les sendkeys correspondant à cela.

Pour le script 1: une combobox qui s'affiche et l’utilisateur choisit l'executable parmi la liste(je pense que ce serait possible car c'est une liste définit a l'avance). Pour le script 2 l’utilisateur écrit dans des labels le chiffre, et le nom du fichier. Apres je ne sais pas du tout comment alimenter une liste. Je me tourne donc vers vous, en tant que connaisseurs, si vous avez des solutions au niveau de la facon de procéder.

Je vous remercie d'avance.Je sais que ca semble compliqué.
 

zeb

Modérateur
Rhooolalal !
Quelle usine à gaz. Et en plus, elle risque de te péter à la gueule !

Imagine qu'au moment où tu exécutes ton programme, une autre fenêtre s'invite d'elle même et prenne le focus? Tes SendKeys seront pour elle !
(Genre un popup Etes-vous sûr ? - Si c'est Voulez-vous payer la mise à jour ? et que tu balances ton SendKeys EnterKey à ce moment :sarcastic: )

En général, il faut fuir les SendKeys absolument.

Avant de te trouver une autre solution, disposes-tu d'un service SSH sur ton serveur UNIX ?

-------------------

Bon, sinon, qu'est-ce qui t'empêche de mettre un champ Text dans ton userform et de le balncer comme paramètre à ton telnet (ou rexec, ou ssh ?)
 

constantina

Nouveau membre
Salut Zeb, je me rend comtpe que c'est une grosse usine à gaz lol. Mais je n'ai pas trouvé d'autres solutions.

Sinon Oui j'ai une connexion ssh, je peux utiliser putty.Mais ce serait avec des sendkeys aussi non?

Et sinon au niveau du userform, je ne sais pas comment faire pour que l'utilisateur saisissent lui meme les bons parametres. Comme tout se fait sous un serveur unix, je ne sais pas trop.

Merci pour ton aide.
 

zeb

Modérateur
je ne sais pas comment faire pour que l'utilisateur saisissent lui meme les bons parametres
M'enfin ?
Tu mets deux champs texte dans ton userform à saisir par ton utilisateur, et tu en transmets le contenu à ton programme.

PuTTY est un client graphique Raw+Telnet+RLogin+SSH+Serial.
Ma question est : y-a-t'il un service SSH sur le serveur UNIX.

Si oui, trouve-toi une version en ligne de commande d'un client SSH.
PuTTY ne convient pas, n'étant pas en ligne de commande.

[fixed]ssh [options] [user@]host[#port] [command][/fixed]Ceci est la syntaxe d'un client SSH de base. Par défaut, on ne précise pas la commande. Dans ce cas, c'est login qui est exécuté.

Mais toi, tu vas préciser quelque chose. Quoi ? Ben ça par exemple :[fixed]script.sh 2 /home/user/nom_écrit_par_user[/fixed]

Ça donne en VB :
Code:
Shell "c:\...chemin...\ssh.exe constantina@serveur_unix script_1.sh " & parametre1
Shell "c:\...chemin...\ssh.exe constantina@serveur_unix script_2.sh " & parametre2 & " " & parametre3

------------

Je propose cette version de client SSH :

Voir aussi le site officiel d'OpenSSH :
 

constantina

Nouveau membre
"M'enfin ?
Tu mets deux champs texte dans ton userform à saisir par ton utilisateur, et tu en transmets le contenu à ton programme. "

Salut,

ca j'ai bien compris, seulement comment faire le lien entre userform et le code?
Comment faire de ce que le user écrit dans la zone de texte soit comptabilisé dans le code?

Pour le ssh, je crois que c'est trop compliqué pour moi.Je ne comprend pas tres bien.

En tout cas je te remercie pour ton aide.
 

beru

Habitué
Le champ de texte (TextBox) qui se trouve dans ton userform porte un nom (Et tui px bien entendu modifier son nom ... F4 dans Visual Basic pr afficher les propriétés). C'est ce nom là que tu utilises de la même manière que s'il s'agissait d'une simple variable
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 132
Messages
6 718 037
Membres
1 586 389
Dernier membre
ROCKET8
Partager cette page
Haut