Problème lien hypertexte feuille power point

Résolu/Fermé
jeje - 4 janv. 2010 à 16:38
 Intr0 - 18 janv. 2010 à 23:00
Bonjour,
J’ai un userform me permettant d’avoir des informations sur les sportifs de ma ville. Je rentre un numéro de licence (ex : 123), je clique sur Recherche et dans des textbox j’obtiens des informations sur le licencié. (ex ville, sport…).
Dans l’une des textbox, j’aimerai ouvrir un fichier PWT, enregistré dans le répertoire :
C/Licenciés/feuilles Infos/Numéro de licence (ex 123).
Les fiches sont différenciées grâce au numéro de licence.

Comment faire pour que dans le textbox (10 par exemple), un lien apparaisse et que l’on puisse ouvrir le doc power point associé au numéro de licence entré dans l’userform au départ, en double cliquant sur la textbox10.
J'ai beau tout essayé j' arrive pas...

merci
A voir également:

12 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
5 janv. 2010 à 08:55
Salut,
Retentons cette année...

Dans un TextBox (TextBox1) tu entres le numéro de licence. Pour que s'implémente automatiquement le TextBox10, celui qui contient le lien tu double clic sur le TextBox1 et copie/colle ce code (en commentaire ce que tu dois adapter) :

Private Sub TextBox1_Change()
Dim chemin As String
chemin = "C:\Documents and Settings\utilisateur\Bureau\" 'ici place le chemin correspondant à tes fichiers powerpoint sans leur nom uniquement le chemin d'accès
TextBox10 = chemin & TextBox1 & ".ppt" 'textbox10 = textbox ou va se trouver le lien, textbox1 = n° de licence = nom du fichier powerpoint à ouvrir, ".ppt" à remplacer par l'extension qui corresponds...
End Sub


Ensuite, pour que ton lien s'ouvre au double clic dans le textbox10 :

Private Sub TextBox10_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
ThisWorkbook.FollowHyperlink Address:=TextBox10.Value, NewWindow:=True
End Sub


Ce code fonctionne chez moi... Excel 2003
0
Super ça marche je me plantais pour un détails...Mercui pour ton aide

J'ai deux petites questions à te poser:

-Est ce possible de donné à un checkbox le nom d'un textbox. Pour que si je change le nom du textbox alors le nom checkbox change aussi automatiquement.

-Est il possible que lorsque je veux enregistrer un document, je puisse forcer l'ouverture d'un dossier précis, et pas etre envoyé dans "mes documents" par exemple.

Merci bcp!!!!
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
6 janv. 2010 à 10:16
Salut,
1ère question : tu veux donner un nom identique à deux contrôles différents? Impossible... Par contre si tu veux que la valeur contenue dans ta combobox change lorsque tu inscris un nom dans le textbox ça oui.

2ème question : Oui sans souci. Explications :
Lorsque tu enregistres automatiquement un fichier, il va se placer dans le répertoire courant (par défaut, je crois bien qu'il s'agit de "mes documents"). S'il s'agit du classeur contenant la macro, il "s'auto écrase". La commande ChDir (= Change Directory [Changer de répertoire]) te permets d'enregistrer sous un autre répertoire, en fait de changer de répertoire courant. La syntaxe à utiliser est :

ChDir ("C:\Utilisateurs\Mes documents\TRAVAIL\MACROS") 'mettre entre 
'guillemets le chemin complet
ActiveWorkbook.Save


On peux également procéder comme suit (puisque dans la commande ChDir le nom du "chemin" est considérée comme un "string") :
- en "A1" inscrire le chemin du répertoire (ex: C:\Utilisateurs\Mes documents\TRAVAIL\MACROS)
- dans le code VBA :
ChDir Range("A1")


Une autre méthode consiste à passer par une variable (string bien sur) :

Dim chemin as String
chemin = InputBox("Inscrivez ici le chemin complet du répertoire de sauvegarde","Répertoire")
ActiveWorkbook.SaveAs (chemin & "\nom_de_ton_fichier")


D'autres "commandes" à connaitre :
ActiveWorkbook.Path ---> renvoie le chemin d'accès du classeur actif.
MkDir ---> permet de créer un nouveau répertoire
RmDir ---> permet de supprimer un répertoire (à utiliser avec des pincettes!!!)

D'autres codes plus "complexes permettent d'ouvrir une boîte de dialogue style "Windows" permettant à l'utilisateur de choisir son répertoire... Si tu es intéressé...
0
Oui je veux que la valeur contenue dans ta combobox change lorsque j’inscris un nom dans le textbox .
Mais je ne sais pas faire…

Pour le répertoire c’est bon merci.


J’ai une dernière question, J’oblige de rentrer un nombre dans un text box, et j’ai plusieur conditions,

-si la case n’es pas remplie on garde que ce textbox actif, les autres contrôles ne sont pas sélectionnables, mais j’aimerai juste que mon bouton de commande « quitter » soit actif. J’y arrive pas il reste inactif, c'est-à-dire la personne ne peut pas quitter la fenêtre si abandonne la saisie.

-Il faut que le nombre à rentrer soit de 7chiffres, ni plus ni moins, et ça je n’y arrive pas…

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
6 janv. 2010 à 13:31
Question 1
-si la case n’es pas remplie on garde que ce textbox actif, les autres contrôles ne sont pas sélectionnables, mais j’aimerai juste que mon bouton de commande « quitter » soit actif. J’y arrive pas il reste inactif, c'est-à-dire la personne ne peut pas quitter la fenêtre si abandonne la saisie.

CommandButton1.Enabled = true


Ou sinon comme dans les exemples que je t'ai mis plus bas, tu masques les contrôles et n'affiche que les "nécessaires" :

Dim ctrl As Control
For Each ctrl In UserForm2.Controls
If ctrl.Visible = True Then
ctrl.Visible = False
End If
Next
TextBox1.Visible = True
CommandButton1.Visible = True


Question 2
-Il faut que le nombre à rentrer soit de 7chiffres, ni plus ni moins, et ça je n’y arrive pas…

If Len(TextBox1) <> 7 Then
MsgBox ("erreur de saisie")
TextBox1 = ""
Exit Sub
End If


Deux exemples d'USF qui répondent à ces exigences ici

Question 3
Oui je veux que la valeur contenue dans ta combobox change lorsque j’inscris un nom dans le textbox .
Tu veux que le combobox prenne la valeur du textBox? Mais à quoi sert ta combo?
pour le code :

Private Sub TextBox1_Change()
ComboBox1.Value = TextBox1.Value
End Sub

0
merde,

C'est pas une combobox c'ext une check box, je voudrais que le nom de la checkbox soit celui de la textbox

Merci
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
7 janv. 2010 à 11:29
On ne dis pas m*rde, on dis bonjour, (d'ailleurs je ne comprends pas comment ton message est passé à travers le robot...)
Salut,
Si tu souhaites que ton CheckBox1 s'appelle tutu lorsqu'il est saisi tutu dans TextBox1,impossible. On ne peux apparemment pas changer le nom d'un contrôle en cours d'exécution (le débogage m'indique "impossible de définir la propriété à l'exécution"...).
Alors pourquoi veux tu changer le nom de ton CheckBox?

Ne voudrais tu pas, par hasard, changer le "caption" (ce qui est écrit à côté de la case à cocher)?
Sinon c'est :

Dim Ctrl As Control
For Each Ctrl In UserForm1.Controls
    If TypeOf Ctrl Is MSForms.CheckBox Then Ctrl.Caption = TextBox1.Value
Next Ctrl

0
Bonjour

Parfait c'est que je voulais faire...

Dis j'ai des calculs dans un userform.
C'est la multiplication de texbox.

Mais les decimaux ne s'additionnent pas...

tu aurais une solution?

Merci
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
7 janv. 2010 à 15:25
C'est la multiplication de texbox.
Mais les decimaux ne s'additionnent pas...
euh vu les deux mots en gras je dirais... c'est normal!!!
Blague à part, essaye
Cint(TextBox1)*Cint(TextBox2)

Je n'ai pas testé...
0
Je m’explique :

Dans le texbox1 je rentre une valeur (ex : 2,5)
Dans texbox2 je rentre une autre valeur (ex : 10)

Enfin dans la textbox3 une valeur (ex : 2.5)

Et donc mon calcul qui s’inscrit en textbox 4 est :

Textbox4.Value=( (CInt(Textbox1).Value)*0.02) (CInt(Textbox2).Value) +(CInt(Textbox3).Value


Et bien les décimaux du textbox3 ne s’additionnent pas , je comprends pas pourquoi…
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
8 janv. 2010 à 08:21
Salut,
Pardon. Cint ne fonctionne pas...
Avec CDbl, tu lui fais comprendre que ton nobre entré peut être un décimal :

TextBox4 = CDbl(TextBox1) * 0.02 * CDbl(TextBox2) + CDbl(TextBox3)
0
merci
0
Bonsoir à tous,
voila : j'ai fais un diapo avec un lien hypertexte vers un Son et quand ( en mode plein écran ) on clique sur ce lien, le son ce lance a partir du lecteur Windows média player... il n'a pas moyen qu'il ce lance indépendamment ? sans le lecteur Windows Média Player ?
Merci de vos réponses
PS : les son ne dure qu'un 20ene de secondes
0