Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/06/2007, 16h57   #1
Invité régulier
 
Inscription : février 2006
Messages : 39
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 39
Points : 8
Points : 8
Par défaut VBA sur Extra Attachmate

bonjour,

Je manipule par automation l'application "Extra Attachmate".
Dans cette manipulation, j'ai besoin de lancer une macro, qui est présente sur le pc en question (fichier .ebm) et est répertoriée dans l'émulateur "Attachmate".

Je ne trouve pas la commande permettant d'executer, par macro Excel, cette macro dans "Attachmate".

Je vous remercie par avance pour vos suggestions.
amalane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 12h20   #2
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 625
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 625
Points : 30 935
Points : 30 935
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

Vu que tu pilotes "Extra Attachmate" par automation, c'est dans l'aide de ce logiciel que tu trouveras le code pour lancer une macro de ce logiciel.
Quand tu trouveras ce code, arpès tu pourras la lancée par Excel.

Personnellement je ne connais pas, peux-tu nous éclairer sur ce logiciel.

Starec
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/10/2007, 13h28   #3
Invité de passage
 
Inscription : octobre 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 2
Points : 2
Points : 2
Je viens de voir ton message, du coup je me suis inscris sur le forum.
J'arrive à lancer une macro *.EBM avec un shellexecute (API) dans le code. Le plus grand souccis consiste à trouver le code adéquat pour attendre l'ouverture effective du produit avant de continuer. J'ai trouvé une astuce avec un comptage de sessions ouvertes.
J'ai pas le bout de code sous la main, mais demain si j'y pense je te le joins.
En passant, est-ce une session TGC que tu veux lancer ? si c'est le cas, nous avons tout interet à échanger.

A+
old59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2007, 20h22   #4
Invité de passage
 
Inscription : octobre 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 2
Points : 2
Points : 2
Par défaut J'ai retrouve

Les déclarations en premier
Code :
1
2
3
4
5
Public sessions As Object
Public system As Object
Public Sess0 As Object
Public MyArea As Object
Dim test As String
Declaration de l'API
Code :
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
On créé une fonction qu'on utilise en debut d'un procedure sous la forme
if initialiser_tgc<>true then exit sub
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Public Function initialiser_Tgc() As Boolean
 
testextra = 0
debutmacroextra:
Set system = CreateObject("EXTRA.System")   ' crée la session émulée
 
If (system Is Nothing) Then                     'l'instruction Msgbox ouvre une fenetre d'alerte
    MsgBox "La session émulée ne peut etre lancée - STOPPER la Macro."
    initialiser_Tgc = False
    Exit Function
End If
 
Set sessions = system.sessions
 
If (sessions Is Nothing) Then
    MsgBox "Lancez d'abord l'emulation extra! "
    initialiser_Tgc = False
    Exit Function
End If
 
g_HostSettleTime = 20000
OldSystemTimeout& = system.TimeoutValue
 
If (g_HostSettleTime > OldSystemTimeout) Then system.TimeoutValue = g_HostSettleTime
On va compter le nomùbre de sessions ouvertes
si il n'y en a aucune, on va donc revenir sur excel et lancer la macro *.ebm
Pour ce faire j'utilise un Userform qui comprends le nom de la macro *.ebm ainsi que les identifiants et code de connexions.
Code :
1
2
3
4
5
6
If a = 0 Then
AppActivate "microsoft excel"
    Identification_tgc.Show
nom = Identification_tgc.TextBox4.Value
    Call ShellExecute(0&, "Open", "C:\Program Files\APPEXT\sessions\Icones\" & _
    nom & ".edp", vbNullString, "C:\Program Files\APPEXT\sessions\Icones", vbMinimizedFocus)
vola l'astuce, tant qu'il n'y a aucune session d'ouverte, on ne reprend pas la main
Code :
1
2
3
4
    Do While sessions.Count = 0
        DoEvents
    Loop
    x = 0
Particularite chez moi, il peut aussi y avoir plusieurs sessions d'ouverte, dans ce cas, je prends la premiére qui commence par un A
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
    For i = 1 To a
    b = sessions.Item(i)
        If Left(b, 1) = "A" Or b = "Host" Then x = i
    Next i
    Set Sess0 = sessions.Item(x)
    Do While Sess0.screen.OIA.XStatus = 5: Loop
    Do While Capture(1, 2, 9) <> "OUVERTURE"
    DoEvents
    Loop
    Do While Sess0.screen.OIA.XStatus = 5: Loop
 
    testextra = 1
 
    GoTo debutmacroextra
End If
 
x = 0
 
For i = 1 To a
b = sessions.Item(i)
    If Left(b, 1) = "A" Or b = "Host" Then x = i
Next i
 
Set Sess0 = sessions.Item(x)
 
If x = 0 Then
    MsgBox "il n'y a pas de session TGC d'ouverte"
    initialiser_Tgc = False
    Exit Function
End If
 
If (Sess0 Is Nothing) Then
        MsgBox "Lancez d'abord l'emulation extra! "
        initialiser_Tgc = False
        Exit Function
End If
 
If Not Sess0.Visible Then Sess0.Visible = True
Do While Sess0.screen.OIA.XStatus = 5: Loop
 
If testextra = 1 Then
 
Curseur 7, 40
Envoi Identification_tgc.TextBox1.Value
Curseur 8, 40
Envoi Identification_tgc.TextBox2.Value
Curseur 9, 40
Envoi1 "TGC"
If Capture(15, 40, 4) = "Code" Then
Commande "LIBC"
Commande "LIBC"
End If
Unload Identification_tgc
AppActivate "Microsoft Excel"
End If
 
test = Sess0.screen.GetString(9, 8, 9)
If test <> "REFERENCE" Then
    MsgBox "Mettez vous sur l'affichage TGC", vbOKOnly
    initialiser_Tgc = False
    Exit Function
End If
 
initialiser_Tgc = True
 
End Function
Je suis pas sur d'avoir été trés clair, mais si vous voulez des infos en +, n'hésitez pas.

P.S : Je suis sur qu'il y beaucoup trop de ligne dasn ce code, mais puisque ca marche.
old59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2007, 18h18   #5
Invité de passage
 
Inscription : novembre 2007
Messages : 1
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 1
Points : 1
Points : 1
Par défaut extra

bonjour,
je pense que je viens de trouver des colegues(...)
il y a une façon plus sur de gerer les attentes de reponse des masques tgc
essaye ça comme lien....
http://www.blognote-info.com/index.p...nager-et-excel
sinon je peux te donner mon mail boulot..
@+
cyril17 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2010, 21h19   #6
Invité régulier
 
Inscription : octobre 2009
Messages : 56
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 56
Points : 7
Points : 7
Envoyer un message via MSN à DJ FA
Bonsoir, qui connait bien cette application ? pour une aide ? merci
DJ FA est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h25.


 
 
 
 
Partenaires

Hébergement Web