1. #1
    Membre régulier
    Homme Profil pro
    Employé
    Inscrit en
    juin 2014
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Employé
    Secteur : Finance

    Informations forums :
    Inscription : juin 2014
    Messages : 66
    Points : 74
    Points
    74

    Par défaut Extraction via MACROX excel VBA - Transactlion ZS126

    Bonjour,
    J'utilise beaucoup de macro Excel pour extraire des données dans SAP que je retraite ensuite sur Excel avec des TCD ou des BDD.

    La transaction ZS126 me permet d'extraire tous les Idocs (qui portent des factures) transmis par SAP vers les plates-formes Bprocess ou Cegedim pour une date donnée.
    Or si pour une journée il n'y a pas d'Idocs SAP me le signale avec un pop-up informatif pour me dire "Aucun IDOC n'a été sélectionné". Je souhaiterais que ma macro ne plante pas et avec un msgbox me dise que pour cette journée il n'y a pas d'Idoc.
    Je joint un fichier avec la macro, au moins le début et je signale la ou ça plante...
    Une idée quelqu'un ?
    Merci d'avance
    Classeur6.xlsm

  2. #2
    Futur Membre du Club
    Homme Profil pro
    geek
    Inscrit en
    mai 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : geek
    Secteur : Industrie

    Informations forums :
    Inscription : mai 2017
    Messages : 9
    Points : 6
    Points
    6

    Par défaut

    Bonjour
    j'ai aussi eu ce problème lorsque dans une transaction on a une question qui est posée mais pas toujours

    ex:
    -lors d'une connection j'ai parfois la question, voulez vous tuer la session ouverte sur un autre pc
    -lors de l'ouverture d'un document, j'ai parfois la question, voulez vous l'ouvrir en FR ou EN


    la solution que j'ai trouvée et qui semble fonctionner dans mes 2 cas c'est celle ci

    on fait le script avec la version "longue" c'est a dire dans le cas de figure ou les question sont posées

    logiquement si la question n'est pas posée, le script va planter car le bouton, n'est pas présent

    du coup avec un on error resume next bien placé, on passe outre et ca marche



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    On Error Resume Next   'utile pour tuer une session SAP ouverte dans sur un autre PC
    session.findById("wnd[1]/usr/radMULTI_LOGON_OPT1").Select
    session.findById("wnd[1]/usr/radMULTI_LOGON_OPT1").SetFocus
    session.findById("wnd[1]/tbar[0]/btn[0]").press
    session.findById("wnd[1]/tbar[0]/btn[0]").press

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2013
    Messages
    3 239
    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 239
    Points : 5 466
    Points
    5 466

    Par défaut

    Bonjour,

    Désolé, mais je n'ouvre pas les fichiers joints avec macros...
    Pour fermer des fenêtres de message qui apparaissent de temps à autre, je mets ceci à l'endroit où elle pourrait apparaître.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        If Session.ActiveWindow.Text = "Le texte d'entête de la fenêtre" Then
            Session.ActiveWindow.Close
        End If
    MPi²

  4. #4
    Membre régulier
    Homme Profil pro
    Employé
    Inscrit en
    juin 2014
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Employé
    Secteur : Finance

    Informations forums :
    Inscription : juin 2014
    Messages : 66
    Points : 74
    Points
    74

    Par défaut

    Citation Envoyé par parmi Voir le message
    Bonjour,

    Désolé, mais je n'ouvre pas les fichiers joints avec macros...
    Pour fermer des fenêtres de message qui apparaissent de temps à autre, je mets ceci à l'endroit où elle pourrait apparaître.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        If Session.ActiveWindow.Text = "Le texte d'entête de la fenêtre" Then
            Session.ActiveWindow.Close
        End If

    OK Merci je vais essayer ça aussi

  5. #5
    Membre régulier
    Homme Profil pro
    Employé
    Inscrit en
    juin 2014
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Employé
    Secteur : Finance

    Informations forums :
    Inscription : juin 2014
    Messages : 66
    Points : 74
    Points
    74

    Par défaut

    Citation Envoyé par daniel-12 Voir le message
    Bonjour
    j'ai aussi eu ce problème lorsque dans une transaction on a une question qui est posée mais pas toujours

    ex:
    -lors d'une connection j'ai parfois la question, voulez vous tuer la session ouverte sur un autre pc
    -lors de l'ouverture d'un document, j'ai parfois la question, voulez vous l'ouvrir en FR ou EN


    la solution que j'ai trouvée et qui semble fonctionner dans mes 2 cas c'est celle ci

    on fait le script avec la version "longue" c'est a dire dans le cas de figure ou les question sont posées

    logiquement si la question n'est pas posée, le script va planter car le bouton, n'est pas présent

    du coup avec un on error resume next bien placé, on passe outre et ca marche



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    On Error Resume Next   'utile pour tuer une session SAP ouverte dans sur un autre PC
    session.findById("wnd[1]/usr/radMULTI_LOGON_OPT1").Select
    session.findById("wnd[1]/usr/radMULTI_LOGON_OPT1").SetFocus
    session.findById("wnd[1]/tbar[0]/btn[0]").press
    session.findById("wnd[1]/tbar[0]/btn[0]").press
    Impeccable cela marche parfaitement !!!
    Voici mon nouveau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'Si pas d'extraction, message d'erreur
    On Error Resume Next  
    MsgBox "Pas d'Idoc pour cette journée"
    Exit Sub
    MERCI BEAUCOUP !!!!

  6. #6
    Futur Membre du Club
    Homme Profil pro
    geek
    Inscrit en
    mai 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : geek
    Secteur : Industrie

    Informations forums :
    Inscription : mai 2017
    Messages : 9
    Points : 6
    Points
    6

    Par défaut

    Ce n'est peut être pas ce qu'aurait fait un programmeur, mais ça marche

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

Discussions similaires

  1. extraction de données avec vba vers excel
    Par SandyF dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 07/08/2009, 16h37
  2. Comment écrire dans une base de données ODBC via Excel (VBA)
    Par Shark777 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/04/2008, 05h56
  3. Outlook via excel vba
    Par joss56 dans le forum Outlook
    Réponses: 3
    Dernier message: 09/01/2008, 23h03
  4. Limites Création table tempo Access par ADOX via Excel VBA.
    Par botakelymg dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/11/2007, 10h45
  5. Envoi de mail via un macro vba sur excel
    Par momolamoto dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/12/2005, 19h51

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