IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Discussion :

VBA sur Extra Attachmate


Sujet :

VBA

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 58
    Points : 42
    Points
    42
    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.

  2. #2
    Invité
    Invité(e)
    Par défaut
    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

  3. #3
    Candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    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+

  4. #4
    Candidat au Club
    Inscrit en
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    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..
    @+

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 77
    Points : 35
    Points
    35
    Par défaut
    Bonsoir, qui connait bien cette application ? pour une aide ? merci

Discussions similaires

  1. [VBA-E]Executer fonction VBA sur Excel sans activer la macro
    Par marie10 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 19/01/2006, 14h34
  2. Comment faire Copier/Coller par code VBA sur INTERNET...
    Par GESCOM2000 dans le forum Access
    Réponses: 5
    Dernier message: 02/01/2006, 13h19
  3. Envoi de mail via un macro vba sur excel
    Par momolamoto dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/12/2005, 18h51
  4. Utiliser SQL = (Comme "blabla*") mais En VBA sur I
    Par samlepiratepaddy dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 28/10/2005, 19h30
  5. Macro VBA sur Access
    Par beurnoir dans le forum Access
    Réponses: 3
    Dernier message: 12/10/2005, 16h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo