Lien hypertexte vers EQUIV dans un autre classeur
Bonjour,
J'essaie de résoudre un problème assez complexe, il s'agit de créer un lien hypertexte grâce à des noms de cellules. Voici deux tableaux exemples :
(Classeur référence)
Référence Date
1 30/06/2013 Lien
2 30/06/2013 Lien
3 30/06/2013 Lien
4 30/09/2013 Lien
5 30/09/2013 Lien
6 30/09/2013 Lien
7 31/12/2013 Lien
8 31/12/2013 Lien
9 31/12/2013 Lien
10 31/12/2013 Lienet
trois classeurs qui s'appellent 30/06/2013, 30/09/2013 et 31/12/2013 avec dedans les références :
(Classeur 30/06/2013)
Référence
1
2
3
(Classeur 30/09/2013)
Référence
4
5
6
(Classeur 31/12/2013)
Référence
7
8
9
10Le but étant de créer depuis le classeur principal une colonne liens qui identifie le classeur à ouvrir grâce à la date en colonne B, et qui pointe vers la ligne de la référence équivalente.
Par exemple si je clique sur le lien de la case C3 ça m'ouvre le classeur "30/06/2013" et ça pointe sur la ligne avec la référence 2. (En prenant en compte les en-têtes)
J'ai essayé avec le Add Hyperlink mais je sais pas comment placé mon équivalence pour la date et la référence.
Vous avez une idée?
Merci d'avance!
J'ai essayé ce code :
Sub LienTest()
Dim lien As String
Dim myCell As Range
Dim myRng As Range
With ActiveSheet
Set myRng = .Range([A2], .Cells(.Rows.Count, 1).End(xlUp))
End With
For Each myCell In myRng.Cells
lien = myCell.Value
ActiveSheet.Hyperlinks.Add Anchor:=myCell.Offset(0, 1), Address:="C:\Documents\" & Format(Cells(myCell.Row, 2), "dd-mm-yyyy") & ".xlsx", SubAddress:= _lien, TextToDisplay:="Lien"
Next myCell
End SubSachant que j'ai renommé mes dates avec des tirets '30-06-2013' et pareil pour mon classeur cible (pour qu'ils puissent avec le même nom).
La méthode m'ouvre le bon fichier, mais ne trouve pas la ligne (référence non valide).
Ce qu'il faut c'est qu'il trouve dans la colonne 1 du classeur la valeur qui correspond à celle du classeur principal. Peut-être avec une fonction match mais je ne sais pas l'utiliser...
Je pense que je suis pas loin... Si vous aviez une idée ce serait super.
Merci d'avance!
J'ai fini par y arriver je ne sais trop comment, avec ce code, en espérant que ça puisse servir :
Dim i As Integer
Dim cell_test As String
Dim line As Integer
Dim reference() As String
Sub line_count()
line = -1
Do
line = line + 1
cell_test = Cells(line + 1, 1)
Loop Until cell_test = ""
End Sub
Sub recherche()
Dim Trouve As Range, PlageDeRecherche As Range
Dim AdresseTrouvee As String
ReDim reference(line)
Dim i As Integer
For i = 1 To line
Set PlageDeRecherche = ActiveSheet.Columns(1)
Set Trouve = Workbooks("Essaicode.xlsx").Sheets("Feuil1").Cells.Find(what:=Cells(i, 1), LookAt:=xlWhole)
Cells(i, 10) = Trouve.Address
Next i
End Sub
Sub LienTest()
Dim lien As String
Dim myCell As Range
Dim myRng As Range
With ActiveSheet
Set myRng = .Range([A1], .Cells(.Rows.Count, 1).End(xlUp))
End With
For Each myCell In myRng.Cells
lien = myCell.Value
ActiveSheet.Hyperlinks.Add Anchor:=myCell.Offset(0, 1), Address:="C:\Users\U47013\Desktop\EssaiCode.xlsx", SubAddress:= _
"'" & Workbooks("EssaiCode.xlsx").Sheets("Feuil1").Name & "'!" & Cells(myCell.Row, 10), TextToDisplay:=" " & Cells(myCell.Row, 1)
Next myCell
End SubSachant que classeur1 est ma table principale et essaicode une autre table qui contient les références.