Sub ResizeEtOffset()
' Le Classeur Test 2 / La Feuille 1 / Une Plage défini
Dim Wkb As Workbook
Dim Wks As Worksheet
    Set Wkb = Workbooks("Resize et Offset.xlsm")
    Set Wks = Wkb.Worksheets("Feuil1")
' Une Plage défini Colonne I2 (Ligne 2 / colonne I) à M100 (Lignes 100 / colonne M)
Dim Rgn As Range
    Set Rgn = Wks.Range("A1:E100")
' On Commence les Tests
' ActiveCell sera dans ce cas la cellule active choisie dans
'            Le Classeur Resize et Offset.xlsm" de la Feuille 1
'            Pour le Test on Choisie la H1'
' Récupérer les donner du Classeur Test2 de la Feuille 1 qui sont les valeurs de cette plage
' "A1:E100"
'
' Avec ----->>>>   RESIZE
'
'
' Pour le test
'
' Nettoyage de la zone
'
'
    Cells(1, 8).Offset(, -1).Resize(43, 7).Select
    MsgBox "Cells(1, 8).Offset(, -1).Resize(43, 7).Address " & vbCrLf & Cells(1, 8).Offset(, -1).Resize(43, 7).Address
    Cells(1, 8).Offset(, -1).Resize(43, 7).ClearContents
'
'
' La premiére cellule sera H1
'
 Cells(1, 8).Select ' H1 pour ActiveCell
'
'
' Je souhaite récupérer la premiéres Lignes (1) à la Lignes (10) de la colonnes (A)
'       Resize(10,1)
'              10 = 10 lignes de la Premiére Ligne à la 10éme Ligne ---->>> par rapport a "A1"
'               1 = 1   Colonnes de la Premiére colonne à la premiére colonnes ---->>> par rapport a "A1"
        ActiveCell.Resize(10, 1).Value = Rgn.Value ' Les 10 premiéres Lignes de la premiére (1) Colonnes (A)
'        ActiveCell.Resize(10, 1).ClearContents
'
'
' Cette Fois
'
'
 ActiveCell.Offset(, 2).Select  ' Decalage de 2 Colonnes
'
'
' Je souhaite récupérer la premiéres Lignes (1) à la Lignes (10) de la colonnes (A à D)
'       Resize(10,4)
'              10 = 10 lignes de la Premiére Ligne à la 10éme Ligne ---->>> par rapport à "A1"
'               4 = 4  Colonnes de la Premiére colonne à la colonnes 4 ---->>> par rapport à "A1"
        ActiveCell.Resize(10, 4).Value = Rgn.Value ' 10 premiéres Lignes sur 3 Colonnes
'        ActiveCell.Resize(10, 4).ClearContents
'
'
'
 ActiveCell.Offset(12, -3).Select  ' Decalage de 11 Lignes avec un décalage de 3 Colonnes vers la gauche
'
'
' Mais maintenat je veux de la colonne C et D Comment Faire - ?
' C'est la que Offset arrive !!
'
'
' Je souhaite récupérer la premiéres Lignes (1) à la Lignes (10) de la colonnes (C à D )
' Alors :
'       Resize(10,2)
'              10 = 10 lignes de la Premiére Ligne à la 10éme Ligne ---->>> par rapport à "A1"
'               2 = 2  Colonnes de la Premiére colonne à la colonnes 2 ---->>> par rapport à "A1"
' Puis :
'      : Offset(0, 2) dans l'exemple : "A1:E100" - "A1" est la premiére cellule référence de la plage
'                0 = aucun décalage pour les lignes par rapport a "A1"
'                2 =   2   décalages de colonnes par rapport à "A1" soit 2 décalages commence à "C2"
        ActiveCell.Resize(10, 2).Value = Rgn.Offset(0, 2).Value ' 10 premiéres Lignes sur 2 Colonnes
'        ActiveCell.Resize(10, 2).ClearContents
'
'
'
 ActiveCell.Offset(, 4).Select  ' Decalage de 0 Lignes avec un décalage de 4 Colonnes vers la droite
'
'
'
'
' Maintenant je souhaite récupérer après la premiére ligne de cette plage "A1:E100"
'
'            Je souhaite récupérer de la la ligne 11 à la Ligne 20, Mais sur les colonne B à D
'
'
' Je souhaite récupérer de Lignes (11) à la Lignes (20) sur la colonnes (B à D )
' Alors :
'       Resize(10,3)
'              10 = 10 lignes de la 11éme Lignes à la 20éme Ligne ---->>> par rapport à "A1"
'               3 = 3  Colonnes de la 2éme colonnes à la colonnes 4éme ---->>> par rapport à "A1"
' Puis :
' Alors : Offset(10, 1) dans l'exemple : "A1:E100" - "A1" est la premiére cellule référence de la plage
'                10 = 10   décalage pour les lignes par rapport a "A1"
'                1 =   1   décalages de colonnes par rapport à "A1" soit 1 décalages commence à "B2"
        ActiveCell.Resize(10, 3).Value = Rgn.Offset(10, 1).Value ' Lignes 11 Lignes à la Ligne 20 sur 2 Colonnes
'        ActiveCell.Resize(10, 3).ClearContents
'
'
'
 ActiveCell.Offset(12, 0).Select  ' Decalage de 11 Lignes avec un décalage de 0 Colonnes vers la droite
'
'
' Je souhaite récupérer la Lignes (8) à la Lignes (8) sur la colonnes (B à D )
' Alors :
'       Resize(1,3)
'              1 = 1 lignes de la 8éme Lignes à la 8éme Ligne ---->>> par rapport à "A1"
'              3 = 3  Colonnes de la 2éme colonnes à la colonnes 4éme ---->>> par rapport à "A1"
' Alors : Offset(7, 1) dans l'exemple : "A1:E100" - "A1" est la premiére cellule référence de la plage
'                7 =   7   décalage pour les lignes par rapport a "A1"
'                1 =   1   décalages de colonnes par rapport à "A1" soit 1 décalages commence à "B2"
        ActiveCell.Resize(1, 3).Value = Rgn.Offset(7, 1).Resize(1, 1).Value ' Lignes 11 Lignes à la Ligne 20 sur 2 Colonnes
'        ActiveCell.Resize(1, 3).ClearContents
'
'
'
'
 ActiveCell.Offset(3, -4).Select  ' Decalage de 2 Lignes avec un décalage de 4 Colonnes vers la Gauche
'
'
'
'  Maintenant récupérer une plage au Milieux de cette plage
'  L'exemple
'  Plage a récupérer dans la plage "A1:E100"
'
'
'   Plage a récupérer est "B14:D29"
'
'
'  Il Faut Appliquer 2 RESIZE Maintenant ci dessous
'
'
' Je souhaite récupérer la Lignes (14) à la Lignes (29) sur la colonnes (B à D )
' Alors : soit (Lignes 29 - Lignes 14) = (15 + 1) soit (16 Lignes) sur 3 Colonnes
'       Resize(16,3)
'              16 = 16 lignes de la 14éme Lignes à la 29éme Lignes ---->>> par rapport à "A1"
'              3 = 3  Colonnes de la 2éme colonnes à la colonnes 4éme ---->>> par rapport à "A1"
' Alors : Offset(13, 1) dans l'exemple : "A1:E100" - "A1" est la premiére cellule référence de la plage
'                13 =   13   décalage pour les lignes par rapport a "A1"
'                1 =   1   décalages de colonnes par rapport à "A1" soit 1 décalages commence à "B2"
        ActiveCell.Resize(16, 3).Value = Rgn.Offset(13, 1).Resize(16, 3).Value ' Lignes 11 Lignes à la Ligne 20 sur 2 Colonnes
'        ActiveCell.Resize(16, 3).ClearContents
' Etc.
End Sub