Option Explicit
Sub CopyVal()
Dim F_Source As Worksheet
Dim Target As Range, Zone As Range, ShortName As String, In_Box
Set F_Source = ThisWorkbook.Worksheets("Feuil1") ' <-- Classeur A
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.Title = "Sélection du Classeur Cible"
.InitialFileName = ThisWorkbook.Path & "\"
.Filters.Clear: .Filters.Add "Classeur Excel", "*.xls*"
If .Show Then
In_Box = InputBox("Indiquez la Cellule Cible" & vbLf & "du classeur à ouvrir", .SelectedItems(1), "H63")
If In_Box <> "" Then
ShortName = Mid(.SelectedItems(1), InStrRev(.SelectedItems(1), "\") + 1)
On Error Resume Next
If Workbooks(ShortName) Is Nothing Then Workbooks.Open .SelectedItems(1)
On Error GoTo 0
Set Target = Workbooks(ShortName).Worksheets("Feuil1").Range(In_Box) ' <-- Classeur B
For Each Zone In Union(F_Source.[P63:P74], F_Source.[P79:P90], F_Source.[P94:P105]).Areas
Target.Resize(Zone.Rows.Count).Select ' pour vérifier ce qui est ciblé, peut être enlevé
Target.Resize(Zone.Rows.Count).Value = Zone.Value
Set Target = Target.Offset(Zone.Rows.Count + 4)
Next
End If
End If
End With
End Sub