Lien Hypertexte

Bonjour Le Forum !!

j'ai une suite de lien hypertexte en colonne A et de la ligne 3 à XXXXX

Je Filtre pour ressortir que celle dont j'ai besoins. [Jusqu'ici tout va bien]

Mais là je souhaite ouvrir le premier lien hypertexte qui est visible puis j'ai un petit code avec SendKey pour piloter l'application.

Ensuite ouvrir l'autre lien hypertexte visible puis encore le code avec Sendkey etc etc

Jusqu’à la dernière ligne affiché.

Je n'arrive pas à ouvrir le lien hypertexte autre qu'avec la souris...

Et je ne sais pas comment faire pour passer d'une ligne visible filtré à l'autre.

Feuil2.Range("A1").Select
SendKeys "{DOWN}"

De cette manière j'arrive sur ma première ligne visible mais là ouvrir le lien hypertexte je bug

Bonjour

Feuil2.Range("A1").Select
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True 

Ca ne fonctionne pas malheureusement.. ^^ j'avais test cette méthode.

Par contre je viens de trouver une méthode:

Sub SimulateMouseClickonHyperlink()
ActiveCell.Hyperlinks(1).Follow
End Sub 

et dans macro je le pilote via Ctr+Y

Ce qui fait qu'avec SendKeys j'arrive à ouvrir mes liens hypertexte sans la souris.

Sub ConvertirPDF()
Feuil2.Range("A1").Select
SendKeys "{DOWN}"
SendKeys "^(y)"
SendKeys "{LEFT}{ENTER}"
Application.Wait Now + TimeValue("0:00:01")
SendKeys "{LEFT}{ENTER}"
End Sub

Ça fonctionne très bien !

Le lien hypertexte s'ouvre.

Maintenant après ce code je souhaite piloter mon application.

Sub ConvertirPDF()
Feuil2.Range("A1").Select
SendKeys "{DOWN}"
SendKeys "^(y)"
SendKeys "{LEFT}{ENTER}"
Application.Wait Now + TimeValue("0:00:01")
SendKeys "{LEFT}{ENTER}"
PDF
End Sub

Function PDF()
'Piloter PDF
    AppActivate "ST10"
    Application.SendKeys "+{g}"
    Application.Wait Now + TimeValue("0:00:01")
    Application.SendKeys "{TAB 14}{DOWN}"
    Application.SendKeys "^{c}"
    Application.SendKeys "{TAB 9}{ENTER}"
    Application.Wait Now + TimeValue("0:00:01")
    Application.SendKeys "{F6}{RIGHT}{-}"
    Application.Wait Now + TimeValue("0:00:01")
    Application.SendKeys "^{v}"
    Application.SendKeys "{TAB}"
    Application.SendKeys "{DOWN 3}"
    Application.SendKeys "~"
    Application.SendKeys "~"
    Application.SendKeys "{NUMLOCK}"
End Function

Problème les deux codes à part piloter par un bouton différent fonctionne très bien mais réuni comme là ça ne fonctionne plus.

Il n’exécute plus les sendkeys d'excel. Ne m'ouvre donc plus mon lien hypertexte..

Et je ne sais pas comment faire pour passer d'une ligne visible filtré à l'autre.

Pour ce soucis;

J'ai test ce code :

Sub ConvertirPDF()
Dim numéro As Integer
numéro = 3

While Cells(numéro, 1) <> ""
Cells(numéro, 1).Select
SendKeys "^(y)"
SendKeys "{LEFT}{ENTER}"
Application.Wait Now + TimeValue("0:00:01")
SendKeys "{LEFT}{ENTER}"
numéro = numéro + 1
Wend
End Sub

Mais j'ai l'impression qu'il passe sur chaque ligne même celle qui son non visible

EDIT: J'ai réussi ou presque dès qu'il m'ouvre le premier lien hypertexte il ne continue pas la boucle...

Sub ConvertirPDF()
For I = 3 To 200
    If Rows(I).Hidden = False Then
        AppActivate "Excel"
        Cells(I, 1).Select
        SendKeys "^(y)"
        SendKeys "{LEFT}{ENTER}"
        Application.Wait Now + TimeValue("0:00:01")
        SendKeys "{LEFT}{ENTER}"
        I = I + 1
    End If
Next
End Sub

Maintenant si quelqu'un a une idée pour intégrer ma Function sans faire bugué mon code avant je suis preneur

Ca passe sur chaque ligne avec ce code:

Sub ConvertirPDF()
For I = 2 To 200
       AppActivate "Excel"
    If Rows(I).Hidden = False Then
        Cells(I, 1).Select
        SendKeys "^(y)"
        SendKeys "{LEFT}{ENTER}"
        Application.Wait Now + TimeValue("0:00:01")
        SendKeys "{LEFT}{ENTER}"
        SendKeys "{NUMLOCK}"
    End If
Next
End Sub

Problème il m'ouvre que le dernier lien hypertexte et pas ceux d'avant... Qui pourtant sont visible je sèche

Bonjour le Forum,

Vous n'avez aucune solution..?

Bonjour,

as-tu un petit fichier avec juste ce qu'il faut (pour pas que l'on se noie !!)

Voilà le fichier

Ca passe sur chaque ligne avec ce code:

Sub ConvertirPDF()
For I = 2 To 200
       AppActivate "Excel"
    If Rows(I).Hidden = False Then
        Cells(I, 1).Select
        SendKeys "^(y)"
        SendKeys "{LEFT}{ENTER}"
        Application.Wait Now + TimeValue("0:00:01")
        SendKeys "{LEFT}{ENTER}"
        SendKeys "{NUMLOCK}"
    End If
Next
End Sub

Problème il m'ouvre que le dernier lien hypertexte et pas ceux d'avant... Qui pourtant sont visible je sèche

Ce code est relatif à quel type de fichier ?

Dans le fichier que j'ai mis c'est ce code là je veux qu'il s'applique à Excel et que la function PDF s'applique à ST10:

Sub OpenHyperLien()
For I = 3 To 200
       AppActivate "Excel"
    If Rows(I).Hidden = False Then
        Cells(I, 1).Select
        SendKeys "^(y)"
        SendKeys "{LEFT}{ENTER}"
        Application.Wait Now + TimeValue("0:00:01")
        SendKeys "{LEFT}{ENTER}"
        SendKeys "{NUMLOCK}"
        'PDF
    End If
Next
End Sub

relié à celui-ci :

Function PDF()
'Piloter PDF
    AppActivate "ST10"
    Application.SendKeys "+{g}"
    Application.Wait Now + TimeValue("0:00:01")
    Application.SendKeys "{TAB 14}{DOWN}"
    Application.SendKeys "^{c}"
    Application.SendKeys "{TAB 9}{ENTER}"
    Application.Wait Now + TimeValue("0:00:01")
    Application.SendKeys "{F6}{RIGHT}{-}"
    Application.Wait Now + TimeValue("0:00:01")
    Application.SendKeys "^{v}"
    Application.SendKeys "{TAB}"
    Application.SendKeys "{DOWN 3}"
    Application.SendKeys "~"
    Application.SendKeys "~"
    Application.SendKeys "{NUMLOCK}"
End Function

mais ça ne fonctionne pas correctement dès que je met pas " ' " devant PDF dans mon premier code il m'ouvre pas le lien hypertexte...

Et si je le met en commentaire le code passe bien sur mes deux lignes .dft mais ne m'ouvre qu'une seule xD

Je ne comprend vraiment pas

je suis perplexe

je regarde ce soir

Sur le fait que ce soit réalisable ..?

De excel faudrait ouvrir le lien hypertexte, ensuite sur cette nouvelle application qui s'ouvre exécuter les touches souhaitait puis revenir sur excel pour ouvrir le deuxième lien puis exécuter les touche souhaitait puis etc.. puis etc.. et là je suis aux anges

Dans

        SendKeys "{LEFT}{ENTER}"
        Application.Wait Now + TimeValue("0:00:01")
        SendKeys "{LEFT}{ENTER}"

ok pour le premier "{LEFT}{ENTER}", mais quid du second ? pour moi il ne fait que déplacer le curseur sur la cellule de gauche et faire enter !

Pour simuler ... c'est quoi

AppActivate "ST10"

?

Je comprends que tu proposes de zapper PDF et ouvrir ne boucle tous les sous-fichiers excel ...

J'arrive à ouvrir plusieurs fichiers excel en ajoutant un DoEvents() comme ici, et un retour sur le dossier principal mywkb.Activate comme ici :

Sub OpenHyperLien()
Dim mywkb As Workbook
Set mywkb = ThisWorkbook
For I = 4 To Cells(Rows.Count, 1).End(xlUp).Row
    If Rows(I).Hidden = False Then
        Cells(I, 1).Select
        Application.Wait Now + TimeValue("0:00:01")
        SendKeys "^(y)"
        SendKeys "{LEFT}{ENTER}"
        dummy = DoEvents()
        'PDF
        mywkb.Activate
    End If
Next
End Sub
capture d ecran 166

Attention, je n'ai pas encore forcément le focus, il faudrait dans ce cas rajouter un AppActivate ce que tu as fait dans PDF.

Dans

        SendKeys "{LEFT}{ENTER}"
        Application.Wait Now + TimeValue("0:00:01")
        SendKeys "{LEFT}{ENTER}"

ok pour le premier "{LEFT}{ENTER}", mais quid du second ? pour moi il ne fait que déplacer le curseur sur la cellule de gauche et faire enter !

Effectivement je me suis trompé, je crois que le second "{LEFT}{ENTER}" c'est dans application ST10.

Pour simuler ... c'est quoi

AppActivate "ST10"

?

Je comprends que tu proposes de zapper PDF et ouvrir ne boucle tous les sous-fichiers excel ...

AppActivate "ST10" c'est solidedge

Je ne souhaite pas zappé PDF. Mon bonheur serai après une ouverture d'un lien il exécute PDF puis revient sur AppActivate "Excel" continue la boucle ouvre le deuxième lien exécute PDF

Déjà, on a pu ouvrir x fichiers et pas seulement le dernier.

As-tu essayé de remettre la fonction PDF en place ? je n'ai pas solidedge je ne peux donc pas tester.

Néanmoins je vais me faire un jeu d'essai avec autre chose.

Je ne suis pas chez moi je ne peu donc pas test avant lundi mais je te dirais ça! 😁

Bonjour,

Je pense que pour piloter l'application, il faut la lancer/l'activer !

on revient ici : https://forum.excel-pratique.com/viewtopic.php?p=801557#p801557

mais comme tu est en 64bits, il faut d'abord revoir les fondamentaux !

Donc essaie cette version qui devrait par la suite nous permettre d'activer la bonne "fenêtre" et lui balancer les sendkeys.

Teste ta version.

Lance la recherche de fenêtres.

Lancer une appli ...

à partir de là, on pourra revoir ton code ! et lancer avec shell aussi qui est sans doute la voie à suivre et non le sivi du lien hypertexte.

Bonjour Steelson,

J'arrive à ouvrir plusieurs fichiers excel en ajoutant un DoEvents() comme ici, et un retour sur le dossier principal mywkb.Activate comme ici :

Sub OpenHyperLien()
Dim mywkb As Workbook
Set mywkb = ThisWorkbook
For I = 4 To Cells(Rows.Count, 1).End(xlUp).Row
    If Rows(I).Hidden = False Then
        Cells(I, 1).Select
        Application.Wait Now + TimeValue("0:00:01")
        SendKeys "^(y)"
        SendKeys "{LEFT}{ENTER}"
        dummy = DoEvents()
        'PDF
        mywkb.Activate
    End If
Next
End Sub

Attention, je n'ai pas encore forcément le focus, il faudrait dans ce cas rajouter un AppActivate ce que tu as fait dans PDF.

J'ai testé ton code en ajoutant comem tu m'a dit de faire attention AppActivate "Excel"

Sub OpenHyperLien()
Dim mywkb As Workbook
Set mywkb = ThisWorkbook
For I = 4 To Cells(Rows.Count, 1).End(xlUp).Row
    If Rows(I).Hidden = False Then
        Cells(I, 1).Select
        Application.Wait Now + TimeValue("0:00:01")
        SendKeys "^(y)"
        SendKeys "{LEFT}{ENTER}"
        dummy = DoEvents()
        PDF
        AppActivate "Excel"
        mywkb.Activate
    End If
Next
End Sub

C'est Parfait, il m'ouvre bien mes liens !!! Première Victoire !!

Après lorsque j'essai d'activer SolidEdge avec ma Function PDF

J'ai le bon nom AppActivate "Solid Edge ST10" c'est sûr !

Mais il me lance pas la Function...

Après quantité d'essais et heures au carré, et surtout un nuit qui porte conseil ! J'ai peut-être une solution !

Le problème avec sendkeys, c'est le problème des fenêtres et de microsoft ! Sendkeys va "balancer" des codes correspondant aux touches du clavier et "une" application doit les recevoir "à la volée", mais tout doit être coordonné. Dans certains essais, seule la dernière appli ouverte recevait les "keys", dans d'autres essais c'est le classeur lui-même qui les recevait en boomerang.

Ma conclusion est qu'il faut donc séparer les tâches, d'abord ouvrir autant de fenêtres que d'appli, et ensuite les prendre une par une et leur envoyer les keys.

J'ai 2 questions :

Rechercher des sujets similaires à "lien hypertexte"