Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
j'ai réalisé un tableau avec une recherche rapide en haut de celui ci.
( =INDEX($A$7:$D12;EQUIV($A$6;$A$7:$A12;0);COLONNE(B$1)) ).
j'ai joint un lien hypertexte pour chaques références mais imposible de le lire, comment dois je procédé??
ensuite est ce possible que je fige mes 3 premières lignes, ainsi quand je descend dans le tableau, j'aurais toujours mes Titres (ligne 3)
Pour la partie hyperlink. A tester en collant ce code dans le module de la Feuil1.
Si la référence saisie en A5 a été trouvée, le lien est ouvert (enfin chez moi déjà).
Cordialement
KD
VB:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
If Target.Row = 5 And Target.Column = 1 Then
If Not IsError(Cells(5, 2)) Then
i = 9
Do
If Cells(i, 1) = Cells(5, 1) Then Worksheets("Feuil1").Range(Cells(9, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1)).Hyperlinks(i - 8).Follow
i = i + 1
If i > Cells(Rows.Count, 1).End(xlUp).Row Then Exit Do
Loop Until Cells(i, 1) = Cells(5, i)
End If
End If
End Sub
Edit : ajout d'une ligne pour éviter de se promener jusqu'en bas de la feuille quand la référence saisie n'est pas dans la liste...
j'ai une erreur dès que j'enregistre ce code.
"les fonctionnalités suivantes ne peuvent pas être enregistrées dans des classeurs sans macro: Projet VB
Pour enregistrer un fichier avec ses fonctionnalités, cliquez sur non. puis sélectionner un type de fichier prenant en charge les macros dans la liste type de fichier
pour continuer à enregistrer en tant que classeur sans macro cliquez sur oui "!!
merci ça marche!!
j'ai un autre tableau mais cela ne fonctionne pas, peux tu m'expliquer à quoi correspond chaque ligne pour que je puisse réussir sur mon second tableau. problème rencontré erreur d'éxécution "9" l'indice n'appartient pas à la sélection.
La macro marchera mais pourrait être lente si:
_ il y a des données parasites en colonne A qui ne font pas partie du tableau
La macro ne marchera pas, ou risque d'afficher un mauvais lien si:
_ Il y a des cellules colonne A du tableau qui n'ont pas de lien
(pour éviter ça je te propose une correction en fin de message)
Le code:
Cette macro se déclenchera quand il y aura un changement dans la feuille dont le module la contient.
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
On appellera i un entier relatif dont la valeur absolue peut aller jusque 2 147 483 647
VB:
Dim i As Long
Si la cellule qui a changée est A5 (Dans l'exemple particulier, cellule ou l'on saisit la valeur cherchée) alors exécuter les instructions qui suivent jusqu'au dernier End If
VB:
If Target.Row = 5 And Target.Column = 1 Then
Si la formule de la cellule ligne 5 colonne 2 n'est pas une erreur (dans l'exemple particulier cela veut dire que la valeur saisie à été trouvée) alors effectuer les instructions suivantes jusqu'à l'avant dernier end if
VB:
If Not IsError(Cells(5, 2)) Then
i prends la valeur du numéro de la 1ère ligne du tableau contenant les données)
VB:
i = 9
Début de boucle
VB:
Do
Si la cellule ligne i colonne A est égal à A5 alors, dans la zone, colonne A, qui va de la première ligne du tableau jusqu'à la fin du tableau, suivre le (i-8)ème lien.
VB:
If Cells(i, 1) = Cells(5, 1) Then Worksheets("Feuil1").Range(Cells(9, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1)).Hyperlinks(i - 8).Follow
On augmente la ligne d'étude en cours
VB:
i = i + 1
Si i dépasse la fin du tableau, sortir de la boucle
VB:
If i > Cells(Rows.Count, 1).End(xlUp).Row Then Exit Do
Marqueur de fin de boucle, on sort de la boucle si la cellule ligne i colonne A correspond à la valeur saisie en A5, sinon revenir au Do
VB:
Loop Until Cells(i, 1) = Cells(5, i)
Fermeture de la 2ème condition si
VB:
End If
Fermeture de la 1ère condition si
VB:
End If
Correction proposée:
remplacer:
VB:
Dim i As Long
par
VB:
Dim i As Long, R As Range
(on appelera R un objet représentant une plage de cellule)
Remplacer:
VB:
If Cells(i, 1) = Cells(5, 1) Then Worksheets("Feuil1").Range(Cells(9, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1)).Hyperlinks(i - 8).Follow
par:
VB:
If Cells(i, 1) = Cells(5, 1) Then
Set R = ActiveSheet.Range(Cells(i, 1), Cells(i, 1))
If R.Hyperlinks.Count > 0 Then R.Hyperlinks(1).Follow
End If
(la condition si ne change pas)
(la plage de cellule R sera la cellule ligne i colonne A)
(si il y a au moins un lien dans l'objet plage ouvrir le premier)
(Fermeture de la "ème condition si)
j'apprends de nombreuses choses intéressantes sur excel grâce au macro code formules etc!!!
merci pour ton aide!!! pour mon premier tableau tout fonctionne correctement. Cependant dans mon second tableau, ça fonctionne jusqu'au moment où j'ai une ligne de séparation. voir copie tableau !!
je n'ai pas constaté de dysfonctionnement dans avec le classeur fourni, j'ai testé les 6 lignes.. Peux tu joindre le fichier (données confidentielles remplacées par des données bidons mais significatives des données originales) posant souci. Et si il y a un message d'erreur décrit le en précisant la référence que tu as saisie lors de l'erreur (évidement si il fait des erreurs partout ce dernier point n'est pas essentiel 🙂 Si le fichier est trop gros pour le forum ( Cijoint.fr - Service gratuit de dépôt de fichiers )
j'essayerais le fichier lundi ou mardi !!! et je te tiens au courant de suite .
je voudrais savoir comment as tu appris tous ces codes formules macros etc sur excel, car je suis très intéressé et aimerais avancer d'avantage.
Ben l'aide d'Excel (qui était bien faite avant 2007 et reste utilisable), téléchargement de faqs, dossiers et tutoriels, un gros pavé de chez Wrox "Programmer's Reference" (dont je me suis surtout servi quand je n'avais pas internet, et des requêtes web du genre 'Excel vba cellule suivre hyperlink' ou 'Excel vba "dernière ligne"' pour prendre des exemples dans ton code.
voici mon second tableau, en effet j'ai des lignes vierges pour séparer des références. Si je rempli ces lignes vierges ca fonctionne.
Mais je préférerais laisser ses lignes vierges pour pouvoir mieux dissocier des références.
est ce que laisser des lignes vierges est ce possible avec cette formules??
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD