1. #1
    Candidat au Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    juillet 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : juillet 2017
    Messages : 14
    Points : 2
    Points
    2

    Par défaut Script SAP "Faire lien entre un Magasin et le numéro de magasin"

    Bonjour,

    Mon objectif est de pouvoir utiliser d'une information que j'exporte d'SAP (le magasin) dans un fichier EXCEL une autre information lié à la première (le numéro du magasin).

    Voici un exemple de ce que je souhaiterais écrire dans une macro SAP :
    Nom : 2017-07-20_16-58-35.png
Affichages : 41
Taille : 2,3 Ko

    Celle-ci vient chercher l'article dans un fichier EXCEL puis dans une transaction récupère le magasin associé à cet article et le note dans la colonne correspondante du tableau EXCEL (cette partie est simple et déjà créé).

    Là se complique la chose.

    J'ai un liste longue de magasins avec les numéro de magasin associé (sur une autre feuille du fichier Excel "colonne A les magasin et B les numéro de magasins).

    Si j'effectue une formule dans la cellule "N° magasin" rechercheV... pour que le n° de magasin se renseigne en fonction du magasin cela va fonctionner, cependant si la macro doit passer dans une autre transaction (juste après avoir copier le magasin) et quelle doivent utiliser le numéro de magasin, la cellule est encore considéré vide "la macro n'a pas eu l'information du numéro de magasin).

    SVP comment puis-je faire pour que ma rechercheV soit inscrite dans la macro SAP par exemple. J'ai essayé de ralentir la macro mais par rapport à ce que j'ai trouvé comme script ne fonctionnais pas.

    Merci beaucoup pour votre aide svp.

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Consultant SAP (Abap)
    Inscrit en
    février 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant SAP (Abap)
    Secteur : Conseil

    Informations forums :
    Inscription : février 2015
    Messages : 22
    Points : 37
    Points
    37

    Par défaut

    Bonjour,

    On dirait plus un problème Excel qu'SAP !

    Le numéro de magasin est-il disponible dans SAP ? Si oui, alors pourquoi ne pas tout faire dans SAP et exporter un fichier Excel déjà renseigné ?
    Quand tu parles de la "macro SAP"... elle ressemble à quoi cette macro ?

  3. #3
    Candidat au Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    juillet 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : juillet 2017
    Messages : 14
    Points : 2
    Points
    2

    Par défaut

    Bonjour BadSpencer,

    En effet je ne peux pas retrouver l'information ailleurs :

    Voici donc un script

    Nom : Script.png
Affichages : 37
Taille : 54,6 Ko

    J'ai mis des commentaires sur les opérations effectuées.

    Merci beaucoup

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Consultant SAP (Abap)
    Inscrit en
    février 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant SAP (Abap)
    Secteur : Conseil

    Informations forums :
    Inscription : février 2015
    Messages : 22
    Points : 37
    Points
    37

    Par défaut

    Ok alors malheureusement je ne pourrais pas t'aider, car ton script ça doit être du VBA... en tout cas ce n'est pas de l'Abap

    De plus, si le numéro de magasin n'est pas disponible dans SAP et qu'il y que le fichier excel pour le retrouver, alors on ne pourra rien faire côté SAP.

    Pour moi c'est plus un problème Excel/VBA

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2013
    Messages
    3 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : mai 2013
    Messages : 3 152
    Points : 5 306
    Points
    5 306

    Par défaut

    Bonjour,

    Tu utilises appExcel plutôt que wbExcel pour inscrire ta donnée.
    Ça devrait te donner une erreur, il me semble...(?)

    J'essaierais comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    wbExcel.Sheets("Feuil1").activate
    .....
    .....
    wbExcel.Sheets("Feuil1").Range("B" & i) = session.findbyId....
    wbExcel.Sheets("Feuil1").Calculate  ' pour forcer le recalcul de la feuille
    De plus, plutôt que d'utiliser un script VBS pour créer une instance d'Excel, tu pourrais passer directement d'Excel
    Tu n'aurais qu'à adapter légèrement ton code pour l'utiliser directement dans Excel.
    MPi²

  6. #6
    Candidat au Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    juillet 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : juillet 2017
    Messages : 14
    Points : 2
    Points
    2

    Par défaut

    Merci pour vos réponses.

    Parmi,

    Je ne sais pas faire des macro sur Excel (je les fais par enregistrement SAP et cela marche plutôt bien).

    La macro ne se lance pas avec wbExcel.Sheets

    Il y aurait-il une autre solution svp ? peut-être qu'après avoir lancé la première macro une deuxième se lancerait en automatique (cela laisserait du temps que les données magasin se renseigne dans Excel).

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2013
    Messages
    3 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : mai 2013
    Messages : 3 152
    Points : 5 306
    Points
    5 306

    Par défaut

    Après avoir copié ta donnée dans Excel, tu pourrais essayer de forcer le calcul avec
    MPi²

  8. #8
    Candidat au Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    juillet 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : juillet 2017
    Messages : 14
    Points : 2
    Points
    2

    Par défaut

    Parmi,

    J'ai toujours le même problème, je vois que ta formule a été utilisée dans une autres discussion afin de résoudre le même type de blocage.

    https://www.developpez.net/forums/d9...ontinuer-code/

    Après lecture je ne vois pas de solution

  9. #9
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2013
    Messages
    3 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : mai 2013
    Messages : 3 152
    Points : 5 306
    Points
    5 306

    Par défaut

    Dans le code que tu as mis, quelle est l'autre vue que tu actives ? (menu[13])
    Quand j'aurai 2 minutes, j'essaierai de créer quelque chose de mon côté...
    MPi²

  10. #10
    Candidat au Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    juillet 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : juillet 2017
    Messages : 14
    Points : 2
    Points
    2

    Par défaut

    Super merci,

    J'ouvre la vue gestion emplacement magasin

  11. #11
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2013
    Messages
    3 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : mai 2013
    Messages : 3 152
    Points : 5 306
    Points
    5 306

    Par défaut

    Je n'ai pas accès à cette vue...
    Si j'entre un article puis ENTER, une fenêtre apparaît avec une liste de différentes vues, mais pas celle de magasin...

    Si tu peux joindre ton code VBS, je pourrais essayer de le transposer sous Excel.
    Je pense que ça réglerait ton problème puisqu'Excel ne passe pas aux lignes suivantes des macros tant qu'elles ne sont pas terminées.

    En VBS, le processus est externe à Excel et ne connaît donc pas le temps que ça prend pour effectuer une tâche.
    C'est du moins ce que je pense...
    MPi²

  12. #12
    Candidat au Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    juillet 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : juillet 2017
    Messages : 14
    Points : 2
    Points
    2

    Par défaut

    A oui d'accord

    Tu utilises quoi comme SAP ?

  13. #13
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2013
    Messages
    3 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : mai 2013
    Messages : 3 152
    Points : 5 306
    Points
    5 306

    Par défaut

    SAP Retail R/3, version 740
    MPi²

  14. #14
    Candidat au Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    juillet 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : juillet 2017
    Messages : 14
    Points : 2
    Points
    2

    Par défaut

    OK,

    Moi j'utilise PGI.

    Du coup comme je ne fais pas de macro avec Excel, ce qu'il faudrait c'est qu'un un enregistrement du fichier excel se fasse, puis qu'une deuxième macro de lance en automatique, la réouverture du Excel.

    La je pense que sa pourrait fonctionner.

    Et toi?

  15. #15
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2013
    Messages
    3 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : mai 2013
    Messages : 3 152
    Points : 5 306
    Points
    5 306

    Par défaut

    À part la partie "connexion" du VBS, le reste peut être mis dans Excel tel quel.
    On peut évidemment y faire des boucles ou mettre des conditions, mais ça reste le même code de base.

    Voici un exemple de code simple placé dans un module d'Excel.
    Pour fins de création, j'aime bien mettre des Références aux objets de SAP pour voir leurs méthodes, propriétés,...
    J'ai mis les termes de références en commentaires et j'ai tout mis As Object pour que ça soit plus "portable".

    (Au niveau de la connexion, je suis en train de parfaire le bout de code, mais ça fonctionne si tu es déjà ouvert dans SAP)

    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
    67
    68
    69
    Sub MD_04()
        Dim SapGuiAuto As Object
        Dim AppliSAP As Object  'SAPFEWSELib.GuiApplication
        Dim Connection As Object  ' SAPFEWSELib.GuiConnection
        Dim Session As Object  ' SAPFEWSELib.GuiSession
        Dim Grille As Object  ' SAPFEWSELib.GuiTableControl
        Dim I As Long
        Dim TotalRow As Long, VisibleRow As Long
        
        On Error GoTo Erreur
        
        'Partie connexion
        '################################################
        Set SapGuiAuto = GetObject("SAPGUI")
        If Not IsObject(SapGuiAuto) Then
            Exit Sub
        End If
        
        Set AppliSAP = SapGuiAuto.GetScriptingEngine()
        If Not IsObject(AppliSAP) Then
            Exit Sub
        End If
        
        Set Connection = AppliSAP.Connections(0)
        If Not IsObject(Connection) Then
            Exit Sub
        End If
        
        Set Session = Connection.Sessions(0)
        If Not IsObject(Session) Then
            Exit Sub
        End If
        '################################################
        
        Session.FindById("wnd[0]").Maximize
        Session.FindById("wnd[0]/tbar[0]/okcd").Text = "/nMD04" 'Démarre la requête
        Session.FindById("wnd[0]/tbar[0]/btn[0]").Press
        
        'Entrer le code et l'entrepôt
        Session.FindById("wnd[0]/usr/tabsTAB300/tabpF01/ssubINCLUDE300:SAPMM61R:0301/ctxtRM61R-MATNR").Text = "10043282"
        Session.FindById("wnd[0]/usr/tabsTAB300/tabpF01/ssubINCLUDE300:SAPMM61R:0301/ctxtRM61R-WERKS").Text = "ZV01"
        Session.FindById("wnd[0]/tbar[0]/btn[0]").Press
        
        'Affiche Détails entêtes et sélectionne l'onglet Stocks/Couverture
        Session.FindById("wnd[0]/usr/btnBUTTON_GROKO").Press
        Session.FindById("wnd[0]/usr/tabsTABTC/tabpTB03").Select
        Session.FindById("wnd[0]/usr/btnBUTTON_EZ_PS").Press
        
        'Recherche dans la table
        Set Grille = Session.FindById("wnd[0]/usr/subINCLUDE1XX:SAPMM61R:0770/tabsPS_TAB/tabpPS_D/ssubPS_SUBSCR:SAPMM61R:0760/tblSAPMM61RTC_PS")
        TotalRow = Grille.VisibleRowCount
        For I = 0 To TotalRow - 1
            If Grille.GetCell(I, 1).Text = "12.02.16" Then
                MsgBox Grille.GetCell(I, 4).Text
                Exit For
            End If
        Next
        
        Set Session = Nothing
        Set Connection = Nothing
        Set AppliSAP = Nothing
        Set SapGuiAuto = Nothing
    
        Exit Sub
    Erreur:
            MsgBox Err.Number & vbCrLf & Err.Description
            Stop    'pour débogage
            Resume  'pour débogage
    End Sub
    MPi²

Discussions similaires

  1. Réponses: 0
    Dernier message: 02/06/2014, 10h26
  2. [Designer 10g] Comment faire un lien entre module
    Par Gouzoul dans le forum Oracle
    Réponses: 1
    Dernier message: 21/04/2006, 11h27
  3. Faire un lien entre deux bases de données
    Par pierce dans le forum Langage SQL
    Réponses: 1
    Dernier message: 27/01/2006, 21h29
  4. [DAO] Faire le lien entre les VO et les Objets Métiers
    Par mauvais_karma dans le forum Hibernate
    Réponses: 12
    Dernier message: 25/11/2005, 15h19
  5. Réponses: 13
    Dernier message: 20/10/2005, 13h42

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