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

Macros et VBA Excel Discussion :

Attendre puis activer un classeur excel téléchargé [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 11
    Points : 1
    Points
    1
    Par défaut Attendre puis activer un classeur excel téléchargé
    Bonjour à tous,

    Je viens de créer une macro permettant de commander le téléchargement de rapports XLS sur mon backoffice depuis chrome. Si je commence par mon 1er fichier, il s'ouvre parfaitement, aucun souci là-dessus. Mon problème est que je n'arrive pas à trouver la procédure permettant d'attendre la fin du téléchargement puis l'ouverture du fichier avant de l'activer. Autre difficulté : le fichier n'a jamais le même nom mais par contre il commence toujours par "réservations".
    Avez-vous une idée sur le code à utiliser ? Je pensais à une boucle Do until Loop mais je n'arrive pas à ma fin... (je débute le VBA depuis peu )
    Merci d'avance pour votre aide.
    Damien

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, voir peut-être VBA et développement Web

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Merci pour le retour.
    Malheureusement, je ne trouve pas vraiment de solutions à mon problème. J'ai l'impression que l'ouverture de mon fichier est impossible lorsque la macro est en cours d'exécution. Lorsque j'arrête la macro, le fichier s'ouvre parfaitement...
    J'ai essayé la fonction Wait sans succès.

    Merci d'avance pour votre aide

  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
    Si déjà on voyait à quoi ressemble cette fameuse macro....
    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…

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Voilà le code me permettant très simplement de télécharger et d'ouvrir automatiquement (grâce à chrome) mon classeur excel (ou csv car j'ai le choix). Par contre, aucun moyen aujourd'hui d'activer ce nouveau fichier grâce à cette même macro.


    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
     
    Public driver As New Selenium.ChromeDriver
    Public Assert As New Selenium.Assert
    Public Verify As New Selenium.Verify
    Public Waiter As New Selenium.Waiter
    Public Keys As New Selenium.Keys
    Public By As New Selenium.By
    Const url = "URL_de_mon_backend"
    Const id_button_export = "ext-gen200"
    Const id_button_EmptyTheForm = "ext-gen25"
    Const id_field_Offer = "ext-comp-1033"
    Const id_button_submit1 = "ext-gen27"
     
    Sub Dl_export()
      driver.SetProfile "My_Chrome_Profile"
      driver.Get url
      driver.FindElementById("ext-comp-1061", timeout:=10000).Click
      driver.FindElementById(id_field_Offer).SendKeys "Keyword"
      driver.FindElementById(id_button_submit1).Click
      driver.FindElementById(id_button_export).Click
    End Sub

  6. #6
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Bonjour,

    en fait tu utilises selenium et dans ce cas vaudrait mieux poser le problème sur son forum !

    Sinon il suffirait via l'outil d'inspection d'un navigateur de trouver la requête utilisée
    afin de la reproduire directement en VBA sans selenium ni aucun navigateur …

    Si par bonheur le classeur à télécharger dispose d'une URL, Excel peut l'ouvrir directement en une ligne de code !


    _________________________________________________________________________________________________________
    Je suis Paris, Charlie, Bruxelles, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Merci.
    J'ai une URL pour le classeur mais cela nécessite que je sois logué à mon compte et je souhaiterais également avoir un classeur bien précis en fonction de ce que je remplis dans mon formulaire (comme le keyword que je remplis dans une box).

  8. #8
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut



    Alors ici ce sera un pilotage d'Internet Explorer classique : Interaction avec Internet Explorer via VBA Excel
    sans compter les nombreux exemples dans les contributions et les discussions de ce forum !

    Parfois c'est possible aussi en se loguant via une requête comme dans cette discussion.

    Sinon pour selenium, va voir sur son forum …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Alors je viens d'essayer un pilotage classique pour remplir à ma convenance mon formulaire puis je termine par :
    fichier_internet = "URL"
    Workbooks.Open fichier_internet

    La page IE et le remplissage des champs marchent très bien par contre, impossible de télécharger le classeur excel en question.
    "Nous sommes désolés, mais il est impossible d'ouvrir "l'URL", car le serveur ne répond pas"

    Avez-vous une idée ?

    Damien

  10. #10
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut



    Là il y a maldonne !

    Soit il y a besoin de piloter IE depuis une page source en répondant à chaque étape jusqu'au téléchargement final
    soit le classeur a une URL directement accessible et donc là le pilotage est inutile …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Oui en effet, je suis obligé de piloter IE pour spécifier mon export via le formulaire.
    Si je clique sur le bouton export sur IE, le fichier se télécharge bien mais je n'arrive pas à piloter la boite de dialogue afin de cliquer sur "ouvrir". C'est pour cette raison que j'avais choisi selenium, afin d'ouvrir automatiquement le fichier sans passer par cette foutue boite de dialogue...
    Merci d'avance

    Damien

  12. #12
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut


    Il suffit juste de manuellement tester quelle est la séquence nécessaire de touches
    puis de l'envoyer dans le code via SendKeys par exemple …

    Parfois il est nécessaire d'appliquer une pause entrre deux étapes, voir cette contribution :

    Automatiser l'ouverture d'un fichier compatible Excel depuis le Web (téléchargement)


    D'autres exemples dans les discussions de ce forum …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Merci !
    Oui j'avais déjà vu cette contribution mais je n'arrive pas vraiment à arriver à mon but. La séquence à utiliser est Tab + ENTER. En reprenant les pistes dans la contribution, voilà la fin de mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    IE.Navigate "URL_de_telechargement"
    Application.Wait Now + 0.000011
    CreateObject("WScript.Shell").SendKeys "{^J}", True 'ça ne marche pas.
    Application.Wait Now + 0.00001
    End Sud
    Avec ce code, j'ai l'erreur suivante au niveau de mon CreateObject("WScript.Shell") : "Argument ou appel de procédure incorrect"
    J'ai vraiment un niveau très basique sur VBA... Donc désolé, si ca prend un peu de temps

    Merci d'avance

  14. #14
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut


    Le problème est que tu n'envoies ni de tabulation ni la touche Entrée !
    Et certainement des lignes entre la 2 et la 3 …

    Dans le code, curseur texte placé sur SendKeys puis appuyer sur la touche : la liste des codes des touches s'affiche dans l'aide !

    SendKeys "{TAB}~"
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Je suis vraiment un b*****. En réalité, j'étais en train de regarder à l'époque s'il n'y avait pas quelque chose à faire du côté des fichiers téléchargés (CTRL + J)
    Avec le SendKeys indiqué, le fichier s'ouvre parfaitement. Merci ! Maintenant, je cherche un moyen pour activer le classeur qui vient de s'ouvrir. J'ai essayé une boucle Do Until Workbook.Name Like "le nom de fichier" Loop / malheureusement, la boucle tourne sans fin et empêche l'ouverture de mon classeur...

  16. #16
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut




    Si la séquence de touches correspond bien à Ouvrir du bandeau d'IE, le classeur s'ouvre automatiquement !

    Une petite pause juste après le SendKeys peut s'avérer nécessaire …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  17. #17
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Oui j'ai également essayé, sans succès non plus. J'ai essayé 6 secondes. Voilà la fin de mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    IE.Navigate "https://www.mobilities.com/backoffice/fr/reservation/csv-export/view_type/reservation"
    'On éxécute l'ouverture du fichier
    Application.Wait Now + 0.00008
    CreateObject("WScript.Shell").SendKeys "{TAB}~", True
            Application.Wait (Now + TimeValue("0:00:06"))
    ActiveWorkbook.ActiveSheet.Range("A10").Select
    End Sub
    Je me suis repenché hier sur mon problème et j'ai l'impression que l'ouverture de mon fichier téléchargé ne se fait qu'à la fin de ma macro ou lorsque je fais une pause après le sendkeys. Comment faire pour éviter cela ?
    L'intéret étant pour moi d'activer le classeur téléchargé et de copier coller les cellules dans mon classeur initial...
    Merci d'avance !

  18. #18
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut




    Relire le post #16 ! Comme la contribution, le plus simple étant l'étape 1 …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  19. #19
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Bonjour Marc,
    Super ! En relisant bien la contribution, je comprends maintenant l'utilisation de l'événement Workbook_Deactivate(). Grâce à ça je ne dois pas être loin de la solution finale !
    Par contre, j'ai dû rater quelque chose car cet évenement ne se déclenche jamais j'ai l'impression... Je place pourtant mon code dans le module ThisWorkbook... sans effet malgré l'ouverture automatique de mon classeur excel téléchargé.

  20. #20
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut




    Placer au tout début du code de l'évènement MsgBox "Evènement OK !" pour voir s'il se déclenche ou pas …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Activation des macros au démarrage d'un classeur EXCEL
    Par bernard_metz dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/11/2013, 17h29
  2. [AC-2003] Import Classeur Excel : problème avec Champ d'abord numériques puis Alpha.
    Par Godzestla dans le forum VBA Access
    Réponses: 3
    Dernier message: 16/08/2011, 16h06
  3. [XL-2007] Activer un classeur Excel 2003 depuis Excel 2007
    Par juliusmarat dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 15/10/2010, 15h06
  4. Java et Classeur Excel en entrée puis sortie
    Par mediateur59 dans le forum Documents
    Réponses: 10
    Dernier message: 16/11/2006, 10h25
  5. [VBA]activer les feuilles d'un classeur Excel
    Par jemigo dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/01/2006, 18h58

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