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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 609
    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 609
    Points : 5 901
    Points
    5 901
    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

  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 609
    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 609
    Points : 5 901
    Points
    5 901
    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 ?

  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 609
    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 609
    Points : 5 901
    Points
    5 901
    Par défaut
    Il faudrait que tu sois plus précis dans ce que tu ne comprends pas...

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