Automatiser un clic sur "OK" d'un message d'erreur ou sur un Bouton d'USF

YANN-56

XLDnaute Barbatruc
Bonjour à ceux qui passeront pat ici,

Dans l'exemple joint:

Je vérifie si l'utilisateur est bien connecté à Internet en créant une requête Web.
S'il ne l'est pas; il y a le message d'erreur: "Impossible.......... Serveur ou Proxy introuvable" ... (Normal!)

Ma recherche est de me passer de ce message d'Excel,
ou de simuler un clic de souris sur son bouton "OK" pour le faire disparaître automatiquement.

Si indispensable: De le faire sur le bouton "VERIFICATION" de l'USF.
(Le mieux serait d'avoir directement la bonne Caption dans le Label1, et de provoquer un évènement)

J'ai fouillé longtemps du coté de " Application.SendKeys("ENTER") et c. mais échec total!!! :mad:

Si quelqu'un peu m'aiguiller: Merci d'avance.

Yann

P.S.: Cette nouvelle discussion fait un peu suite à celle-ci:
https://www.excel-downloads.com/thr...rnet-si-la-connexion-nest-pas-etablie.161226/
mais la solution trouvée par ma pomme ne me satisfait pas !!!...D'où cette nouvelle formulation.
 

Pièces jointes

  • VERIF.xls
    31 KB · Affichages: 55
  • VERIF.xls
    31 KB · Affichages: 59
  • VERIF.xls
    31 KB · Affichages: 60

Etienne2323

XLDnaute Impliqué
Re : Automatiser un clic sur "OK" d'un message d'erreur ou sur un Bouton d'USF

Salut Yann, le forum,
voici une autre piste de solution. Pourquoi ne pas vérifier avant de faire la requête si l'utilisateur possède un accès à Internet ?

Voici une solution :

Tu n'as qu'à lancer la macro "IsConnection". Tu pourrais également remplacer la ligne avec le msgbox ;)

J'avais trouvé ce code il y a quelques temps sur le net. Je ne trouve plus l'auteur mais néanmoins, une petite pensée pour lui !

Edit : Voici le lien vers la page de l'auteur : VBA Express : Multiple Apps - Check, if a RAS/Internet connection exists

VB:
Option Explicit

Private Const NETWORK_ALIVE_LAN = &H1 'net card connection
Private Const NETWORK_ALIVE_WAN = &H2 'RAS connection
Private Const NETWORK_ALIVE_AOL = &H4 'AOL
 
Private Declare Function IsNetworkAlive Lib "Sensapi" _
(lpdwFlags As Long) As Long
 
Private Function IsNetConnectionAlive() As Boolean
    Dim lngAlive As Long
    IsNetConnectionAlive = IsNetworkAlive(lngAlive) = 1
End Function
 
Private Function IsNetConnectionLAN() As Boolean
    Dim lngLAN As Long
    If IsNetworkAlive(lngLAN) = 1 Then
        IsNetConnectionLAN = lngLAN = NETWORK_ALIVE_LAN
    End If
End Function
 
Private Function IsNetConnectionRAS() As Boolean
    Dim lngRAS As Long
    If IsNetworkAlive(lngRAS) = 1 Then
        IsNetConnectionRAS = lngRAS = NETWORK_ALIVE_WAN
    End If
End Function
 
Private Function IsNetConnectionAOL() As Boolean
    Dim lngAOL As Long
    If IsNetworkAlive(tmp) = 1 Then
        IsNetConnectionAOL = lngAOL = NETWORK_ALIVE_AOL
    End If
End Function
 
Private Function GetNetConnectionType() As String
    Dim lngAlive As Long
    If IsNetworkAlive(lngAlive) = 1 Then
        Select Case lngAlive
Case NETWORK_ALIVE_LAN:
            GetNetConnectionType = _
            "Oui"
Case NETWORK_ALIVE_WAN:
            GetNetConnectionType = _
            "Oui"
Case NETWORK_ALIVE_AOL:
            GetNetConnectionType = _
            "Oui"
Case Else:
        End Select
    Else
        GetNetConnectionType = _
        "Non"
    End If
End Function
 
Sub IsConnection()
    Dim Internet As String
    Internet = GetNetConnectionType
    If Internet = "Non" Then
        MsgBox "Pas d'internet Yann", vbOKOnly, "Pas de connection Internet" 'Tu n'auras qu'à remplacer cette ligne de colde
    End If
End Sub

Cordialement,

Étienne
 
Dernière édition:

YANN-56

XLDnaute Barbatruc
Re : Automatiser un clic sur "OK" d'un message d'erreur ou sur un Bouton d'USF

Bonjour Etienne,

Merci beaucoup pour avoir regardé et pris la peine de me répondre.

La vérification de la connexion par le biais que tu proposes; je l'ai déjà utilisée.

Voir, ci-dessous, le Classeur que j'avais joint dans le fil dont je fais référence.

Cela fonctionne bien chez moi; mais pas en réseau dans une certaine entreprise.
Il est vrai que mon code est résumé à un seul cas, et que j'ai évidemment une réponse erronée!

Je m'applique donc à me cantonner au résultat final, puisque de toute évidence;
si la connexion n'est pas effective ma page ne se remplira pas...
Il reste seulement à le constater. Ce pourquoi je regarde ce qu'il y a en ligne 2.

J'ai pensé plus simple de procéder ainsi puisque l'on a plus rien à fiche du mode d'accès.

Dans mon appli, un bouton du genre "Envoyer par Mail", "Préciser un lieu" ou autres deviendraient alors actifs ou inactifs,
suite au résultat du test avec "maps.google"

Au final, je cherche à éviter deux clics inutiles, ainsi que j'ai tenté de l'expliquer.
(Je dois reconnaître que j'ai du mal à bien le faire)

En tous les cas, c'est bien sympa de ta part... Merci encore.

Yann
 

Pièces jointes

  • ECHEC_MAPS.xls
    34 KB · Affichages: 42
  • ECHEC_MAPS.xls
    34 KB · Affichages: 50
  • ECHEC_MAPS.xls
    34 KB · Affichages: 47
Dernière édition:

Etienne2323

XLDnaute Impliqué
Re : Automatiser un clic sur "OK" d'un message d'erreur ou sur un Bouton d'USF

Salut Yann, le forum,
dans ce cas, pourquoi ne pas simplement instaurer une gestion d'erreur ? Par exemple :
VB:
Option Explicit
Sub RECHERCHE_MAP()
Dim Depart, Arrivee
Depart = "56690 NOSTANG": Arrivee = "56000 VANNES"

Worksheets("Feuil1").Activate
'================================= ETABLISSEMENT D'UNE REQUETE SUR LE WEB =======================
With ActiveSheet.QueryTables.Add(Connection:="URL;http://maps.google.fr/maps?f=d&saddr=" _
& Depart & "&daddr=" & Arrivee, DESTINATION:=ActiveSheet.Range("A1"))
  
     .Name = "itinéraire"
     .BackgroundQuery = False
     .WebSelectionType = xlEntirePage
     .WebFormatting = xlWebFormattingNone
     On Error GoTo Erreur_Connection
     .Refresh BackgroundQuery:=False
 End With
On Error Goto 0
Exit Sub

Erreur_Connection:
'L'action si on n'a pas de connection Internet ??
On Error Goto 0
End Sub

Ça semble fonctionner chez moi !

Cordialement,

Étienne
 

YANN-56

XLDnaute Barbatruc
Re : Automatiser un clic sur "OK" d'un message d'erreur ou sur un Bouton d'USF

Re Etienne, :)

Si tu savais combien de fois j'ai tenté cette gestion d'erreur!!!!!

Mais mal dite, mal placée............
Enfin à la hauteur de ce que je ne sais pas correctement faire. :eek:

Si cela fonctionne chez toi, je ne doute qu'il en sera de même partout.

Je vais en faire le test.... Le temps de réécrire,
et entre deux coupures intempestives de mon ADSL.

Just' à un peu plus tard.

Yann
 

YANN-56

XLDnaute Barbatruc
Re : Automatiser un clic sur "OK" d'un message d'erreur ou sur un Bouton d'USF

Re Etienne,

J'ai copié textuellement ton code, et j'ai un plantage total d'Excel. :confused:
(Ctrl+Alt+Suppr obligatoire!)

C'est un peu ce genre de plaisir que j'ai eu dans mes essais en cherchant de ce coté.

A te lire, quand tu le voudras et le pourras.

Merci encore pour ton aide.

Yann
 

Etienne2323

XLDnaute Impliqué
Re : Automatiser un clic sur "OK" d'un message d'erreur ou sur un Bouton d'USF

Salut Yann,
voici donc un nouvel essai. J'aurais aimé entendre que la simple gestion d'erreur aurait pu faire le travail mais bon :(
Il faut que tu actives la référence "Microsoft XML, v6.0

VB:
Option Explicit

Function Verifier_Connexion() As Integer
Dim x As ServerXMLHTTP
Dim strT As String

'************************************************************************************************************
'Tu dois activer la référence Miscrosoft XML, v6.0
'************************************************************************************************************

On Error Resume Next
Verifier_Connexion = False
Set x = New ServerXMLHTTP
 x.Open "GET", "http://www.google.com"
 x.setRequestHeader "Accept", "application/xml"
 x.setRequestHeader "Content-Type", "application/xml"
 x.Send strT
 
 'Ici, en fonction de l'erreur, on va pouvoir déterminer s'il y a connexion ou pas.
 If Err = 0 Then
    Verifier_Connexion = True
 Else
    MsgBox "Pas de connexion Yann", vbOKOnly, "Erreur de connexion"
 End If

On Error GoTo 0

End Function
Sub test()
    Verifier_Connexion
End Sub

À te relire,

Cordialement,

Étienne
 

Pierrot93

XLDnaute Barbatruc
Re : Automatiser un clic sur "OK" d'un message d'erreur ou sur un Bouton d'USF

Re Yann, bonsoir Etienne

allez 2 pistes, tout d'abord un lien vers une page du WIKI de MichelXLD:)
https://www.excel-downloads.com/threads/ouvrir-page-html-avec-excel.42226/

2ème piste, peut être en modifiant comme suit, mais pas sûr du tout :
Code:
Sub REQUETE()
Dim qt As QueryTable
Worksheets("RECUP").Activate
Set qt = ActiveSheet.QueryTables.Add(Connection:="URL;http://google.fr", Destination:=ActiveSheet.Range("A1"))
With qt
    .Name = "www.google.fr"
    .BackgroundQuery = False
    .WebSelectionType = xlEntirePage
    .WebFormatting = xlWebFormattingNone
    .Refresh BackgroundQuery:=True
    Do
        DoEvents
    Loop While qt.Refreshing = True
End With
UserForm1.CommandButton1.Visible = False
UserForm1.CommandButton2.Visible = True
End Sub

pas d'autre idée... mais il y avait un post relativement récent qui a fait couler beaucoup d'encre à ce sujet... peut être cette question y est traitée... A voir...

bonne soirée à toi et bon courage pour la suite....
@+
 

YANN-56

XLDnaute Barbatruc
Re : Automatiser un clic sur "OK" d'un message d'erreur ou sur un Bouton d'USF

Bonsoir à vous deux, et à ceux qui passeront par ici,

pas d'autre idée... mais il y avait un post relativement récent qui a fait couler beaucoup d'encre à ce sujet... peut être cette question y est traitée... A voir...
Pierrot; dommage que tu n'aies pas gardé en mémoire ce Fil dont tu parles.
En tous les cas je suis bien heureux de te savoir là. :)

Étienne; bravo pour ta patience, et je suis conscient du temps que tu as investi.:)
C'est bigrement dans le bon esprit de XLD,

Pierrot; le
Code:
    Do
    DoEvents
    Loop While qt.Refreshing = True
Me plait bien, et me laisse entendre une solution à ce que je recherchais,
car toujours, pour l'instant mes "Pompages" de la Feuille étaient trop prématurés.

Etienne; je n'aime pas trop venir ajouter des Références,
car elles sont souvent l'objet de soucis suivant la config de l'utilisateur.
Cependant, si cette option s'avère incontournable, je l'utiliserai.

Je vais continuer mes tests, heureux d'avoir deux super mecs sympas à mes cotés.
De plus, dans vos réponses, il y a un parfum de modestie qui n'a d'égal que votre talent.

Grand Merci à vous, j'y retourne et vous tiens au courant.

Yann
 

YANN-56

XLDnaute Barbatruc
Re : Automatiser un clic sur "OK" d'un message d'erreur ou sur un Bouton d'USF

Bonsoir Pierrot, et à tous.

Que "Oui"; je connais.... Il en va pour preuve:
https://www.excel-downloads.com/thr...nce-entre-deux-villes-via-google-maps.106712/
Et mon dernier post: le 274.

Je reviens de temps en temps sur cette appli, et il en découle de mes dernières questions.
Quant à la précision d'une adresse; c'est résolu et fonctionne bien.

Si quelqu'un est intéressé par l'évolution de ma bidouille, je suis disposé à partager.

Comme je n'ai pas eu de réaction; je me suis tu.

Pépé va faire Dodo; il est crevé.

A demain, car au saut du lit, je vais appliquer vos suggestions.

Yann
 

MJ13

XLDnaute Barbatruc
Re : Automatiser un clic sur "OK" d'un message d'erreur ou sur un Bouton d'USF

Bonjour à tous

Pas tout suvi, mais si j'avais ce problème, je testerai ainsi (j'ai pris exemple sur le premier fichier).

Code:
Sub REQUETE()
On Error GoTo suite
Worksheets("RECUP").Activate
With ActiveSheet.QueryTables.Add(Connection:="URL;http://google .fr", Destination:=ActiveSheet.Range("A1"))
        
         .Name = "[URL="http://www.google.fr"]www.google.fr[/URL]"
         .BackgroundQuery = False
         .WebSelectionType = xlEntirePage
         .WebFormatting = xlWebFormattingNone
         .Refresh BackgroundQuery:=True
       
                   Application.Wait Now + TimeValue("0:00:3")
                   
End With
UserForm1.CommandButton1.Visible = False
UserForm1.CommandButton2.Visible = True
suite:
MsgBox ("problème de connexion ou de mauvaise définition de l'URL")
UserForm1.Hide
UserForm1.Show
End Sub
 

YANN-56

XLDnaute Barbatruc
Re : Automatiser un clic sur "OK" d'un message d'erreur ou sur un Bouton d'USF

Bonjour Etienne, Pierrot, Michel , et à ceux qui passeront par ici,

Michel;

J'ai systématiquement la ligne en Rouge ici:

Code:
.Name = "[URL="http://www.google.fr"]www.google.fr[/URL]"

et si je remplace par:

Code:
.Name = www.google.fr

J'ai le MsgBox ("problème…….") Bien que ma connexion soit effective.

Peut-être il y a-t-il une erreur de syntaxe quelque part?

Merci beaucoup pour ton intervention.

Amicalement

Yann

P.S. Il ne faut prendre en compte que le premier exemple: "VERIF",
car le deuxième "ECHEC_MAPS" n'était là que pour la petite histoire.

Je vais tout reprendre en deuxième moitié d'après-midi.
 

YANN-56

XLDnaute Barbatruc
Re : Automatiser un clic sur "OK" d'un message d'erreur ou sur un Bouton d'USF

Bonsoir Etienne, Pierrot, Michel , et à ceux qui passeront par ici,

J'ai passé un temps inavouable à tester tous les codes... En vain.
Chez moi ils ne fonctionnent pas!

Je suis donc revenu sur la proposition d'Etienne, et dans ma config., cela fonctionne bien.

Etant particulièrement friand de simplicité, je suis bien heureux de n'avoir plus à me farcir
le message d'erreur automatique: "Impossible.......... Serveur ou Proxy introuvable", et de
pouvoir gérer facilement les évènements souhaités par suite d'échec ou non.

Je vais donc transmettre pour tests dans l'entreprise où l'appli initiale à planté après
modification du réseau.

S'l y a souci, je déposerai un nouveau Post pour info, et seulement pour cela.

Grand Merci à vous tous, avec une p'tite touche de plus pour Etienne (Of course!)

Outre la satisfaction d'avoir avancé, j'ai eu le plaisir de vous croiser.

Amicalement, et plein de bonnes choses à vous.

Yann

P.J. Le Classeur qui en résulte.
 

Pièces jointes

  • VERIF_FAITE.xls
    25.5 KB · Affichages: 45

Statistiques des forums

Discussions
312 203
Messages
2 086 196
Membres
103 153
dernier inscrit
SamirN