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 :

Erreur script VB - XLS => SAP


Sujet :

VBA

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juin 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Erreur script VB - XLS => SAP
    Bonjour,

    J'ai développé dans le passé plusieurs VB scripts qui permettent de se connecter à SAP afin de répéter de manière automatique une série de tâches. Or avec cette macro qui est basée sur le recording suivant

    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
    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
    If Not IsObject(session) Then
       Set session    = connection.Children(0)
    End If
    If IsObject(WScript) Then
       WScript.ConnectObject session,     "on"
       WScript.ConnectObject application, "on"
    End If
    session.findById("wnd[0]").maximize
    session.findById("wnd[0]/tbar[0]/okcd").text = "QP02"
    session.findById("wnd[0]").sendVKey 0
    session.findById("wnd[0]/usr/ctxtRC27M-MATNR").text = ""
    session.findById("wnd[0]/usr/ctxtRC27M-WERKS").text = "1211"
    session.findById("wnd[0]/usr/ctxtRC271-PLNNR").text = "rmmr0001"
    session.findById("wnd[0]/usr/ctxtRC271-AENNR").text = "500000287151"
    session.findById("wnd[0]/usr/ctxtRC271-AENNR").setFocus
    session.findById("wnd[0]/usr/ctxtRC271-AENNR").caretPosition = 12
    session.findById("wnd[0]").sendVKey 0
    session.findById("wnd[0]/mbar/menu[0]/menu[5]").select
    session.findById("wnd[1]/usr/tblSAPLCZDITCTRL_4010/txtMAPL-PLNAL[0,0]").text = "1"
    session.findById("wnd[1]/usr/tblSAPLCZDITCTRL_4010/txtMAPL-PLNAL[0,1]").text = "1"
    session.findById("wnd[1]/usr/tblSAPLCZDITCTRL_4010/ctxtMAPL-MATNR[2,0]").text = "120609"
    session.findById("wnd[1]/usr/tblSAPLCZDITCTRL_4010/ctxtMAPL-MATNR[2,1]").text = "125780"
    session.findById("wnd[1]/usr/tblSAPLCZDITCTRL_4010/ctxtMAPL-WERKS[3,0]").text = "1211"
    session.findById("wnd[1]/usr/tblSAPLCZDITCTRL_4010/ctxtMAPL-WERKS[3,1]").text = "1211"
     
    session.findById("wnd[1]/tbar[0]/btn[0]").press
    session.findById("wnd[0]/tbar[0]/btn[11]").press

    j'essaie d'ajouter des articles à un plan d'inspection. Je dois définir les positions qui correspondent aux 3 colonnes. Voir ci-dessus en rouge

    Nom : Access 1.jpg
Affichages : 359
Taille : 112,7 Ko

    Pour ce faire, je définis la variable i

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim i As Integer
    i = 0
    Or quand j'exécute et arrive à l'endroit suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    session.findById("wnd[1]/usr/tblSAPLCZDITCTRL_4010/txtMAPL-PLNAL[1," & i & "]").Text = Group_Counter
    session.findById("wnd[1]/usr/tblSAPLCZDITCTRL_4010/ctxtMAPL-MATNR[2," & i & "]").Text = Material
    session.findById("wnd[1]/usr/tblSAPLCZDITCTRL_4010/ctxtMAPL-WERKS[3," & i & "]").Text = Plant

    Je reçois le message d'erreur suivant.

    Nom : acces 2.jpg
Affichages : 493
Taille : 232,1 Ko

    Si vous avez des idées ou suggestions, un grand merci d'avance ...

    Bàv

    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    'désactive les message d'excel lorsque le réseau ou SAP est trop lent
    Private Declare Function _
        CoRegisterMessageFilter Lib "OLE32.DLL" _
        (ByVal lFilterIn As Long, _
        ByRef lPreviousFilter) As Long
     
        Sub RPRVMLSD()
    'On Error Resume Next
     
    ' Gestion de l'interception desmessages OLE
    Dim lMsgFilter As Long
     
    ' Intercepter les messages OLE
    CoRegisterMessageFilter 0&, lMsgFilter
     
    'synchronisation avec sap
    Set SapGuiAuto = GetObject("SAPGUI")
    Set Connection = SapGuiAuto.GetScriptingEngine.Children(0)
    Set session = Connection.Children(0)
     
    'Vérifie si les 3 conditions setter ci-haut sont existantes
    If Not IsObject(SapGuiAuto) Then
        Set SAPguiApp = CreateObject("Sapgui.ScriptingCtrl.1")
    End If
    If Not IsObject(Connection) Then
        Set Connection = SAPguiApp.OpenConnection("1.4-R/3 Sandbox 1", True)
    End If
    If Not IsObject(session) Then
        Set session = Connection.Children(0)
    End If
     
    'Dim cptRow As Integer
    'cptRow = 2
     
    Dim cptRow, Id, Id_Prec As Integer
    cptRow = 2
    Id = Cells(cptRow, 1)
     
     
    'RUPTURE DE SEQUENCE
    While (Cells(cptRow, 1) <> "")
        Id_Prec = Id
     
     
        session.findById("wnd[0]/tbar[0]/okcd").Text = "qp02"
        session.findById("wnd[0]").sendVKey 0
     
        Plant = Sheets("QP02").range("B" & cptRow).Value
        Group = Sheets("QP02").range("C" & cptRow).Value
        Change_Num = Sheets("QP02").range("D" & cptRow).Value
     
        session.findById("wnd[0]/usr/ctxtRC27M-WERKS").Text = Plant
        session.findById("wnd[0]/usr/ctxtRC271-PLNNR").Text = Group
        session.findById("wnd[0]/usr/ctxtRC271-AENNR").Text = Change_Num
     
        session.findById("wnd[0]").sendVKey 6
        session.findById("wnd[0]/mbar/menu[0]/menu[5]").Select
     
        'Dim i As Integer
        'i = 0
     
        While (Id_Prec = Id And Cells(cptRow, 1) <> "")
     
            'TRAITEMENT SUR LA LIGNE
            'INIT POUR TRAIT SUIVANT
     
            Group_Counter = Sheets("QP02").range("E" & cptRow).Value
            Material = Sheets("QP02").range("F" & cptRow).Value
            Plant = Sheets("QP02").range("G" & cptRow).Value
     
            Dim i As Integer
            i = 0
     
            session.findById("wnd[1]/usr/tblSAPLCZDITCTRL_4010/txtMAPL-PLNAL[1," & i & "]").Text = Group_Counter
            session.findById("wnd[1]/usr/tblSAPLCZDITCTRL_4010/ctxtMAPL-MATNR[2," & i & "]").Text = Material
            session.findById("wnd[1]/usr/tblSAPLCZDITCTRL_4010/ctxtMAPL-WERKS[3," & i & "]").Text = Plant
     
            i = i + 1
            cptRow = cptRow + 1
            Id = Cells(cptRow, 1)
     
            session.findById("wnd[1]/tbar[0]/btn[0]").press
            session.findById("wnd[0]/tbar[0]/btn[11]").press
     
        Wend
     
     
    Wend
     
     
    End Sub

  2. #2
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Bonjour à toi,

    Je pense que malheureusement pour il n'y a pas grand monde qui pourrait t'aider sur quelque chose d'aussi spécifique que l'utilisation d'un objet SAPGUI...
    Connais tu les BAPI SAP ?
    Je pense que tu devrais regarde de ce côté la pour faciliter le traitement de ce que tu veux réaliser.
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juin 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta réponse ... J'ai finalement trouvé ce qui ne fonctionnait pas. Je vais clôturer la discussion ...

    Bàt

  4. #4
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Il aurait pu être intéressant de le partager si un jour quelqu'un cherche quelque chose de similaire
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. erreur script perl
    Par infernal1022 dans le forum Langage
    Réponses: 2
    Dernier message: 18/06/2007, 10h49
  2. erreur script vbs
    Par france38 dans le forum VBScript
    Réponses: 4
    Dernier message: 14/10/2006, 10h50
  3. erreur script javascript
    Par speedylol dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 08/08/2006, 13h15
  4. [Configuration] affichage video erreur script
    Par zorrax dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 10
    Dernier message: 26/02/2006, 15h35
  5. [VB.NET] Erreur script client
    Par Sadneth dans le forum ASP.NET
    Réponses: 2
    Dernier message: 04/03/2005, 08h33

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