Double clic sur une cellule pour lancer un lien (j'ai PRESQUE une réponse)

Salut à tous,

alors il y a quelque temps j'ai voulu enlever le fait qu'un clic simple sur une cellule de mon tableau ouvre le lien contenu dans une cellule, c'était trop contraignant étant donné que je devais faire attention à où je clique pour ne pas ouvrir une autre fenetre par hasard.

Du coup j'ai fais une macro qui recupere tout les liens qu'il y a dans mon workbook, qui les archive dans un tableau dans une feuille cachée tel qu'il suit et qui supprime des cellules qui les contenaient, il me restait donc plus que le texte brut dans ma feuille principale (donc plus besoin de faire attention où je clique)

image

Ensuite dans mon Private Sub Worksheet_BeforeDoubleClick j'ai voulu ajouter cette macro qui fonctionne lorsque je la lance dans un module mais qui ne fonctionne pas dans mon private sub, est ce que quelqu'un saurait pourquoi ?

If Not Intersect(Target, Range("I:I, K:K, M:M, D:D")) Is Nothing Then _
    Cancel = True: _
    LienL = Sheets("Liens").Cells(Rows.Count, 1).End(xlUp).Row

    'MyRange = tableau ou j'archive tout les liens présents dans mon tableau
    Set MyRange = Range(Sheets("Liens").Cells(2, 1), Sheets("Liens").Cells(LienL, 1))
    For Each cell In MyRange

    'si une des cellules de mon tableau de lien contient le meme texte que la case sur laquelle je double click alors lance le lien correspondant à ce texte (la case de droite)
    If cell Like Target Then
    ThisWorkbook.FollowHyperlink (Sheets("Liens").Range(cell.Address).Offset(0, 1))
    End If

    Next cell

Merci d'avance pour le ou les sauveurs qui pourront m'aider !!

Hello,

Peux -tu m'expliquer ce qu'est sensé faire cette ligne :

If Not Intersect(Target, Range("I:I, K:K, M:M, D:D")) Is Nothing Then _
    Cancel = True:

+ précisément le

Cancel = True:

De + peux tu m'expliquer pourquoi tu utilises un underscore après le Then ?

Merci

Merci pour ta réponse !
J'ai enlevé les underscore mais en gros ils servaient a faire en sorte que les 3 lignes de commandes fassent comme si c'était une seule et meme ligne, ça permet d'ecrire un if sur 3 lignes sans mettre de end if a la fin

Par exemple

If Not Intersect(Target, Range("A:A, O:O, Q:Q, S:S")) Is Nothing Then _
    Cancel = True: _
    If Target = "" Then Target = Date

va ecrire la date d'auj si double click sur une case vide dans les colonnes A O Q et S.

Cancel = true sert a annuler le fait que je rentre dans la cellule après avoir double cliquer dedans.

je ne peux pas edit mon premier message alors j'ajoute ça ici : voila un fichier anonymisé pour que vous puissiez voir !!

Merci :)

ils servaient a faire en sorte que les 3 lignes de commandes fassent comme si c'était une seule et meme ligne

Ok c'est particulier comme façon de faire.

Cancel = true sert a annuler le fait que je rentre dans la cellule après avoir double cliquer dedans.

C'est bien ce qu'il me semblait

Juste un conseil, évite les :

On Error Resume Next

en début de procédure ... tu risques d'avoir de sacrés surprises ...

ton erreur est ici

    Set MyRange = Sheets("Liens").Range(Sheets("Liens").Cells(2, 1), Sheets("Liens").Cells(LienL, 1))
Rechercher des sujets similaires à "double clic lancer lien presque reponse"