Bonjour a tous !

J'ai essaye de creer une petite macro qui permet de copier une plage provenant d'un autre fichier et de la coller dans la deuxieme feuille du fichier de la macro. Malheureusement, j'ai un petit probleme...
Je ne comprends pas pourquoi ceci ne fontionne pas:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Sub copyData()
 
    Dim ws As Worksheet
    Dim copyRange As Range
    Dim startingCell, lastCell As Range
 
 
    Set ws = ActiveWorkbook.Sheets(2)
 
    'select file
    On Error Resume Next
    wbName = Application.GetOpenFilename(FileFilter:="(*.xls* ),*.slsx" _
                , Title:="Select workbook")
    If wbName = False Then
        Exit Sub
    End If
 
    Workbooks.Open (wbName)
 
        'Selecting range to copy: from A5 to last cell column - 2 (ex.: last cell is D7, we will copy from A5 to B7)
        Set lastCell = Cells(100000, 1).End(xlUp)
        Set lastCell = Range(lastCell.Address).End(xlToRight).Offset(0, -2)
        Set startingCell = Range("A5")
        Set copyRange = Range(startingCell.Address, lastCell.Address)
 
    copyRange.Copy ws.Range("A1")
exitSub:
    ActiveWorkbook.Close
    'ws.Cells.ClearFormats
    ws.Columns.EntireColumn.AutoFit
 
End Sub
alors que ceci fontionne (meme methode de copie sauf que pas sur un autre fichier mais sur la feuille active):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Sub test()
        Set ws = ActiveWorkbook.Sheets(2)
 
        Set lastCell = Cells(100000, 1).End(xlUp)
        Set lastCell = Range(lastCell.Address).End(xlToRight).Offset(0, -2)
        Set startingCell = Range("A5")
        Set copyRange = Range(startingCell.Address, lastCell.Address)
 
        copyRange.Copy ws.Range("A1")
End Sub
Dans le premier code j'ai enleve toute gestion d'erreur pour essayer de comprendre, visiblement le programme ignore juste toutes les instructions concernant lastCell, cad j'ai essaye de mettre des Msgbox lastCell.Value et ca ne m'affichait rien (pas une msgbox vide, non, juste pas de msgbox du tout), alors que ca fonctionne niquel avec un msgbox startingCell.Value. Et le programme continuait jusqu'a la fin, il ne m'envoyait aucun message d'erreur.

Pourrait-on m'eclairer s'il vous plait?

Merci d'avance !

(et desole mais je n'ai pas d'accents sur mon clavier !)