Demande automatique de création d'un lien Hypertexte excel 2010

Boubi76 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'explique, je suis en train de créer un Tableau de Bord excel pour mon Entreprise qui doit être utilisé par tous mes collaborateurs.

Le but étant de demander à l'utilisateur du Tableur d'intégrer un lien hypertexte lorsque celui-ci possède le fichier

Exemple: Nous démarrons un projet mais le contrat n'est pas signé
Dans la cellule A1 se trouve la mention : :"Date signature contrat"
La cellule A2 nous permet de renseigner la date à laquelle nous avons reçu le contrat signé

J'aimerais qu'à partir du moment ou l'on rentre la date, excel demande d'ajouter un lien hypertexte soit dans la cellule A1 soit dans la cellule A3 afin d'accéder au contrat signé au format PDF

J'espère avoir été compréhensible,

Merci d'avance.

11 réponses

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour Bouhi76

    Un message qui s'affiche avec une macro à mettre dans le worksheet de la feuille concernée (ALT+F11 pour ouvrir l'éditeur, sélectionner par double-clic la feuille dans l'arborescence, copier-coller la macro dans la page blanche)
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A2")) Is Nothing Then
    If Not IsDate(Range("A2")) Then Exit Sub
    MsgBox ("Veuillez mettre dans la cellule A3 un lien hypertexte vers le PDF du contrat" & Chr(10) & "              (Selectionner A3 et faire Ctrl +K)")
    End If
    End Sub


    Cdlmnt
    Via
    0
    1. Boubi76 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
       
      Super !! Par contre comment l'appliquer à plusieurs cellule j'ai essayé A1;A15 sans résultat
      0
      1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759 > Boubi76 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
         
        Re,

        Si tu veux l'appliquer à plusieurs cellules il faut modifier la 1ere ligne qui vérifie la cellule dans laquelle une valeur est modifiée :
        Par exemple pour déclencher lors de l'entrée d'une date dans la cellule A2 ou la cellule A5 ou la cellule A8
        If Not Intersect(Target, Range("A2", "A5","A8")) Is Nothing Then
        Il faut aussi modifier la ligne suivante ainsi (qui vérifie que c'est bien une date qui a été entrée, ce qui évité l'affichage du message si on efface une date pour la corriger par exemple)
        If Not IsDate(Target) Then Exit Sub

        Cdlmnt
        Via
        0
    2. Boubi76 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
       
      J'ai essayé ça m'indique:

      "Erreur de compilation:
      Attendu: séparateur de liste ou )"
      Il me surligne le then à la fin de la première ligne , j'ai essayé d'ajouter des parenthèse ça ne fonctionne pas
      0
      1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759 > Boubi76 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
         
        Essaie cette macro :
        Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Range("A2")) Is Nothing Or Not Intersect(Target, Range("A5")) Is Nothing Or Not Intersect(Target, Range("A8")) Is Nothing Then
        If Not IsDate(Target) Then Exit Sub
        MsgBox ("Veuillez mettre dans cette cellule un lien hypertexte vers le PDF du contrat" & Chr(10) & "(Ctrl +K)")
        End If
        End Sub
        


        Cdlmnt
        Via
        0
      2. Boubi76 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   > via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention  
         
        Yes ça fonctionne merci ! Faut juste que je fasse ça pour les 15 cellules correspondant ça va faire un truc chargé mais c'est déjà super que ça fonctionne !!

        Merci via55
        0
  2. Boubi76 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
     
    Personne pour mon message d'erreur ? :(

    Boubi76 - 24 avril 2015 à 08:39
    J'ai essayé ça m'indique:

    "Erreur de compilation:
    Attendu: séparateur de liste ou )"
    Il me surligne le then à la fin de la première ligne , j'ai essayé d'ajouter des parenthèse ça ne fonctionne pas
    0
  3. Boubi76 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
     
    Je suppose que si je veux faire la même chose avec des nombre à la place de date je met If Not IsNumber ?
    0
  4. Boubi76 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
     
    Je vais être insistant mais là ça se corse j'ai 10 colonnes différentes avec chacune 40 colonnes dans lesquels je veux appliquer la même chose ^^
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Boubi76 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
     
    Via 55 tu est mon seul espoir ! ^^
    0
  7. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Désolé pas vu ton message hier
    C'est If Not IsNumeric

    Cdlmnt
    Via
    0
  8. Boubi76
     
    Bonjour,

    Ok et si je veux l'appliquer a 10 colonnes de 40 cellules ? Car quand je saute une ligne là tout foire !

    Merci d'avance normalement c'est la dernière question
    0
  9. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Re

    Les dix colonnes sont elles contigües ?
    Les cellules à traiter sont elles sur les mêmes lignes dans chaque colonne ?
    Envoie moi un exemple du fichier avec les 10 colonnes et en colorant toutes les cellules à traiter, ce sera plus clair

    Cdlmnt
    0
  10. Boubi76 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
     


    Voilà une image tu me dit si c'est pas clair
    0
  11. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour Boubi

    Autant que j'arrive à voir (je n'arrive pas à zoomer sur ton image), tu as 3 colonnes qui déclenchent la demande de lien dans des colonnes différentes
    Dans ce cas on peut gérer par colonne d'autant que le message à afficher est sans doute différent :
    Private Sub Worksheet_Change(ByVal Target As Range)
    
    ' si hors lignes ou rien dans la cellule sortie sans rien faire
    If Target.Row < 9 Or Target.Row > 40 Or Target.Value = "" Then Exit Sub
    
    ' si colonne D
    If Target.Column = 4 Then
    'selection de la cellule sur mm ligne en colonne K et message (à COMPLETER)
    Cells(Target.Row, Target.Column + 7).Select
    MsgBox ("Veuillez mettre dans cette cellule un lien hypertexte vers le ..........." & Chr(10) & "(Ctrl +K)")
    Exit Sub
    End If
    
    ' si colonne P
    If Target.Column = 17 Then
    ' si n'est pas une date, efface la cellule, message erreur et sortie
    If Not IsDate(Target) Then Target.Value = "": Cells(Target.Row, Target.Column).Select: MsgBox ("Entrez une date SVP"): Exit Sub
    ' selection de la cellule sur la mm ligne et colonne suivante et message (à COMPLETER)
    Cells(Target.Row, Target.Column + 1).Select
    MsgBox ("Veuillez mettre dans cette cellule un lien hypertexte vers le ......." & Chr(10) & "(Ctrl +K)")
    Exit Sub
    End If
    
    ' si colonne X
    If Target.Column = 24 Then
    ' si n'est pas une date, efface la cellule, message erreur et sortie
    If Not IsDate(Target) Then Target.Value = "": Cells(Target.Row, Target.Column).Select: MsgBox ("Entrez une date SVP"): Exit Sub
    ' selection de la cellule sur la mm ligne et colonne suivante et message (à COMPLETER)
    Cells(Target.Row, Target.Column + 1).Select
    MsgBox ("Veuillez mettre dans cette cellule un lien hypertexte vers le ......." & Chr(10) & "(Ctrl +K)")
    Exit Sub
    End If
    
    End Sub


    Cdlmnt
    Via
    0
    1. Boubi76 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
       
      Ok merci beaucoup ! La traduction dans le worksheet de texte c'est quoi ?

      Et question pour mon info, c'est possible faire la même démarche sauf que excel n'affiche pas un message d'erreur mais envoi directement la création du lien hypertexte ?
      0
      1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759 > Boubi76 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
         
        Re,

        Pour vérifier si la valeur entrée dans la cellule cible est ;
        une date : : If IsDate(Target) then si c'est une date alors
        If Not IsDate(Target) then si ce n'est pas une date alors

        un nombre : If IsNumeric(Target) then si c'est un nombre alors
        If Not IsNumeric(Target) then si ce n'est pas un nombre alors

        un texte : If Not IsNumeric(Target) then si ce n'est pas un nombre (donc c'est du texte) alors

        Pour ouvrir directement la fenêtre de lien hypertexte par VBA je ne sais pas si c'est possible (on peut créer un lien hypertexte par VBA mais cela ne convient pas pour toi car tu ne connais pas à l'avance le chemin du fichier)
        0
  12. Boubi76 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
     
    Pour l'instant ca ne fonctionne pas je me remet dessus demain

    petite photo du message d'erreur
    0