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 :

Ouvrir autant d'onglet firefox que d'URL listé dans un tableau excel [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2010
    Messages : 61
    Points : 29
    Points
    29
    Par défaut Ouvrir autant d'onglet firefox que d'URL listé dans un tableau excel
    Bonjour
    j'ai les adresses url de differents instruments répertoriés dans un tableau.Je souhaite automatiser sur firefox l'ouverture d'autant d'onglet que de ligne présente dans ce tableau. Je pense qu'il faut passer par un offset(0,1) et boucler via un Do Until mais je reste bloqué a la ligne sendkeys "T".
    Jusqu'ici j'ai écrit cette macro qui ouvre firefox et pointe sur la premiere ligne de mon tableau, mais le focus vers l'url ne se fait pas, ainsi que l'ouverture vers un nouveau onglet ( ALT+D;CTRL+T).
    Donc dans l' exemple ci dessous ouvrir 3 onglets sous firefox

    Pouvez vous m'aider ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub ouvrir
    Dim, ret, app
    app=("c:\Program Files (x86)\Mozilla Firefox\firefox.exe
    ret =Shell (app,1)
    SendKeys "%{D}"
    SendKeys "^{T}",True
    End Sub
    Appareil 1 https:\nom du serveur\ID11111
    Appareil 2 https:\nom du serveur\ID55511
    Appareil 3 https:\nom du serveur\ID198511

  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, pour automatiser FireFox il te faudra passer par selenium-vba

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2010
    Messages : 61
    Points : 29
    Points
    29
    Par défaut
    Bonjour kiki 29
    J'aimerais eviter d'utiliser un plugin additionel .
    Je pensais plutot ame diriger vers quelque chose comme ceci, (qui ouvrirait d'abord firefox et apres un onglet de firefox par ligne)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Sub ouvrir
    Dim a As Range
    Dim, ret, app
    app=("c:\Program Files (x86)\Mozilla Firefox\firefox.exe")
    ret =Shell (app,1)
    For each a in range ("B2:B100").Cells
    a.Select
    SendKeys"{F2}", True
    SendKeys"{ENTER}, True
    SendKeys "%{D}"
    SendKeys "^{T}",True
    Next

  4. #4
    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, les sendkeys étant par essence instables, même si j'en ai fait usage, voir ici le travail remarquable de David ( sans senkeys via les APIs ).

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2010
    Messages : 61
    Points : 29
    Points
    29
    Par défaut
    tu verrais plutot un code comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub ouvrir
    Dim a As Range
    Dim, ret, app
    app=("c:\Program Files (x86)\Mozilla Firefox\firefox.exe")
    ret =Shell (app,1)
    For each a in range ("B1:B10").Cells
    Set fich=Workbooks.Open("https://nomduserveur")
    Next
    End Sub
    Désolé pour les erreurs de syntaxe mais j'essaie plusieurs méthodes et je suis débutant en vba.
    j'ai ce message d'erreur ( aucune connectivité avec le serveur . Impossible d'ouvrir le fichier https://nomduserveur .
    Je n'ai pas les moyens actuellement de tester ce code car je l'utiliserais sur un serveur d'entreprise Vs peut etre mardi ) .
    Suis je dans la bonne direction du code pour ouvrir autant d'onglet qu d'url listé dans un tableau excel ???

  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, bonjour !

    Pas besoin de Senkeys : voir les paramètres de ligne de commande ou les options de lancement de Firefox …
    Une commande unique pour ouvrir Firefox et les onglets mais faut-il encore que les URL soient valides !



    __________________________________________________________________________________________________
    Je suis Charlie - Je suis Bardo
    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 membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2010
    Messages : 61
    Points : 29
    Points
    29
    Par défaut
    tu veux parler d'un truc du genre.
    http://jpcheck.developpez.com/tutori...ge-parametres/


    Si j'adapte ma macro le focus vers l'URL valide ne marche pas il y a une erreur de syntaxe .
    La macro suivante ne fait qu'ouvrir firefox sur la page d'acceuil et que sur un seul onglet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub ouvrir
    Dim app
    app= Shell ("c:\Program Files (x86)\Mozilla Firefox\firefox.exe ")
    'Cette ligne  ne marche pas app=("c:\Program Files (x86)\Mozilla Firefox\firefox.exe "https://nomduserveurvalide.com/")
     
    End Sub
    Peux etre faut il rajouter des commutateurs entre "c:\Program Files (x86)\Mozilla Firefox\firefox.exe et "https://nomduserveurvalide.com/" a la place d'un espace.

  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

    Juste en consultant la documentation des paramètres de Firefox, pas de commutateur …
    Déjà tester manuellement dans Firefox chaque " URL " afin de vérifier si elle est correcte.

    Ensuite la ligne de code fonctionnera une fois corrigée avec les guillemets bien placés comme indiqué dans la doc !
    La tester déjà dans Exécuter via la combinaison de touches Windows R, exemple :

    "c:\Program Files (x86)\Mozilla Firefox\firefox.exe" "http://www.developpez.net/forums/"

    En VBA, comme indiqué dans les tutoriels et les discussions de ce forum, les guillemets servant à délimiter
    une chaîne de caractères, si un guillemet doit apparaître dans la chaine soit le doubler soit utiliser Chr(34)

    Et comme indiqué dans la doc - suffit d'effectuer une recherche et de la lire ! - plusieurs URL peuvent se suivre dans la ligne de commande.
    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 membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2010
    Messages : 61
    Points : 29
    Points
    29
    Par défaut
    Effectivement la macro ci dessous marche mieux et ouvre autant d'onglet que d'url valide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub ouvrir
    Dim app
    app= Shell ("c:\Program Files (x86)\Mozilla Firefox\firefox.exe https://nomduserveurvalide.com/ https://nomduserveurvalide.com/ https://nomduserveurvalide.com/ https://nomduserveurvalide.com/ ")
    End Sub
    L'objectif initial était de parcourir toutes les lignes de la colonne B jusqu'a la fin du tableau pour ouvrir autant d'onglets sous firefox que de ligne ( dans mon tableau , il y a une URL par ligne ).Je pense que juste aprés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    app= Shell ("c:\Program Files (x86)\Mozilla Firefox\firefox.exe
    je dois indiquer une variable qui concatenerais toutes les lignes.
    C'est tout bète mais je suis bloqué.

    Colonne A Colonne B
    Appareil 1 https:\nom du serveur\ID11111
    Appareil 2 https:\nom du serveur\ID55511
    Appareil 3 https:\nom du serveur\ID198511

  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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Demo()
        Shell "c:\Program Files (x86)\Mozilla Firefox\firefox.exe " & _
              Join(Application.Transpose(Feuil1.[B1:B3].Value))
    End Sub
    __________________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …
    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 membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2010
    Messages : 61
    Points : 29
    Points
    29
    Par défaut
    Cette macro a marché une seule fois avec des liens valides. Elle a ouvert autant d'onglets que de lignes.Actuellement j'ai une erreur d'execution 53 et fichier introuvable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sub Demo()
        Shell "c:\Program Files (x86)\Mozilla Firefox\firefox.exe "         Join(Application.Transpose(Feuil1.[B2:B100].Value))
    End Sub
    De plus les lignes de mon tableau sont variables je pensais rajouter un bloc comme ceci pour parcourir toutes les lignes de mon tableau jusqu’à la dernière ligne .Qu'en pensez vous?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Range("B2").Select 
    [B2].Select 
    Range("B2").Offset(1,0).select 
    Activecell.Offset(0,1).select
    Range("B2").End(xlDown).Select
    Peux tu m'expliquer ce que Join(Application.Transpose(Feuil1.[B1:B3].Value)) veux dire ?
    Join renvoie bien une chaine crée par la jonction de sous chaine contenue dans un tableau mais que veux dire Application.Transpose ........?

    Merci encore pour l'interet porté a ce sujet

  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


    Ce code fonctionne depuis des années de mon côté avec différentes versions d'Excel
    mais Shell doit être limité en nombre de caractères …

    Qui plus est ouvrir une palanquée d'onglets n'a pas d'intérêt sauf à gâcher des ressources et à planter Windows !

    Le code a fonctionné avant d'être modifié : ce n'est donc plus le mien, à recopier de nouveau tel quel …

    Application.Transpose correspond à la fonction de feuille de calculs du même nom.

    Sinon je pense qu'un bon code n'a pas besoin de Select … Combien d'URL ?
    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 membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2010
    Messages : 61
    Points : 29
    Points
    29
    Par défaut
    Comme tu dis il doit y avoir un probleme de ressource il y a environ de 35 a 50 URL a ouvrir. Correspondant a la fiche de 35 fiche d'identité d'instruments .

  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




    Il y a déjà un problème de code modifié ! Recopier mon code puis juste y modifier le numéro de la dernière ligne … ex B3 → B40

    Cela se passe-t-il sans encombre ? Sans compter que cela va bien ramer …
    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 membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2010
    Messages : 61
    Points : 29
    Points
    29
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Demo()
        Shell "c:\Program Files (x86)\Mozilla Firefox\firefox.exe " & Join(Application.Transpose(Feuil1.[B2:B40].Value))
    End Sub
    en colonne B les URL sont activées et j'ai rebooté le PC ( si pb de ressources ) .

    me renvoie l'erreur d'execution 53 fichier introuvable

  16. #16
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut heu
    Bonjour
    quel est l'intérêt d'ouvrir 50 pages????
    que veut tu faire avec ces pages?????

    la dans cet acabit ca sent le plantage Windows un joli bluescreen en perspective
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  17. #17
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2010
    Messages : 61
    Points : 29
    Points
    29
    Par défaut
    en fait chaque de ces URL possède un identifiant unique qui pointe vers la fiche d'identité d'un instrument. le logiciel centralise environs plusieur milliers d'instruments.L'url est du genre https://nomdulogiciel.com/instruments/ID=15896

  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



    Le code fonctionnant de mon côté depuis des années mais comme dans le post #7 …
    Firefox s'ouvre-t-il seul via le Shell sans URL ? Après il faut essayer en ajoutant une URL à la fois pour trouver la fautive …

    A quoi cela peut-il bien servir d'ouvrir une cinquante d'URL en même temps ?!
    Mieux vaut en ouvrir à la demande via un double-clic ou un lien hypertexte, non ?
    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
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Citation Envoyé par tepuy Voir le message
    en fait chaque de ces URL possède un identifiant unique qui pointe vers la fiche d'identité d'un instrument. le logiciel centralise environs plusieur milliers d'instruments.L'url est du genre https://nomdulogiciel.com/instruments/ID=15896
    d'accord et que veut tu faire avec ces fiches d'identité produit?
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  20. #20
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2010
    Messages : 61
    Points : 29
    Points
    29
    Par défaut
    @Marc-L
    Oui elle s'ouvre via Windows R en ouvrant la page d'acceuil courante de firefox et une url .
    LE tout est limité a 2 ou 3 onglets ( sans doute une limitation de caractères dans la barre d'adresse d'executer

    Le but est d'éviter l'affichage stroboscopique et ainsi améliorer la navigation quand je fais proportionnelement au nombre de ligne la séquence CTRL+C ( copie le lien URL située dans mon tableau excel);CTRL+T ( Ouvre un nouvel onglet firefox);CTRL+V+ENTREE( Copie et ouvre l'url prélablement copié)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Demo()
        Shell "c:\Program Files (x86)\Mozilla Firefox\firefox.exe " & _
              Join(Application.Transpose(Feuil1.[A1:A3].Value))
    End Sub
    toujours cette erreur d'execution 53 fichier introuvable meme en restreignant la plage a 3 url

    @patricktoulon
    Chaque fiche d'identité produit recelle l'historique de la vie de ce produit . l'objectif premier est de pouvoir d'abord pouvoir les consulter .Bien sur en améliorant la navigation.

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

Discussions similaires

  1. parser un fichier et recuperer des valeurs que l'on stocke dans un tableau
    Par they_are_numbers dans le forum Général Python
    Réponses: 22
    Dernier message: 04/04/2014, 18h04
  2. [Débutant]Autant d'onglet que demander
    Par Caxton dans le forum Débuter
    Réponses: 0
    Dernier message: 12/11/2010, 17h16
  3. Réponses: 4
    Dernier message: 16/02/2010, 11h18
  4. Réponses: 4
    Dernier message: 03/03/2008, 15h44

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