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

Excel Discussion :

VBA - sélection du texte dans une autre application


Sujet :

Excel

  1. #1
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 734
    Points : 638
    Points
    638
    Par défaut VBA - sélection du texte dans une autre application
    Bonjour,

    je suis en train d'essayer d'automatiser une série d'opérations entre SAP et Office.

    Comme je n'ai pas les droits pour créer des extractions ou d'accéder en ODBC ... j'essaie de me débrouiller comme je peux

    J'ai une liste sous forme de tableau SAP que je voudrais récupérer en VBA ( a terme sous Access, mais je fais mes tests sous Excel , ça me semble plus simple ) ...

    Sachant que la structure est toujours la même, ce que je veux faire :

    1 - passer le tableau SAP dans le presse papier => je me positionne sur une des cellules => ctrl-y / ctrl-a / ctrl-c ( ctrl-y pour sélectionner toutes les données, même non affichées avec l'ascenseur)

    2 - je parcours le presse papier et splitte les données pour me retorouver avec un tableau que je peux traiter.

    Le point 2 est OK, ça passe , mais pour le point 1 j'ai essayé de faire un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ' "Modifier avis : liste des avis" , est le titre de la fenêtre a cibler
    AppActivate "Modifier avis : liste des avis", True
     
    'SendKeys "{TAB}", True
    SendKeys "^y", True
    SendKeys "^a", True
    SendKeys "^c", True
     
     
    DataObj.GetFromClipboard
    sListe = DataObj.GetText(1)

    Mais si je ne suis pas positionné sur la liste en tableau (en l'activant avec un clic avant) , la copie n'est pas effectuée et le presse papier ne comporte pas les données

    je mets intentionnellement avec un "PutInClipboard" une valeur de base (une suite de caractères) dans le presse-papier pour controler si c'est bien les données qui sont chargées et non ces caratères.

    Ce que je voudrais c'est pouvoir activer par VBA le "tableau" des données, il me semble qu'en VB6.0 on pouvais utiliser les APIs pour le faire mais je ne retrouve pas le code

    Si quelqu'un a une idée ?

    Merci d'avance

    Olivier

  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,

    Je ne sais pas si tu as accès à l'enregistreur de SAP, mais ça pourrait être une avenue.
    Dans SAP, tape Alt-F12
    Choisis Enregistrement et playback de script...

    Là, il y a une petite fenêtre qui s'ouvre qui te permet d'enregistrer les actions que tu poses, un peu comme dans Excel.
    Ça te génère un script vbs, dans le chemin indiqué, que tu peux modifier (adapter) et rouler à partir d'Excel.

    PS: il y a un forum sur SAP et tu peux y trouver quelques trucs...

  3. #3
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 734
    Points : 638
    Points
    638
    Par défaut
    Hello,

    merci pour ta réponse, malheureusement pour moi le scripting est vilainement grisé

    Pas de solution de ce côté ... ça aurait été beaucoup trop simple

    Olivier

  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
    Et tu ne peux pas demander l'accès au département technique ?

    Autrement, oui, il faudrait passer par les APIs, mais ça risque d'être assez compliqué...
    Ou peut-être demander à quelqu'un qui a accès à ta transaction de créer le script (?)

Discussions similaires

  1. [Débutant] Simuler la saisie de texte dans une autre application
    Par shaun_the_sheep dans le forum C#
    Réponses: 7
    Dernier message: 28/11/2012, 16h58
  2. Modifier un texte dans une autre frame
    Par hotkebab99 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/02/2006, 14h46
  3. Envoyer du texte dans une autre application (ou send key)
    Par Coussati dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 10/02/2006, 15h26
  4. [VBA] aligner le texte dans une cellule
    Par Rakham dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/01/2006, 17h07
  5. comment ecrire du texte dans une window application
    Par gaut dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 16/07/2003, 10h23

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