Formule plage.offset vba

Résolu
Bonjour,

Je voudrais étendre la formule de la cellule cible (plage .offset(-2,0) jusqu'à "ET7"
tout en sachant que " plage" est une variable;

merci de votre aide



dim plage as range

plage.Offset(-2, 0).Select

Selection.AutoFill Destination:=Range("plage.Offset(-2, 0):ET7"), Type:=xlFillDefault



3 réponses

  1. Bonjour

    A adapter (en supposant que plage représente une cellule)

    Dim plage As Range
    Set plage = Range("B5").Offset(-2, 0)
    plage.AutoFill Destination:=Range(plage.Address & ":B20"), Type:=xlFillDefault

    Cdlmnt
    0
    1. Grand grand merci à toi , j'ai réussi à adapter le code et cerise sur le gateau j'y ai associé une boucle pour fusionner les valeurs identiques .
      je te laisse voir le code et me le corriger s'il ya des redondances ou circuits plus courts.
      merci beaucoup


      sub cycle
      Dim plage As Range
      Dim ror As Range

      For Each plage In Range("$I$9:$p$9")
      With plage
      If plage.Value = "LU" Then
      Set plage = .Offset(0, 0)
      Set ror = plage.Offset(-2, 0)

      plage.Offset(-2, 0).FormulaLocal = "=SI(f7<MAX($C:$C);f7+1;1)"

      ror.Select
      ror.AutoFill Destination:=Range(ror.Address & ":ei7"), Type:=xlFillDefault
      Else
      End If
      End With
      Next
      Dim ii As Long
      For ii = .Cells(7, .Columns.Count).End(xlToLeft).Column To 2 Step -1
      If UCase(.Cells(7, ii)) = UCase(.Cells(7, ii - 1)) Then
      .Cells(7, ii - 1) = ""
      .Range(Cells(7, ii), Cells(7, ii - 1)).Merge
      End If
      Next ii
      end sub
      0
      1. Quelques RQ

        Sub cycle()
        Dim plage As Range
        Dim ror As Range
        Dim ii As Long
        For Each plage In Range("$I$9:$p$9")
          With plage
            If plage.Value = "LU" Then
               ' Set plage = .Offset(0, 0)  ' utile ?
               Set ror = plage.Offset(-2, 0)
               plage.Offset(-2, 0).FormulaLocal = "=SI(f7<MAX($C:$C);f7+1;1)"
               ror.Select
               ror.AutoFill Destination:=Range(ror.Address & ":ei7"), Type:=xlFillDefault
            End If
          End With
        Next plage
        ' à partir de là, il y a un pb
        ' les points (.) devant Cells, Columns, ....
        ' suppose que ces objets sont des 'enfants' de ????
        ' il faudrait un With quelque chose, peut être un nom de feuille ?
        For ii = .Cells(7, .Columns.Count).End(xlToLeft).Column To 2 Step -1
          If UCase(.Cells(7, ii)) = UCase(.Cells(7, ii - 1)) Then
            .Cells(7, ii - 1) = ""
            .Range(Cells(7, ii), Cells(7, ii - 1)).Merge
          End If
        Next ii
        End Sub

        Cdlmnt
        1