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 :

Extraction des donnée du spool vers excel


Sujet :

SAP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Stagiaire Informatique
    Inscrit en
    Mars 2018
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Stagiaire Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2018
    Messages : 69
    Points : 24
    Points
    24
    Par défaut Extraction des donnée du spool vers excel
    Bonjour,

    Je viens vous demander votre aide.
    Serait ce possible d'automatiser l'exportation de donnée d'une liste spool vers Excel directement avec la mise en forme souhaité ?

    D'avance merci.

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    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 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Oui, c'est possible, mais pas simple...
    La "grille" du spool n'est pas vraiment une grille, mais une série d'étiquettes (Label).
    Il faut donc trouver la colonne des noms de rapports par rapport au titre de colonnes.
    Dans mon cas, on retrouve le mot Intitulé en français ou Title en anglais

    Je me suis fait une petite fonction pour la trouver

    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
    Function GetLabelNumber(Session As Object) As Integer
        Dim I As Long
        Dim sapGui As Object        ' SAPFEWSELib.GuiApplication
        Dim sapCon As Object        ' SAPFEWSELib.GuiConnection
        Dim sapSession As Object    ' SAPFEWSELib.GuiSession
        Dim sapUsr As Object        ' SAPFEWSELib.GuiUserArea
    
        Dim ChildCount As Long
        Dim Tablo
        Dim Ligne As Long
        
        Set sapGui = GetObject("sapgui").GetScriptingEngine
        Set sapCon = sapGui.Children(0)
        Set sapSession = sapCon.Children(0)
        
        With Session
            Set sapUsr = .FindById("wnd[0]/usr")
            sapUsr.VerticalScrollbar.Position = 0   'Positionne le scrollbar en haut
            ChildCount = sapUsr.Children.Count      'Nombre d'items
            For I = 0 To ChildCount                 'Recherche le titre de la colonne des noms de rapports
                If InStr(1, sapUsr.Children(I).Text, "Intitulé") > 0 Or InStr(1, sapUsr.Children(I).Text, "Title") > 0 Then
                    Tablo = Split(sapUsr.Children(I).ID, "[")
                    Tablo = Split(Tablo(UBound(Tablo)), ",")
                    Ligne = Tablo(0)
                    GetLabelNumber = Ligne
                    Exit Function
                End If
            Next
        End With
        
    End Function
    Pour l'appeler
    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
    'code de connexion avec les dates et ce qu'il faut.................
    
        lblNum = GetLabelNumber(Session)
        If lblNum = 0 Then
            MsgBox "Impossible de trouver la colonne des rapports", vbExclamation, "Erreur SAP"
            Exit Sub
        End If
        For I = 3 To 50  'Changer au besoin
            If Not Sortir Then
                If Not Session.FindById("wnd[0]/usr/lbl[" & lblNum & "," & I + 1 & "]") Is Nothing And Sortir = False Then
                    
                    If Sortir Then Sortir = False: Exit For
                    
                    If Session.FindById("wnd[0]/usr/lbl[" & lblNum & "," & I + 1 & "]").Text = "Nom du rapport qu'on recherche" Then
                        If Sortir Then Exit For
    
                        Session.FindById("wnd[0]/usr/lbl[" & lblNum & "," & I + 1 & "]").SetFocus           
                        Session.FindById("wnd[0]/usr/lbl[" & lblNum & "," & I + 1 & "]").caretPosition = 5
                        Session.FindById("wnd[0]/tbar[1]/btn[6]").press                         'lunettes
                        Session.FindById("wnd[0]/tbar[1]/btn[48]").press                       'bouton Enregistrer
                        Session.FindById("wnd[1]/tbar[0]/btn[0]").press
                        Session.FindById("wnd[1]/usr/ctxtDY_PATH").Text = Chemin        'inscrit le chemin
                        Fichier = "Nom du fichier.txt"
                        Session.FindById("wnd[1]/usr/ctxtDY_FILENAME").Text = Fichier   'inscrit le nom du fichier
                        Session.FindById("wnd[1]/tbar[0]/btn[0]").press                          'enregistre
                        Session.FindById("wnd[0]/tbar[0]/btn[3]").press                          'retour à la liste
                    End If
                End If
            Else
                Sortir = False
                Exit For
            End If
        Next
    MPi²

  3. #3
    Membre à l'essai
    Homme Profil pro
    Stagiaire Informatique
    Inscrit en
    Mars 2018
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Stagiaire Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2018
    Messages : 69
    Points : 24
    Points
    24
    Par défaut
    J'essaye de comprendre le code mais j'avance pas beaucoup pourrais tu m'expliquer rapidement ce que que tu fais ?

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    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 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Après avoir atteint la page du spool, je recherche la colonne qui contient les noms de rapports.
    Ma fonction me retourne le numéro de colonne que j'utilise dans mon code (variable LblNum) et je l'utilise dans ma boucle.
    ex: Session.FindById("wnd[0]/usr/lbl[" & lblNum & "," & I + 1 & "]").SetFocus

    Ensuite, je boucle toutes les lignes pour rechercher celui ou ceux qui m'intéressent.
    Je leur donne le focus, les ouvre (icône lunettes) et les sauvegarde dans un répertoire.

    Finalement (pas dans ce code), je les récupère et copie ce que j'ai besoin.

    Qu'est-ce que tu ne comprends pas ? Où bloques-tu ?
    MPi²

  5. #5
    Membre à l'essai
    Homme Profil pro
    Stagiaire Informatique
    Inscrit en
    Mars 2018
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Stagiaire Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2018
    Messages : 69
    Points : 24
    Points
    24
    Par défaut
    Le principe je l'ai compris mais ce que je comprend pas c'est la facon dont tu le fais la partie avec le tableau je ne comprend pas ce que tu fais.
    Et la première partie du code de connexion jusqu'au code commenté également.

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    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 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Il faudrait que tu sois plus précis dans ce que tu ne comprends pas...
    MPi²

  7. #7
    Membre à l'essai
    Homme Profil pro
    Stagiaire Informatique
    Inscrit en
    Mars 2018
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Stagiaire Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2018
    Messages : 69
    Points : 24
    Points
    24
    Par défaut
    La déclaration de tes variables je n'ai aucun soucis. Le probleme commence dans le with, je ne comprend plus ce que fais ton code.

    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
    With Session
            Set sapUsr = .FindById("wnd[0]/usr")
            sapUsr.VerticalScrollbar.Position = 0   'Positionne le scrollbar en haut
            ChildCount = sapUsr.Children.Count      'Nombre d'items
            For I = 0 To ChildCount                 'Recherche le titre de la colonne des noms de rapports
                If InStr(1, sapUsr.Children(I).Text, "Intitulé") > 0 Or InStr(1, sapUsr.Children(I).Text, "Title") > 0 Then
                    Tablo = Split(sapUsr.Children(I).ID, "[")
                    Tablo = Split(Tablo(UBound(Tablo)), ",")
                    Ligne = Tablo(0)
                    GetLabelNumber = Ligne
                    Exit Function
                End If
            Next
        End With
    Et dans la deuxième partie

    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
        lblNum = GetLabelNumber(Session)
        If lblNum = 0 Then
            MsgBox "Impossible de trouver la colonne des rapports", vbExclamation, "Erreur SAP"
            Exit Sub
        End If
        For I = 3 To 50  'Changer au besoin
            If Not Sortir Then
                If Not Session.FindById("wnd[0]/usr/lbl[" & lblNum & "," & I + 1 & "]") Is Nothing And Sortir = False Then
                    
                    If Sortir Then Sortir = False: Exit For
                    
                    If Session.FindById("wnd[0]/usr/lbl[" & lblNum & "," & I + 1 & "]").Text = "Nom du rapport qu'on recherche" Then
                        If Sortir Then Exit For
    
                        Session.FindById("wnd[0]/usr/lbl[" & lblNum & "," & I + 1 & "]").SetFocus           
                        Session.FindById("wnd[0]/usr/lbl[" & lblNum & "," & I + 1 & "]").caretPosition = 5
    Tout ce code je ne comprend pas non plus son fonctionnement.

  8. #8
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    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 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Comme expliqué, la page est une série de Labels.
    Pour savoir comment boucler ces Labels, je dois trouver son Index de colonne.
    C'est ce que je fais dans la 1e section que tu as mise.

    Cette ligne me donne le nombre d'étiquettes (Labels) dans la page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ChildCount = sapUsr.Children.Count
    Ensuite je boucle jusqu'à trouver la colonne qui contient le titre des rapports, dans mon cas: "Intitulé ou nom de l'ordre de spool"
    Quand je l'ai trouvée, je lis son adresse: sapUsr.Children(I).ID
    Cette adresse me retourne cette valeur: "/app/con[0]/ses[0]/wnd[0]/usr/lbl[87,2]"
    Étonnement, la colonne est le premier chiffre de l'adresse, ici 87,2
    Pour trouver le 87 (l'index de colonne), j'utilise 2 Split et ma fonction me retourne le nombre dans l'autre procédure: lblNum = GetLabelNumber(Session)

    Dans la 2e section de code, je boucle la série de rapports sur 50 lignes (ça peut être modifié) en vérifiant que le Label existe bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not Session.FindById("wnd[0]/usr/lbl[" & lblNum & "," & I + 1 & "]") Is Nothing
    Si trouvé, je le sélectionne, clique la lunette pour afficher le rapport et le sauvegarde,...

    Est-ce plus clair?
    MPi²

  9. #9
    Membre à l'essai
    Homme Profil pro
    Stagiaire Informatique
    Inscrit en
    Mars 2018
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Stagiaire Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2018
    Messages : 69
    Points : 24
    Points
    24
    Par défaut
    C'est un peu plus clair, mais c'est toujours flou dans ma tête. Je suis désolé tu dois t'arracher les cheveux.

  10. #10
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    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 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Difficile de t'aider sans savoir exactement ce qui n'est pas clair...
    MPi²

  11. #11
    Membre à l'essai
    Homme Profil pro
    Stagiaire Informatique
    Inscrit en
    Mars 2018
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Stagiaire Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2018
    Messages : 69
    Points : 24
    Points
    24
    Par défaut
    Ducoup je met le code pour arrivé jusqu'a la page du job soit celle là:

    Nom : sm37.PNG
Affichages : 1192
Taille : 58,9 Ko

    Ensuite il faut que lance ton code ? où il faut que je me déplace jusqu'au fichier que je veux.
    Dans un premier temps sélectionner echeance_MO_VEH

    Nom : SM37_2.PNG
Affichages : 1067
Taille : 27,2 Ko

    Puis la ligne AQCSONL....

    Nom : SM37_3.PNG
Affichages : 1070
Taille : 25,7 Ko

    Puis sélectionner l'affichage des données.
    Ce que j'ai pas compris c'est comment faire sa avec ton code. Tu as des parties demandant de rentrer des intitulés mais je vois pas à quoi cela correspond.

  12. #12
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    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 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Ça ne se passe pas comme ça de mon côté...
    J'arrive sur le 3e écran du 1er coup.

    Mais ce que je t'ai donné comme code ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    With Session
            Set sapUsr = .FindById("wnd[0]/usr")
            sapUsr.VerticalScrollbar.Position = 0   'Positionne le scrollbar en haut
            ChildCount = sapUsr.Children.Count      'Nombre d'items
            For I = 0 To ChildCount                 'Recherche le titre de la colonne des noms de rapports
                If InStr(1, sapUsr.Children(I).Text, "Intitulé") > 0 Or InStr(1, sapUsr.Children(I).Text, "Title") > 0 Then
                    Tablo = Split(sapUsr.Children(I).ID, "[")
                    Tablo = Split(Tablo(UBound(Tablo)), ",")
                    Ligne = Tablo(0)
                    GetLabelNumber = Ligne
                    Exit Function
                End If
            Next
        End With
    ce serait pour ton 3e écran pour trouver la colonne Intitulé

    Donc, dans ton cas, je pense, il faudrait que tu trouves l'entête nommé "Nom job"
    Et tu boucles jusqu'à trouver "ECHEANCES_MO_VEH"
    De là, tu double-cliques ou cliques un bouton (?) pour te rendre au 2e écran et tu refais le même processus pour trouver l'entête "Programme / commande", etc...
    MPi²

  13. #13
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    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 617
    Points : 5 912
    Points
    5 912
    Par défaut
    J'aurais pu ajouter...
    Comme tu as 3 fenêtres à parcourir, tu pourrais ajouter un paramètre à la fonction GetLabelNumber

    Tu l'appelerais donc 3 fois
    Par exemple, tu lui passes un numérique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Num = 1
    lblNum = GetLabelNumber(Session, Num)
    Et dans la Function, tu vérifies ce numéro
    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
    Function GetLabelNumber(Session As Object, Num As Integer) As Integer
        Dim I As Long
        Dim sapGui As Object        ' SAPFEWSELib.GuiApplication
        Dim sapCon As Object        ' SAPFEWSELib.GuiConnection
        Dim sapSession As Object    ' SAPFEWSELib.GuiSession
        Dim sapUsr As Object        ' SAPFEWSELib.GuiUserArea
    
        Dim ChildCount As Long
        Dim Tablo
        Dim Ligne As Long
        
        Set sapGui = GetObject("sapgui").GetScriptingEngine
        Set sapCon = sapGui.Children(0)
        Set sapSession = sapCon.Children(0)
        
        With Session
            Set sapUsr = .FindById("wnd[0]/usr")
            sapUsr.VerticalScrollbar.Position = 0   'Positionne le scrollbar en haut
            ChildCount = sapUsr.Children.Count      'Nombre d'items
            If Num = 1 then
            For I = 0 To ChildCount                 'Recherche le titre de la colonne des noms de rapports
                If InStr(1, sapUsr.Children(I).Text, "Nom job") > 0  Then
                    Tablo = Split(sapUsr.Children(I).ID, "[")
                    Tablo = Split(Tablo(UBound(Tablo)), ",")
                    Ligne = Tablo(0)
                    GetLabelNumber = Ligne
                    Exit Function
                End If
            Next
            ElseIf Num = 2 then
            For I = 0 To ChildCount                 'Recherche le titre de la colonne des noms de rapports
                If InStr(1, sapUsr.Children(I).Text, "Programme / commande") > 0 Then
                    Tablo = Split(sapUsr.Children(I).ID, "[")
                    Tablo = Split(Tablo(UBound(Tablo)), ",")
                    Ligne = Tablo(0)
                    GetLabelNumber = Ligne
                    Exit Function
                End If
            Next
            Else
            For I = 0 To ChildCount                 'Recherche le titre de la colonne des noms de rapports
                If InStr(1, sapUsr.Children(I).Text, "Intitulé") > 0 Then
                    Tablo = Split(sapUsr.Children(I).ID, "[")
                    Tablo = Split(Tablo(UBound(Tablo)), ",")
                    Ligne = Tablo(0)
                    GetLabelNumber = Ligne
                    Exit Function
                End If
            Next
            End If
        End With
        
    End Function
    Dans le code principal, tu agis donc en 3 sections.
    La recherche du 1er rapport, quand trouvé tu vas sur la 2e fenêtre
    Recherche du rapport de cette fenêtre et tu vas dans la 3e fenêtre
    Recherche du 3e rapport et tu l'ouvres pour traitement
    MPi²

  14. #14
    Membre à l'essai
    Homme Profil pro
    Stagiaire Informatique
    Inscrit en
    Mars 2018
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Stagiaire Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2018
    Messages : 69
    Points : 24
    Points
    24
    Par défaut
    Dans les boucles je vois bien qu'il recherche le nom de chaque colonne mais je vois pas d'instruction lui disant qu'arriver à la ligne "xxx" il l'a selectionne et y accède.

  15. #15
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    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 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        For I = 3 To 50  'Changer au besoin
            If Not Sortir Then
                If Not Session.FindById("wnd[0]/usr/lbl[" & lblNum & "," & I + 1 & "]") Is Nothing And Sortir = False Then
                    
                    If Sortir Then Sortir = False: Exit For
                    
                    If Session.FindById("wnd[0]/usr/lbl[" & lblNum & "," & I + 1 & "]").Text = "Nom du rapport qu'on recherche" Then
                        If Sortir Then Exit For
    
                        Session.FindById("wnd[0]/usr/lbl[" & lblNum & "," & I + 1 & "]").SetFocus           
                        Session.FindById("wnd[0]/usr/lbl[" & lblNum & "," & I + 1 & "]").caretPosition = 5
    MPi²

  16. #16
    Membre à l'essai
    Homme Profil pro
    Stagiaire Informatique
    Inscrit en
    Mars 2018
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Stagiaire Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2018
    Messages : 69
    Points : 24
    Points
    24
    Par défaut
    Ducoup il faut que je fasse 3 boucles comme ceci si je comprend bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Session.FindById("wnd[0]/usr/lbl[" & lblNum & "," & I + 1 & "]").Text = "Nom du rapport qu'on recherche" Then
    Mais dans les deux premieres il faudra en mettre moin que ce que j'ai deja.

  17. #17
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    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 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Exact, un peu comme je disais au message #13

    Je n'ai jamais vu ce genre de spool en plusieurs parties.
    Peut-être parce que j'entre un nom de spool (Suffix2) qui me permet de me rendre directement aux rapports que je veux voir (?)
    MPi²

  18. #18
    Membre à l'essai
    Homme Profil pro
    Stagiaire Informatique
    Inscrit en
    Mars 2018
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Stagiaire Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2018
    Messages : 69
    Points : 24
    Points
    24
    Par défaut
    Voici mes 3 conditions :

    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
    If Session.FindById("wnd[0]/usr/lbl[" & lblNum & "," & I + 1 & "]").Text = "ECHEANCES_MO_VEH" Then
                        If Sortir Then Exit For
    						
    						session.findById("wnd[0]/usr/chk[1,13]").setFocus
    						session.findById("wnd[0]/tbar[1]/btn[44]").press
    						
                    End If
                End If
    				
    				If Session.FindById("wnd[0]/usr/lbl[" & lblNum & "," & I + 1 & "]").Text = "AQCSONL_BESOIN==Z_BESOINS=====" Then
                        If Sortir Then Exit For
    
    						session.findById("wnd[0]/usr/lbl[4,3]").setFocus
    						session.findById("wnd[0]/usr/lbl[4,3]").caretPosition = 4
    						session.findById("wnd[0]/tbar[1]/btn[34]").press
    						
                    End If
                End If
    				
                    If Session.FindById("wnd[0]/usr/lbl[" & lblNum & "," & I + 1 & "]").Text = "LIST1S LOCL AQCSONL_BESO" Then
                        If Sortir Then Exit For
    
                        Session.FindById("wnd[0]/usr/lbl[" & lblNum & "," & I + 1 & "]").SetFocus           
                        Session.FindById("wnd[0]/usr/lbl[" & lblNum & "," & I + 1 & "]").caretPosition = 5
                        Session.FindById("wnd[0]/tbar[1]/btn[6]").press                          'lunettes
                        Session.FindById("wnd[0]/tbar[1]/btn[48]").press                       	 'bouton Enregistrer
                        Session.FindById("wnd[1]/tbar[0]/btn[0]").press
                        Session.FindById("wnd[1]/usr/ctxtDY_PATH").Text = Chemin        		 'inscrit le chemin
                        Fichier = "Nom du fichier.txt"
                        Session.FindById("wnd[1]/usr/ctxtDY_FILENAME").Text = Fichier   		 'inscrit le nom du fichier
                        Session.FindById("wnd[1]/tbar[0]/btn[0]").press                          'enregistre
                        Session.FindById("wnd[0]/tbar[0]/btn[3]").press                          'retour à la liste
                    End If
                End If
    Sa te semble correct ?

  19. #19
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    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 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Met le code VBS que tu as en enregistrant la macro dans SAP, juste la partie à partir du moment que tu es rendu sur la 1ere page.
    MPi²

  20. #20
    Membre à l'essai
    Homme Profil pro
    Stagiaire Informatique
    Inscrit en
    Mars 2018
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Stagiaire Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2018
    Messages : 69
    Points : 24
    Points
    24
    Par défaut
    Quand j'essaie d'extraitre le spool en fichier texte via un script il me refuse l'accès il me semble.

    Nom : regle.PNG
Affichages : 973
Taille : 6,3 Ko
    Nom : regle2.PNG
Affichages : 977
Taille : 2,3 Ko

    Est ce bien ça ?

    EDIT : c'est bon le problème est résolu

Discussions similaires

  1. [A-03] Extraire des données d'Access vers Excel
    Par azräel dans le forum VBA Access
    Réponses: 5
    Dernier message: 29/10/2008, 08h13
  2. Exporter des données de forms vers excel
    Par stephane1973 dans le forum Forms
    Réponses: 5
    Dernier message: 15/10/2008, 04h26
  3. [VBA Excel] Extraction de données fichier txt vers Excel et mise en forme
    Par newcodeur dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 23/05/2008, 11h45
  4. extraction des données de MySQL vers excel
    Par wiama dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 03/05/2007, 11h37
  5. Réponses: 1
    Dernier message: 07/07/2006, 18h13

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