lien pour ouvrir un classeur EXCEL sur une valeur de cellule variable

Phareouest

XLDnaute Nouveau
Bonjour,

j'ai un petit problème que je n'arrive pas à résoudre...
J'ai 2 classeurs EXCEL. Dans chacun des classeurs, j'ai la colonne "A" où l'on retrouve les mêmes valeurs mais sur des lignes qui peuvent différer.
Je souhaiterais créer un lien qui me permettrait en cliquant sur une valeur du classeur EXCEL1 (ou sur un bouton) d'ouvrir le classeur EXCEL2 sur la même valeur.
Le lien à créer peut être un lien hypertexte ou une macro, ça m'est égal.
Ai-je été assez clair ?

Ci-joint les fichiers "alléger" en cause

Merci pour vos réponses
 

Pièces jointes

  • Prog TX Investissement .xlsx
    21.7 KB · Affichages: 43
  • Suivi affaires.xlsm
    15.5 KB · Affichages: 35

Theze

XLDnaute Occasionnel
Re : lien pour ouvrir un classeur EXCEL sur une valeur de cellule variable

Bonsoir,

Une piste, à mettre dans le module de la feuille "Prog 2012" et faire un double clic dans une cellule de la colonne A :
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    Dim Classeur As Workbook
    Dim Plage As Range
    Dim Cel As Range
    
    'si dans la colonne A
    If Not Intersect(Target, Range("A:A")) Is Nothing Then
        
        'si pas vide
        If Target.Value <> "" Then
            
            'évite la boite de message si déjà ouvert
            Application.DisplayAlerts = False
            
            'évite l'erreur si classeur déjà ouvert
            On Error Resume Next
            Set Classeur = Workbooks.Open(ThisWorkbook.Path & "\Suivi affaires.xlsm")
            
            Application.DisplayAlerts = True
            
            'si ouvert, l'affecte à la variable
            If Err.Number <> 0 Then Set Classeur = Workbooks("Suivi affaires.xlsm")
            
            'défini la plage de recherche
            With Classeur.Worksheets("Suivi")
             
                Set Plage = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)) 'de A1 à Ax
            
            End With
            
            'effectue la recherche
            Set Cel = Plage.Find(Target.Value, , xlValues, xlWhole)
            
            'si trouvé, active le classeur et sélectionne la cellule
            'sinon, réactive ce classeur
            If Not Cel Is Nothing Then
                
                Cel.Select
            Else
            
                ThisWorkbook.Activate
                
            End If
            
            
        End If
        
    End If

End Sub

Hervé.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 107
dernier inscrit
cdel