2010-12-09 4 views
0

Travaillant sur une liste de contrôle d'inspection, Les utilisateurs doivent entrer "Ok" ou "X" dans la cellule. Les colonnes de feuille sont les mois et les lignes sont les composants en cours d'inspection. Si l'utilisateur entre un "X", je veux que cette cellule change automatiquement en un lien hypertexte avec la cellule affichant toujours un "X" Le lien hypertexte devrait amener l'utilisateur à Sheet2 dans le classeur où ils entreront des informations d'exception. Doit être pour plusieurs colonnes. Voici ce que j'ai, mais ça ne marche pas. Merci pour toute aide que vous pourriez avoir.Macro pour insérer un lien hypertexte basé sur un texte spécifique entré dans la cellule

Sub Exceptions() 
' 
' Exceptions Macro 

' Macro recorded 12/9/2010 by 
' 

' 
If ThisWorkbook.Sheets("Inspection").Range("B9").Range("B100").Value = "X" Then 
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _ 
    "Exceptions!A1", TextToDisplay:="X" 


End If 

End Sub 

Répondre

0

Le code suivant ajoutera un lien hypertexte vers des exceptions feuille gamme A1 si un utilisateur tape un « x » ou « X » dans une cellule où dans la feuille 1:

Private Sub Worksheet_Change(ByVal Target As Range) 

If Target = "x" Or Target = "X" Then 
    Target.Hyperlinks.Add Anchor:=Target, Address:="", SubAddress:="Exceptions!A1", TextToDisplay:=Target.Value 
End If 

End Sub 

Quelques choses à Note:

  1. Ce code doit être placé en cas Worksheet_Change de la feuille 1
  2. Si vous voulez seulement ajouter des liens hypertextes à certaines colonnes/lignes alors vous devrez mettre à jour le code ci-dessus. Faites-moi savoir si vous avez besoin d'aide pour utiliser la fonctionnalité de commentaires au bas de ce post

Mise à jour - hyperliens limites à certaines lignes/colonnes

Si vous souhaitez limiter les liens hypertextes vers certaines zones de code puis utilisez ce code:

Private Sub Worksheet_Change(ByVal Target As Range) 
Dim rangeLimit As Range 

//Set you rangeLimit accordingly. Examples shown below... 

Set rangeLimit = Range("A1:A10") // Only allow hyperlinks in range A1 to A10 
Set rangeLimit = Range("A1:A10,B1:B5") // Only allow hyperlinks in range A1 to A10 and B1 to B5 
Set rangeLimit = Range("A:A,C:C") // Only allow hyperlinks in columns A and C 

If Not Intersect(rangeLimit, Target) Is Nothing Then 
    If Target = "x" Or Target = "X" Then 
     Target.Hyperlinks.Add Anchor:=Target, Address:="", SubAddress:="Sheet2!A1", TextToDisplay:=Target.Value 
    End If 
End If 

End Sub

+0

cela fonctionne très bien. Je voudrais limiter à certaines lignes ou colonnes. Toute aide sera très appréciée. Je vous remercie!! – PikeCoAL

+0

Donnez-moi 30 minutes et puis je mettrai à jour le code pour vous aider –

+0

Pas d'urgence. Merci de votre aide. Je suis enthousiaste à l'idée de faire fonctionner ça. – PikeCoAL

Questions connexes