Sommaire dynamique vers des cellules du classeur
Bonjour à tous,
Voilà, je ne suis pas un expert en VBA, loin de là. Je me crée à titre professionnel une application sous excel.
J'ai réussi à construire quelques macros intéressantes, mais là je bloque.
J'aurai eu besoin de générer sur la page d'accueil un sommaire dynamique (liens hypertexte), qui se complète en fonction de la validation ou non d'une cellule. En clair, si ladite cellule détient la valeur "VALIDE", elle vient s'ajouter au sommaire sous la forme d'un lien hypertexte (dont le nom est défini par la cellule voisine à celle portant la valeur "VALIDE"). Ces cellules "VALIDE" correspondant à des fiches de saisie différentes, elles peuvent se trouver "n'importe où" dans le classeur.
Je dispose du code suivant, qui fait la même chose, mais uniquement sur les onglets:
Private Sub Worksheet_Activate()
Range("C6").Select
Range(ActiveCell, [C65000].End(xlUp)).ClearContents
For i = 2 To Sheets.Count
nf = Sheets(i).Name
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="'" & _
nf & "'" & "!A" & Sheets(i).[A65000].End(xlUp).Row, TextToDisplay:=nf
ActiveCell.Offset(1, 0).Select
Next i
End Sub
Je ne sais pas si je me suis bien fait comprendre...mais j'espère que vos connaissances majeures m'aideront!
Bonjour et bienvenue sur ce forum,
Le mieux serait de voir ton fichier car il faudra adapter le code en question.
Cela permettra de mieux comprendre ton problème.
Amicalement
Dan
Edit: remplace ton code par celui ci-après :
Private Sub Worksheet_Activate()
'Dan pour fm14 - xl pratique le 12/11/08
'http://www.excel-pratique.com/forum/posting.php?mode=editpost&p=47036
Dim nf As String
Dim i As Byte, j As Byte
Range(Range("C6"), Range("C65536").End(xlUp)).ClearContents
For i = 2 To Sheets.Count
nf = Sheets(i).Name
With Sheets(nf)
For j = 1 To .Range("A65536").End(xlUp).Row
If .Range("A" & j) = "Valide" Then
ActiveSheet.Hyperlinks.Add Anchor:=Range("C" & j + 5), Address:="", SubAddress:="'" & _
nf & "'" & "!B" & j, TextToDisplay:=nf & "'" & "!B" & j
ActiveCell.Offset(1, 0).Select
End If
Next j
End With
Next i
End SubCode à placer dans la feuille où tu veux mettre tes liens hypertexte.
On suppose que le mot VALIDE est situé en colonne A et la valeur en colonne B.
Amicalement
Dan
Nad-Dan a écrit :Bonjour et bienvenue sur ce forum,
Le mieux serait de voir ton fichier car il faudra adapter le code en question.
Cela permettra de mieux comprendre ton problème.
Amicalement
Dan
Edit: remplace ton code par celui ci-après :
Private Sub Worksheet_Activate() 'Dan pour fm14 - xl pratique le 12/11/08 'http://www.excel-pratique.com/forum/posting.php?mode=editpost&p=47036 Dim nf As String Dim i As Byte, j As Byte Range(Range("C6"), Range("C65536").End(xlUp)).ClearContents For i = 2 To Sheets.Count nf = Sheets(i).Name With Sheets(nf) For j = 1 To .Range("A65536").End(xlUp).Row If .Range("A" & j) = "Valide" Then ActiveSheet.Hyperlinks.Add Anchor:=Range("C" & j + 5), Address:="", SubAddress:="'" & _ nf & "'" & "!B" & j, TextToDisplay:=nf & "'" & "!B" & j ActiveCell.Offset(1, 0).Select End If Next j End With Next i End SubCode à placer dans la feuille où tu veux mettre tes liens hypertexte.
On suppose que le mot VALIDE est situé en colonne A et la valeur en colonne B.
Amicalement
Dan
Impeccable, tu as résolu le pb merci!