OVH Cloud OVH Cloud

Lien avec internet

32 réponses
Avatar
Guy85
Bonjour,
Comment ouvrir ce lien :
http://www.mediadico.com/dictionnaire/lecture.asp/definition/FANION/parle
avec un mot choisi ? comme dans l'exemple "FANION".
J'ai vus cette exemple dans un jeu de gd "Motus".

Sub Definition()
ShellExecute 0, vbNullString,
"http://www.mediadico.com/dictionnaire/lecture.asp/definition/" & [Mot0] &
"/parle", vbNullString, "C:\", 6
End Sub

Mais j'ai (ShellExecute 0) qui me pose problème.

Merci de votre aide
Cordialement
Guy

10 réponses

1 2 3 4
Avatar
Guy85
Dans un message, tu me dis d'enlever le mot "Private" dans le module
standard.
Et là, il faut que j'insère l'API.
J'avoue que je cherche pourtant, je suis dessus depuis ce matin.
Comme je n'y connais rien en VBA.
l'API quoi est-ce ?

"michdenis" a écrit dans le message de news:
%
Un petit effort quand même pour recopier l'info. que je t'ai donnée.

Dans le classeur que tu as publié, tu n'as pas insérer l'API.




"Guy85" a écrit dans le message de groupe de
discussion :

Ci-joint : http://www.cijoint.fr/cjlink.php?file=cj201004/cijS6RW13n.xls


"michdenis" a écrit dans le message de news:

J'ai oublié d'inclure la gestion d'erreur :
'----------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Range("A1:A10"), Target) Is Nothing Then
If Target <> "" Then
Définition Target
End If
ElseIf Not Intersect(Range(Target.DirectDependents.Address),
Range("A1:A10")) Is Nothing
Then
If Err <> 0 Then Err = 0: Exit Sub
If Target.DirectDependents.Address <> "" Then
Définition Target.DirectDependents
End If
End If
End Sub
'----------------------------------
Sub Définition(Rg As Range)
ShellExecute 0, vbNullString, _
"http://www.mediadico.com/dictionnaire/lecture.asp/definition/" _
& Rg & "/parle", vbNullString, "C:", 6
End Sub
'----------------------------------








Avatar
michdenis
Voici l'API que Modeste a publié

Private Declare Function ShellExecute Lib _
"shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Tu déclares ton API dans un module standard.
Si tu veux appeler cet API de différents modules, tu dois
enlever le premier mot de la déclaration. Tu obtiendras ceci :

Declare Function ShellExecute Lib _
"shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long





"Guy85" a écrit dans le message de groupe de discussion :
#
Dans un message, tu me dis d'enlever le mot "Private" dans le module
standard.
Et là, il faut que j'insère l'API.
J'avoue que je cherche pourtant, je suis dessus depuis ce matin.
Comme je n'y connais rien en VBA.
l'API quoi est-ce ?

"michdenis" a écrit dans le message de news:
%
Un petit effort quand même pour recopier l'info. que je t'ai donnée.

Dans le classeur que tu as publié, tu n'as pas insérer l'API.




"Guy85" a écrit dans le message de groupe de
discussion :

Ci-joint : http://www.cijoint.fr/cjlink.php?file=cj201004/cijS6RW13n.xls


"michdenis" a écrit dans le message de news:

J'ai oublié d'inclure la gestion d'erreur :
'----------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Range("A1:A10"), Target) Is Nothing Then
If Target <> "" Then
Définition Target
End If
ElseIf Not Intersect(Range(Target.DirectDependents.Address),
Range("A1:A10")) Is Nothing
Then
If Err <> 0 Then Err = 0: Exit Sub
If Target.DirectDependents.Address <> "" Then
Définition Target.DirectDependents
End If
End If
End Sub
'----------------------------------
Sub Définition(Rg As Range)
ShellExecute 0, vbNullString, _
"http://www.mediadico.com/dictionnaire/lecture.asp/definition/" _
& Rg & "/parle", vbNullString, "C:", 6
End Sub
'----------------------------------








Avatar
Guy85
D'accord, j'ai ajouté la fameuse API.
Maintenant le lien se fait à chaque fois que je change quelque chose dans
les cellules qui sont liées avec la formule qui se trouve dans A1
=SI($C$8=$G$12;$J$18;"")
Sans que le mot soit dans A1

"michdenis" a écrit dans le message de news:

Voici l'API que Modeste a publié

Private Declare Function ShellExecute Lib _
"shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Tu déclares ton API dans un module standard.
Si tu veux appeler cet API de différents modules, tu dois
enlever le premier mot de la déclaration. Tu obtiendras ceci :

Declare Function ShellExecute Lib _
"shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long





"Guy85" a écrit dans le message de groupe de
discussion :
#
Dans un message, tu me dis d'enlever le mot "Private" dans le module
standard.
Et là, il faut que j'insère l'API.
J'avoue que je cherche pourtant, je suis dessus depuis ce matin.
Comme je n'y connais rien en VBA.
l'API quoi est-ce ?

"michdenis" a écrit dans le message de news:
%
Un petit effort quand même pour recopier l'info. que je t'ai donnée.

Dans le classeur que tu as publié, tu n'as pas insérer l'API.




"Guy85" a écrit dans le message de groupe de
discussion :

Ci-joint : http://www.cijoint.fr/cjlink.php?file=cj201004/cijS6RW13n.xls


"michdenis" a écrit dans le message de news:

J'ai oublié d'inclure la gestion d'erreur :
'----------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Range("A1:A10"), Target) Is Nothing Then
If Target <> "" Then
Définition Target
End If
ElseIf Not Intersect(Range(Target.DirectDependents.Address),
Range("A1:A10")) Is Nothing
Then
If Err <> 0 Then Err = 0: Exit Sub
If Target.DirectDependents.Address <> "" Then
Définition Target.DirectDependents
End If
End If
End Sub
'----------------------------------
Sub Définition(Rg As Range)
ShellExecute 0, vbNullString, _
"http://www.mediadico.com/dictionnaire/lecture.asp/definition/" _
& Rg & "/parle", vbNullString, "C:", 6
End Sub
'----------------------------------











Avatar
michdenis
Pour une raison que j'ignore, sur cette ligne de code,
il y avait .Address en trop :
If Target.DirectDependents.Address <> "" Then


Correction :
'----------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Range("A1:A10"), Target) Is Nothing Then
If Target <> "" Then
Définition Target
End If
ElseIf Not Intersect(Range(Target.DirectDependents.Address), Range("A1:A10")) Is Nothing
Then
If Err <> 0 Then Err = 0: Exit Sub
If Target.DirectDependents <> "" Then
Définition Target.DirectDependents
End If
End If
End Sub
'----------------------------------
Sub Définition(Rg As Range)
ShellExecute 0, vbNullString, _
"http://www.mediadico.com/dictionnaire/lecture.asp/definition/" _
& Rg & "/parle", vbNullString, "C:", 6
End Sub
'----------------------------------





"Guy85" a écrit dans le message de groupe de discussion :
O33#
D'accord, j'ai ajouté la fameuse API.
Maintenant le lien se fait à chaque fois que je change quelque chose dans
les cellules qui sont liées avec la formule qui se trouve dans A1
=SI($C$8=$G$12;$J$18;"")
Sans que le mot soit dans A1

"michdenis" a écrit dans le message de news:

Voici l'API que Modeste a publié

Private Declare Function ShellExecute Lib _
"shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Tu déclares ton API dans un module standard.
Si tu veux appeler cet API de différents modules, tu dois
enlever le premier mot de la déclaration. Tu obtiendras ceci :

Declare Function ShellExecute Lib _
"shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long





"Guy85" a écrit dans le message de groupe de
discussion :
#
Dans un message, tu me dis d'enlever le mot "Private" dans le module
standard.
Et là, il faut que j'insère l'API.
J'avoue que je cherche pourtant, je suis dessus depuis ce matin.
Comme je n'y connais rien en VBA.
l'API quoi est-ce ?

"michdenis" a écrit dans le message de news:
%
Un petit effort quand même pour recopier l'info. que je t'ai donnée.

Dans le classeur que tu as publié, tu n'as pas insérer l'API.




"Guy85" a écrit dans le message de groupe de
discussion :

Ci-joint : http://www.cijoint.fr/cjlink.php?file=cj201004/cijS6RW13n.xls


"michdenis" a écrit dans le message de news:

J'ai oublié d'inclure la gestion d'erreur :
'----------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Range("A1:A10"), Target) Is Nothing Then
If Target <> "" Then
Définition Target
End If
ElseIf Not Intersect(Range(Target.DirectDependents.Address),
Range("A1:A10")) Is Nothing
Then
If Err <> 0 Then Err = 0: Exit Sub
If Target.DirectDependents.Address <> "" Then
Définition Target.DirectDependents
End If
End If
End Sub
'----------------------------------
Sub Définition(Rg As Range)
ShellExecute 0, vbNullString, _
"http://www.mediadico.com/dictionnaire/lecture.asp/definition/" _
& Rg & "/parle", vbNullString, "C:", 6
End Sub
'----------------------------------











Avatar
Modeste
Bonsour® "michdenis"

A-propos de cette ligne de commande Shellexcecute :
peut-être auras-tu une explication ???

'----------------------------------
Sub Définition(Rg As Range)
ShellExecute 0, vbNullString, _
"http://www.mediadico.com/dictionnaire/lecture.asp/definition/" & Rg &
"/parle", vbNullString, "C:", 6
End Sub
'----------------------------------



le dernier paramètre reste inopérant !!!!
celui-ci est sensé définir l'état de la fenêtre c.-à-d. : Active Minimisée

à part mettre IE en mode minimisé avant ouverture d'Excel ,
je n'ai jamais obtenu le résultat escompté : explication vocale de manière
discrète lors de l'exécution
Avatar
Guy85
Bonjour,
Ok ça fonctionne.
Merci de ton aide

"michdenis" a écrit dans le message de news:

Pour une raison que j'ignore, sur cette ligne de code,
il y avait .Address en trop :
If Target.DirectDependents.Address <> "" Then


Correction :
'----------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Range("A1:A10"), Target) Is Nothing Then
If Target <> "" Then
Définition Target
End If
ElseIf Not Intersect(Range(Target.DirectDependents.Address),
Range("A1:A10")) Is Nothing
Then
If Err <> 0 Then Err = 0: Exit Sub
If Target.DirectDependents <> "" Then
Définition Target.DirectDependents
End If
End If
End Sub
'----------------------------------
Sub Définition(Rg As Range)
ShellExecute 0, vbNullString, _
"http://www.mediadico.com/dictionnaire/lecture.asp/definition/" _
& Rg & "/parle", vbNullString, "C:", 6
End Sub
'----------------------------------





"Guy85" a écrit dans le message de groupe de
discussion :
O33#
D'accord, j'ai ajouté la fameuse API.
Maintenant le lien se fait à chaque fois que je change quelque chose dans
les cellules qui sont liées avec la formule qui se trouve dans A1
=SI($C$8=$G$12;$J$18;"")
Sans que le mot soit dans A1

"michdenis" a écrit dans le message de news:

Voici l'API que Modeste a publié

Private Declare Function ShellExecute Lib _
"shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Tu déclares ton API dans un module standard.
Si tu veux appeler cet API de différents modules, tu dois
enlever le premier mot de la déclaration. Tu obtiendras ceci :

Declare Function ShellExecute Lib _
"shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long





"Guy85" a écrit dans le message de groupe de
discussion :
#
Dans un message, tu me dis d'enlever le mot "Private" dans le module
standard.
Et là, il faut que j'insère l'API.
J'avoue que je cherche pourtant, je suis dessus depuis ce matin.
Comme je n'y connais rien en VBA.
l'API quoi est-ce ?

"michdenis" a écrit dans le message de news:
%
Un petit effort quand même pour recopier l'info. que je t'ai donnée.

Dans le classeur que tu as publié, tu n'as pas insérer l'API.




"Guy85" a écrit dans le message de groupe de
discussion :

Ci-joint : http://www.cijoint.fr/cjlink.php?file=cj201004/cijS6RW13n.xls


"michdenis" a écrit dans le message de news:

J'ai oublié d'inclure la gestion d'erreur :
'----------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Range("A1:A10"), Target) Is Nothing Then
If Target <> "" Then
Définition Target
End If
ElseIf Not Intersect(Range(Target.DirectDependents.Address),
Range("A1:A10")) Is Nothing
Then
If Err <> 0 Then Err = 0: Exit Sub
If Target.DirectDependents.Address <> "" Then
Définition Target.DirectDependents
End If
End If
End Sub
'----------------------------------
Sub Définition(Rg As Range)
ShellExecute 0, vbNullString, _
"http://www.mediadico.com/dictionnaire/lecture.asp/definition/" _
& Rg & "/parle", vbNullString, "C:", 6
End Sub
'----------------------------------














Avatar
michdenis
Bonjour Modeste,

Voici l'explication en anglais :

Déclaration de l'API
'---------------------------------
Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
'---------------------------------

Le dernier paramètre " nShowCmd" s'applique seulement
dans le cas d'un exécutable

· nShowCmd
If lpFile specifies an executable file, nShowCmd specifies how the application
is to be shown when it is opened. This parameter can be one of the following
values:
SW_HIDE
Hides the window and activates another window.
SW_MAXIMIZE
Maximizes the specified window.
SW_MINIMIZE
Minimizes the specified window and activates the next top-level window in the Z
order.
SW_RESTORE
Activates and displays the window. If the window is minimized or maximized,
Windows restores it to its original size and position. An application should
specify this flag when restoring a minimized window.
SW_SHOW
Activates the window and displays it in its current size and position.
SW_SHOWDEFAULT
Sets the show state based on the SW_ flag specified in the STARTUPINFO
structure passed to the CreateProcess function by the program that started the
application. An application should call ShowWindow with this flag to set the
initial show state of its main window.
SW_SHOWMAXIMIZED
Activates the window and displays it as a maximized window.
SW_SHOWMINIMIZED
Activates the window and displays it as a minimized window.
SW_SHOWMINNOACTIVE
Displays the window as a minimized window. The active window remains active.
SW_SHOWNA
Displays the window in its current state. The active window remains active.
SW_SHOWNOACTIVATE
Displays a window in its most recent size and position. The active window
remains active.
SW_SHOWNORMAL
Activates and displays a window. If the window is minimized or maximized,
Windows restores it to its original size and position. An application should
specify this flag when displaying the window for the first time.

If lpFile specifies a document file, nShowCmd should be zero.

Dans le présent cas, le demandeur aurait pu utiliser seulement ceci :
La grandeur de la fenêtre est celle observée lors de la dernière fermeture.
'-----------------------
Sub Définition(Rg As Range)
Dim IE As Object
Set IE = CreateObject("internetexplorer.application")
IE.Navigate ("http://www.mediadico.com/dictionnaire/lecture.asp/definition/" _
& Rg & "/parle")
IE.Visible = True
End Sub
'-----------------------




"Modeste" a écrit dans le message de groupe de discussion :
#0TuP$
Bonsour® "michdenis"

A-propos de cette ligne de commande Shellexcecute :
peut-être auras-tu une explication ???

'----------------------------------
Sub Définition(Rg As Range)
ShellExecute 0, vbNullString, _
"http://www.mediadico.com/dictionnaire/lecture.asp/definition/" & Rg &
"/parle", vbNullString, "C:", 6
End Sub
'----------------------------------



le dernier paramètre reste inopérant !!!!
celui-ci est sensé définir l'état de la fenêtre c.-à-d. : Active Minimisée

à part mettre IE en mode minimisé avant ouverture d'Excel ,
je n'ai jamais obtenu le résultat escompté : explication vocale de manière
discrète lors de l'exécution
Avatar
Modeste
Bonsour®

MERCI DENIS !!!!!
mais c'est bien sûr... ;o)))

Sub Définition(Rg As Range)
Dim IE As Object
Set IE = CreateObject("internetexplorer.application")
IE.Navigate
("http://www.mediadico.com/dictionnaire/lecture.asp/definition/" _
& Rg & "/parle")
IE.Visible = False <===== !!!!
End Sub
Avatar
Guy85
Bonjour,
Je n'ai plus de son avec la macro pour la du Dico!!
Cordialement
Guy

"Guy85" a écrit dans le message de news:

Bonjour,
Ok ça fonctionne.
Merci de ton aide

"michdenis" a écrit dans le message de news:

Pour une raison que j'ignore, sur cette ligne de code,
il y avait .Address en trop :
If Target.DirectDependents.Address <> "" Then


Correction :
'----------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Range("A1:A10"), Target) Is Nothing Then
If Target <> "" Then
Définition Target
End If
ElseIf Not Intersect(Range(Target.DirectDependents.Address),
Range("A1:A10")) Is Nothing
Then
If Err <> 0 Then Err = 0: Exit Sub
If Target.DirectDependents <> "" Then
Définition Target.DirectDependents
End If
End If
End Sub
'----------------------------------
Sub Définition(Rg As Range)
ShellExecute 0, vbNullString, _
"http://www.mediadico.com/dictionnaire/lecture.asp/definition/" _
& Rg & "/parle", vbNullString, "C:", 6
End Sub
'----------------------------------





"Guy85" a écrit dans le message de groupe de
discussion :
O33#
D'accord, j'ai ajouté la fameuse API.
Maintenant le lien se fait à chaque fois que je change quelque chose dans
les cellules qui sont liées avec la formule qui se trouve dans A1
=SI($C$8=$G$12;$J$18;"")
Sans que le mot soit dans A1

"michdenis" a écrit dans le message de news:

Voici l'API que Modeste a publié

Private Declare Function ShellExecute Lib _
"shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Tu déclares ton API dans un module standard.
Si tu veux appeler cet API de différents modules, tu dois
enlever le premier mot de la déclaration. Tu obtiendras ceci :

Declare Function ShellExecute Lib _
"shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long





"Guy85" a écrit dans le message de groupe de
discussion :
#
Dans un message, tu me dis d'enlever le mot "Private" dans le module
standard.
Et là, il faut que j'insère l'API.
J'avoue que je cherche pourtant, je suis dessus depuis ce matin.
Comme je n'y connais rien en VBA.
l'API quoi est-ce ?

"michdenis" a écrit dans le message de news:
%
Un petit effort quand même pour recopier l'info. que je t'ai donnée.

Dans le classeur que tu as publié, tu n'as pas insérer l'API.




"Guy85" a écrit dans le message de groupe
de
discussion :

Ci-joint :
http://www.cijoint.fr/cjlink.php?file=cj201004/cijS6RW13n.xls


"michdenis" a écrit dans le message de news:

J'ai oublié d'inclure la gestion d'erreur :
'----------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Range("A1:A10"), Target) Is Nothing Then
If Target <> "" Then
Définition Target
End If
ElseIf Not Intersect(Range(Target.DirectDependents.Address),
Range("A1:A10")) Is Nothing
Then
If Err <> 0 Then Err = 0: Exit Sub
If Target.DirectDependents.Address <> "" Then
Définition Target.DirectDependents
End If
End If
End Sub
'----------------------------------
Sub Définition(Rg As Range)
ShellExecute 0, vbNullString, _
"http://www.mediadico.com/dictionnaire/lecture.asp/definition/" _
& Rg & "/parle", vbNullString, "C:", 6
End Sub
'----------------------------------


















Avatar
michdenis
| Je n'ai plus de son avec la macro pour la du Dico!!

Est-ce que tu attends réellement une réponse ?
Est-ce possible que le site internet que tu consultes soit
en maintenance ?

La macro que tu exécutes n'a rien à voir avec le "son".
1 2 3 4