Determiner une plage de cellule avec variable

Bonjour,

Je souhaiterais déterminer avec des variables une plage de cellule (12col sur 3lignes) afin de la copier.
le point de départ de cette cellule est variable (B7 ou B8 ou B12 ou c14...etc) mais les 12 lignes sur 3 collones sont obligatoire.*

Je pense pouvoir partir de quelque chose comme suit :

Dim vCell1 As Variant 'Cellule du tableau en haut à gauche
Dim vCell2 As Variant 'Cellule du tableau en bas à droite
Dim vPlage As Range 'plage de cellule du tableau

With ActiveSheet
vCell1 = ActiveCell
vCell2 = vCell1 + 12
vPlage = Cells(vCell1 & vCell2).Select

End With

Ce code ne marche pas
Merci pour votre aide

2 réponses

  1. Bonjour,

    Voici un code simple :
    Sub Test() 
    Dim vPlage As Range 'plage de cellule du tableau 
    
      Set vPlage = ActiveCell.Resize(12, 3) 
    
      ' Pour copier la plage, pas besoin de la selectionner 
      vPlage.Copy Destination 
       
      ' Pour sélectionne la plage : 
      vPlage.Select 
    
    
    End Sub 
    

    Cordialement
    Patrice
    0
    1. Modérateur
      Bonjour,
      1- pour déclarer tes variables, mieux vaux prendre le bon type. Ici cellule et plage sont de type "Range"
      2- Utiliser Offset permet le décalage de lignes et colonnes qui définissent la plage
      3- essaie ce code :
      Sub test()
      'déclaration des variables de type Range
      Dim plage As Range
      Dim Cellu As Range
      'affectation aux variables de leur valeur respective
      'Cellu = cellule active
      Set Cellu = ActiveCell
      'plage = range(cellule active, cellule active décalée de 12 lignes et 3 colonnes
      Set plage = Range(Cellu, Cellu.Offset(12, 3))
      'message à l'utilisateur : adresse de la plage
           MsgBox plage.Address
      'remise à zéro des variables
      Set Cellu = Nothing
      Set plage = Nothing
      'fin de la préocédure
      End Sub

      Tu dis
      0
      1. Merci, ça me parait une bonne piste..
        j'étudirais cela demain.......je doit partir
        Bonne soirée
        P M
        0
      2. Modérateur
        Une meilleure piste me semble être la proposition de Patrice...
        0