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

Fermé
Boubi76 Messages postés 11 Date d'inscription jeudi 23 avril 2015 Statut Membre Dernière intervention 29 avril 2015 - 23 avril 2015 à 15:53
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 - 29 avril 2015 à 17:44
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.
A voir également:

11 réponses

via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
23 avril 2015 à 17:22
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
Boubi76 Messages postés 11 Date d'inscription jeudi 23 avril 2015 Statut Membre Dernière intervention 29 avril 2015
23 avril 2015 à 17:49
Super !! Par contre comment l'appliquer à plusieurs cellule j'ai essayé A1;A15 sans résultat
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703 > Boubi76 Messages postés 11 Date d'inscription jeudi 23 avril 2015 Statut Membre Dernière intervention 29 avril 2015
23 avril 2015 à 17:58
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
Boubi76 Messages postés 11 Date d'inscription jeudi 23 avril 2015 Statut Membre Dernière intervention 29 avril 2015
Modifié par Boubi76 le 24/04/2015 à 08:50
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
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703 > Boubi76 Messages postés 11 Date d'inscription jeudi 23 avril 2015 Statut Membre Dernière intervention 29 avril 2015
27 avril 2015 à 11:32
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
Boubi76 Messages postés 11 Date d'inscription jeudi 23 avril 2015 Statut Membre Dernière intervention 29 avril 2015 > via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024
27 avril 2015 à 11:41
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
Boubi76 Messages postés 11 Date d'inscription jeudi 23 avril 2015 Statut Membre Dernière intervention 29 avril 2015
27 avril 2015 à 11:06
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
Boubi76 Messages postés 11 Date d'inscription jeudi 23 avril 2015 Statut Membre Dernière intervention 29 avril 2015
27 avril 2015 à 11:56
Je suppose que si je veux faire la même chose avec des nombre à la place de date je met If Not IsNumber ?
0
Boubi76 Messages postés 11 Date d'inscription jeudi 23 avril 2015 Statut Membre Dernière intervention 29 avril 2015
27 avril 2015 à 15:12
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

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

Posez votre question
Boubi76 Messages postés 11 Date d'inscription jeudi 23 avril 2015 Statut Membre Dernière intervention 29 avril 2015
28 avril 2015 à 11:28
Via 55 tu est mon seul espoir ! ^^
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
28 avril 2015 à 15:00
Bonjour

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

Cdlmnt
Via
0
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
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
28 avril 2015 à 15:41
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
Boubi76 Messages postés 11 Date d'inscription jeudi 23 avril 2015 Statut Membre Dernière intervention 29 avril 2015
Modifié par Boubi76 le 29/04/2015 à 09:41



Voilà une image tu me dit si c'est pas clair
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
29 avril 2015 à 17:05
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
Boubi76 Messages postés 11 Date d'inscription jeudi 23 avril 2015 Statut Membre Dernière intervention 29 avril 2015
29 avril 2015 à 17:18
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
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703 > Boubi76 Messages postés 11 Date d'inscription jeudi 23 avril 2015 Statut Membre Dernière intervention 29 avril 2015
29 avril 2015 à 17:44
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
Boubi76 Messages postés 11 Date d'inscription jeudi 23 avril 2015 Statut Membre Dernière intervention 29 avril 2015
29 avril 2015 à 17:23
Pour l'instant ca ne fonctionne pas je me remet dessus demain

petite photo du message d'erreur
0