Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

formulaire et bug d'excel

8 réponses
Avatar
sab
bonjour,

Quand j'associe à une textbox d'un formulaire ce code à l'insertion du
click de la souris (mousedown)dans la text box:

Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As
Integer, ByVal X As Single, ByVal Y As Single)
Application.Dialogs(xlDialogInsertHyperlink).Show
End Sub

J'obtiens bien le résulta escompté : affichage de la fenetre "lien
hypertexte" de excel mais je ne peux rien faire tout se fige et seul
"Ctrl-Alt-Suppr" permet de fermer excel.

Cette boite de dialogue d'excel hors du formulaire et dans le tableau
fonctionne parfaitement???

Avez vous une idée? Est ce un bug?
Merci par Avance

Je precise (cela n'a sans doute rien a voir....) que en background de
mon formulaire il y a une image...(donc un lien...???)

8 réponses

Avatar
Mishell
Bonjour.

Place ton code dans l'événement MouseUp plutôt que dans MouseDown.

Mishell


"sab" wrote in message
news:
bonjour,

Quand j'associe à une textbox d'un formulaire ce code à l'insertion du
click de la souris (mousedown)dans la text box:

Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As
Integer, ByVal X As Single, ByVal Y As Single)
Application.Dialogs(xlDialogInsertHyperlink).Show
End Sub

J'obtiens bien le résulta escompté : affichage de la fenetre "lien
hypertexte" de excel mais je ne peux rien faire tout se fige et seul
"Ctrl-Alt-Suppr" permet de fermer excel.

Cette boite de dialogue d'excel hors du formulaire et dans le tableau
fonctionne parfaitement???

Avez vous une idée? Est ce un bug?
Merci par Avance

Je precise (cela n'a sans doute rien a voir....) que en background de mon
formulaire il y a une image...(donc un lien...???)




Avatar
Papyjac
Bonjour michel,

J'ai testé ton code en V2003, j'affiche la boite la boite de dialogue, on ne
peut pas utiliser la souris, mais on peut taper une adresse ; puis faire
entrée ; la boite se referme, le texte saisi est copié dans l'onglet. Je ne
sais pas à quoi ça sert mais mais besoin de Ctrl alt suppr
--
Papyjac


"Mishell" a écrit :

Bonjour.

Place ton code dans l'événement MouseUp plutôt que dans MouseDown.

Mishell


"sab" wrote in message
news:
> bonjour,
>
> Quand j'associe à une textbox d'un formulaire ce code à l'insertion du
> click de la souris (mousedown)dans la text box:
>
> Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As
> Integer, ByVal X As Single, ByVal Y As Single)
> Application.Dialogs(xlDialogInsertHyperlink).Show
> End Sub
>
> J'obtiens bien le résulta escompté : affichage de la fenetre "lien
> hypertexte" de excel mais je ne peux rien faire tout se fige et seul
> "Ctrl-Alt-Suppr" permet de fermer excel.
>
> Cette boite de dialogue d'excel hors du formulaire et dans le tableau
> fonctionne parfaitement???
>
> Avez vous une idée? Est ce un bug?
> Merci par Avance
>
> Je precise (cela n'a sans doute rien a voir....) que en background de mon
> formulaire il y a une image...(donc un lien...???)
>
>





Avatar
sab
Bonjour,

Un grand Merci!! car en effet avec MouseUp tout redevient normal alors
qu'avec l'evenement MouseDown la souris ne répondait plus...
Avec MouseUp et mon code VBA la boite de dial Excel apparait..et est
fonctionnelle.
Bon ceci dit l'affichage de la boite de dial "inserer un lien
hypertexte" ne donne rien car le lien inscrit dans la boite de dial ne
vient pas s'afficher dans la "Textbox"!!.J'ai du encore louper quelque
chose!!Je vais refaire un post dans le forum pour comprendre...!!
Encore Merci



Mishell a écrit :
Bonjour.

Place ton code dans l'événement MouseUp plutôt que dans MouseDown.

Mishell


"sab" wrote in message
news:
bonjour,

Quand j'associe à une textbox d'un formulaire ce code à l'insertion du
click de la souris (mousedown)dans la text box:

Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As
Integer, ByVal X As Single, ByVal Y As Single)
Application.Dialogs(xlDialogInsertHyperlink).Show
End Sub

J'obtiens bien le résulta escompté : affichage de la fenetre "lien
hypertexte" de excel mais je ne peux rien faire tout se fige et seul
"Ctrl-Alt-Suppr" permet de fermer excel.





Avatar
Mishell
Le lien inscrit dans la boite de dialogue s'affiche dans la
cellule active.
Pour le récupérer dans la Textbox1 :
.
zaza = Application.Dialogs(xlDialogInsertHyperlink).Show

If zaza = True Then
TextBox1.Value = ActiveCell.Value
End If


Mishell


"sab" wrote in message
news:
Bonjour,

Un grand Merci!! car en effet avec MouseUp tout redevient normal alors
qu'avec l'evenement MouseDown la souris ne répondait plus...
Avec MouseUp et mon code VBA la boite de dial Excel apparait..et est
fonctionnelle.
Bon ceci dit l'affichage de la boite de dial "inserer un lien hypertexte"
ne donne rien car le lien inscrit dans la boite de dial ne vient pas
s'afficher dans la "Textbox"!!.J'ai du encore louper quelque chose!!Je
vais refaire un post dans le forum pour comprendre...!!
Encore Merci



Mishell a écrit :
Bonjour.

Place ton code dans l'événement MouseUp plutôt que dans MouseDown.

Mishell


"sab" wrote in message
news:
bonjour,

Quand j'associe à une textbox d'un formulaire ce code à l'insertion du
click de la souris (mousedown)dans la text box:

Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As
Integer, ByVal X As Single, ByVal Y As Single)
Application.Dialogs(xlDialogInsertHyperlink).Show
End Sub

J'obtiens bien le résulta escompté : affichage de la fenetre "lien
hypertexte" de excel mais je ne peux rien faire tout se fige et seul
"Ctrl-Alt-Suppr" permet de fermer excel.









Avatar
sab
Merci Mishell

Je commence à comprendre (il serait temps..!!)
Mais gros probleme je ne veux surtout pas que le lien inscrit dans la
boite de dial s'inscrive dans la cellule active !!!(ni aucune autres!!)
,je veux simplement qu'il s'inscrive dans le Textbox qui a déclenché la
boite de dialogue....

Par la suite j'ai un controle "bouton de commande" : "SAISIE" qui
affecte toutes les textbox du formulaire dans des cellules specifiques
du tableau et qui décharge (Unload) le formulaire...

Mais est ce possible? ou y a t il un autre moyen?



Mishell a écrit :
Le lien inscrit dans la boite de dialogue s'affiche dans la
cellule active.
Pour le récupérer dans la Textbox1 :
.
zaza = Application.Dialogs(xlDialogInsertHyperlink).Show

If zaza = True Then
TextBox1.Value = ActiveCell.Value
End If


Mishell



Place ton code dans l'événement MouseUp plutôt que dans MouseDown.
Mishell


"sab" wrote in message
news:
bonjour,

Quand j'associe à une textbox d'un formulaire ce code à l'insertion du
click de la souris (mousedown)dans la text box:

Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As
Integer, ByVal X As Single, ByVal Y As Single)
Application.Dialogs(xlDialogInsertHyperlink).Show
End Sub

J'obtiens bien le résulta escompté : affichage de la fenetre "lien
hypertexte" de excel mais je ne peux rien faire tout se fige et seul
"Ctrl-Alt-Suppr" permet de fermer excel.











Avatar
Mishell
Application.Dialogs ne renvoie pas de valeur (autre que Vrai ou Faux). Il
faut donc récupérer le résultat dans une cellule.

Si tu recherches des liens uniquement vers des noms de fichiers, utilise
plutôt la fonction Application.GetOpenFilename

Exemple:
Sub ChoixFichier()
FichierChoisi = Application.GetOpenFilename
MsgBox FichierChoisi
End Sub

Mishell

"sab" wrote in message
news:
Merci Mishell

Je commence à comprendre (il serait temps..!!)
Mais gros probleme je ne veux surtout pas que le lien inscrit dans la
boite de dial s'inscrive dans la cellule active !!!(ni aucune autres!!)
,je veux simplement qu'il s'inscrive dans le Textbox qui a déclenché la
boite de dialogue....

Par la suite j'ai un controle "bouton de commande" : "SAISIE" qui affecte
toutes les textbox du formulaire dans des cellules specifiques du tableau
et qui décharge (Unload) le formulaire...

Mais est ce possible? ou y a t il un autre moyen?



Mishell a écrit :
Le lien inscrit dans la boite de dialogue s'affiche dans la
cellule active.
Pour le récupérer dans la Textbox1 :
.
zaza = Application.Dialogs(xlDialogInsertHyperlink).Show

If zaza = True Then
TextBox1.Value = ActiveCell.Value
End If


Mishell



Place ton code dans l'événement MouseUp plutôt que dans MouseDown.
Mishell


"sab" wrote in message
news:
bonjour,

Quand j'associe à une textbox d'un formulaire ce code à l'insertion du
click de la souris (mousedown)dans la text box:

Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As
Integer, ByVal X As Single, ByVal Y As Single)
Application.Dialogs(xlDialogInsertHyperlink).Show
End Sub

J'obtiens bien le résulta escompté : affichage de la fenetre "lien
hypertexte" de excel mais je ne peux rien faire tout se fige et seul
"Ctrl-Alt-Suppr" permet de fermer excel.















Avatar
sab
Bonsoir et encore un grand merci...

En effet Aplication.GetOpenFilename va bien me servir pour les liaisons
vers des noms de fichiers...
Mais j'ai un Textbox qui fait des liaisons vers des URLs et la
Application.Dialogs est plus agréable car on peut faire un
copier/coller de l'url et dans la partie "texte à afficher" ne mettre
qu'une toute petite partie pour qu'elle tienne dans une cellule car
quelques fois les URLS sont tres tres longues...

Une solution serait de rendre une cellule Active (de travail) en
lançant le formulaire qui recupererait le resultat avec
Textbox1value¬tivecellule.value

Que rajouter à cette petite macro pour qu'elle active la cellule T1 par
exemple avant de lancer l'userform: frmsaisie

Sub lanceFrmsaisie_Click()
frmsaisie.Show
End Sub





Mishell a écrit :
Application.Dialogs ne renvoie pas de valeur (autre que Vrai ou Faux). Il
faut donc récupérer le résultat dans une cellule.

Si tu recherches des liens uniquement vers des noms de fichiers, utilise
plutôt la fonction Application.GetOpenFilename

Exemple:
Sub ChoixFichier()
FichierChoisi = Application.GetOpenFilename
MsgBox FichierChoisi
End Sub



Avatar
Mishell
NomDeLaFeuille = "Feuil2"
Sheets(NomDeLaFeuille).Select
Sheets(NomDeLaFeuille).Range("T1").Select
zaza = Application.Dialogs(xlDialogInsertHyperlink).Show

If zaza = True Then
TextBox1.Value = ActiveCell.Value
End If

Mishell

"sab" wrote in message
news:
Bonsoir et encore un grand merci...

En effet Aplication.GetOpenFilename va bien me servir pour les liaisons
vers des noms de fichiers...
Mais j'ai un Textbox qui fait des liaisons vers des URLs et la
Application.Dialogs est plus agréable car on peut faire un copier/coller
de l'url et dans la partie "texte à afficher" ne mettre qu'une toute
petite partie pour qu'elle tienne dans une cellule car quelques fois les
URLS sont tres tres longues...

Une solution serait de rendre une cellule Active (de travail) en lançant
le formulaire qui recupererait le resultat avec
Textbox1value¬tivecellule.value

Que rajouter à cette petite macro pour qu'elle active la cellule T1 par
exemple avant de lancer l'userform: frmsaisie

Sub lanceFrmsaisie_Click()
frmsaisie.Show
End Sub





Mishell a écrit :
Application.Dialogs ne renvoie pas de valeur (autre que Vrai ou Faux). Il
faut donc récupérer le résultat dans une cellule.

Si tu recherches des liens uniquement vers des noms de fichiers, utilise
plutôt la fonction Application.GetOpenFilename

Exemple:
Sub ChoixFichier()
FichierChoisi = Application.GetOpenFilename
MsgBox FichierChoisi
End Sub