Problème lien hypertexte feuille power point

Résolu
jeje -  
 Intr0 -
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
Configuration: Windows 2000 Internet Explorer 6.0

12 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
  2. coudu
     
    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
  3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
  4. coudu
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
  7. coudu
     
    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
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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
  8. coudu
     
    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
  9. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
  10. coudu
     
    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
  11. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
  12. Intr0
     
    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