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

SAP Discussion :

Piloter deux systèmes SAP depuis VBA


Sujet :

SAP

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Chef de projet
    Inscrit en
    Février 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Février 2019
    Messages : 6
    Par défaut Piloter deux systèmes SAP depuis VBA
    Bonjour à tous,

    J'ai parcouru bon nombre de discussions sans résultat.

    Mon objectif : traiter une extraction depuis PGI et une autre depuis PEA (donc deux systèmes SAP) via une macro unique

    Mon problème : à ce jour mon code PGI fonctionne.
    Mon problème apparaît lorsque je veux switcher sur PEA, je ne sais pas comment ouvrir la bonne page de connexion.
    Initialement, j'ai utiliser la fonction enregistrement comme pour PGI.
    Cependant, étant déjà sur une page PGI, la macro saisie mes identifiants PEA dans la page PGI de départ.

    Je vous mets mon bout de code qui me sert à la connexion PGI.

    Merci d'avance pour votre aide !

    Code VBA : 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
    If Not IsObject(application) Then
       Set SapGuiAuto = GetObject("SAPGUI")
       Set application = SapGuiAuto.GetScriptingEngine
    End If
     
    If Not IsObject(Connection) Then
       Set Connection = application.Children(0)
    End If
     
       Set Session = Connection.Children(0)
     
    If IsObject(WScript) Then
       WScript.ConnectObject Session, "on"
       WScript.ConnectObject application, "on"
    End If
     
    Session.findById("wnd[0]").maximize
    Session.findById("wnd[0]/usr/txtRSYST-BNAME").Text = TextNG
    Session.findById("wnd[0]/usr/pwdRSYST-BCODE").Text = TextPGI
    Session.findById("wnd[0]/usr/txtRSYST-LANGU").Text = "FR"
    Session.findById("wnd[0]/usr/txtRSYST-LANGU").SetFocus
    Session.findById("wnd[0]/usr/txtRSYST-LANGU").caretPosition = 2
    Session.findById("wnd[0]").sendVKey 0
     
    ' Ouvrir ZPGA18D
    Session.findById("wnd[0]/tbar[0]/okcd").Text = "/nzpga18D"
    Session.findById("wnd[0]/tbar[0]/btn[0]").press

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 7
    Par défaut
    Bonjour,

    Je n'ai pas la réponse à votre question, mais je me la pose aussi!

    Je fais actuellement du VBA pour SAP GUI, mais pas depuis Excel. Donc il me suffit de glisser-déplacer mon fichier VBS dans une fenêtre SAP déjà ouverte pour qu'il s'exécute dans le bon système, quels que soient le nombre de fenêtres et de systèmes qui sont actuellement ouverts sur mon PC.

    Mais je ne peux pas faire ça depuis une macro Excel, du coup il faudrait que quand je la lance (dans Excel) j'aie une boîte de dialogue qui me demande le nom du système à utiliser (PROD, QUAL...), puis qu'elle se connecte à ce système (si pas déjà connecté) et qu'elle ouvre une nouvelle fenêtre pour exécuter les commandes SAP...

    Avez-vous trouvé un moyen de faire cela?

    Merci,

    Bruno-

  3. #3
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    Bonjour,

    Children(0) ne ramène que la première connexion et la première session.
    Il faut boucler (For Each) sur les connections et les sessions pour trouver celle qu'on souhaite.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 7
    Par défaut
    Bonjour,

    Merci pour l'info, je vais essayer ça!

    Bonne journée

    Bruno-

Discussions similaires

  1. [XL-2010] Appel SAP depuis VBA
    Par dedam dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/02/2017, 16h34
  2. [AC-2000] Piloter Adobe Acrobat depuis VBA
    Par bruno28 dans le forum VBA Access
    Réponses: 0
    Dernier message: 24/02/2010, 12h24
  3. Piloter une page Web depuis Excel en VBA
    Par ilcocodrillo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/08/2008, 17h57
  4. Comment piloter SAP via VBA Access ?
    Par megapacman dans le forum VBA Access
    Réponses: 4
    Dernier message: 07/08/2008, 15h12
  5. [Système]executer un fichier parametré depuis VBA
    Par delphine_lep dans le forum Access
    Réponses: 2
    Dernier message: 23/03/2007, 09h55

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