Bonjour le fil, bonjour le forum,
En pièce jointe ton fichier modifié avec la macro événementielle BeforeDoubleClick. Double-clique sur n'importe quelle cellule de la ligne 1...
Le code :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim CD As Workbook 'déclare la variable CD (Classeur Destination)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim CA As String 'déclare la variable CA (Chemin d'Accès)
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim OS As Worksheet 'déclare la variable OD (Onglet Source)
If Target.Row <> 1 Then Exit Sub 'si le double-clis a lieu ailleurs que dans la ligne 1, sort de la procédure
Cancel = True 'enmpêche le mode [Édition] lié au double-clic
Application.ScreenUpdating = False 'masque les raffraÎchissements d'écran
Set CD = ThisWorkbook 'définit le classeur destination CD
Set OD = Me 'définit l'onglet destination OS
CA = CD.Path & "\" 'définit le chemin d'accès CA
On Error Resume Next 'gestion des erreurs (en cas d'erreur passe à la ligne suivante)
Set CS = Workbooks("fichier-de-donnee-qui-est-mis-a-jour-chaque-12h.xlsx") 'définit le classeur source (génère une erreur si le classeur n'est pas ouvert)
If Err <> 0 Then 'condition : si une erreur a été générée
Err.Clear 'supprime l'erreur
Set CS = Workbooks.Open(CA & "fichier-de-donnee-qui-est-mis-a-jour-chaque-12h.xlsx") 'définit le classeur source en l'ouvrant
End If 'fin de la condition
On Error GoTo 0 'annule la gestion des erreurs
Set OS = CS.Worksheets("Sheet1") 'définit l'onglet Source
OS.Range("A2:C744").Copy OD.Range("A2") 'copie les colonnes A à C de l'onglet source et les colle dans A2 de l'onglet destination
OS.Range("D2:D744").Copy OD.Range("E2") 'copie la colonne D de l'onglet source et la colle dans E2 de l'onglet destination
OS.Range("E2:F744").Copy OD.Range("G2") 'copie les colonnes E à F de l'onglet source et les colle dans G2 de l'onglet destination
OS.Range("G2:G744").Copy OD.Range("J2") 'copie la colonne G de l'onglet source et la colle dans J2 de l'onglet destination
OS.Range("H2:H744").Copy OD.Range("M2") 'copie la colonne H de l'onglet source et la colle dans M2 de l'onglet destination
OS.Range("I2:I744").Copy OD.Range("O2") 'copie la colonne I de l'onglet source et la colle dans O2 de l'onglet destination
OS.Range("J2:J744").Copy OD.Range("Q2") 'copie la colonne J de l'onglet source et la colle dans S2 de l'onglet destination
OS.Range("K2:K744").Copy OD.Range("S2") 'copie la colonne K de l'onglet source et la colle dans S2 de l'onglet destination
OS.Range("L2:L744").Copy OD.Range("U2") 'copie la colonne L de l'onglet source et la colle dans U2 de l'onglet destination
CS.Close False 'ferme le classeur source sans enregistrer
Application.ScreenUpdating = True 'affiche les raffraÎchissements d'écran
End Sub
Le fichier (devenu xlsm à cause de la macro):