Formule plage.offset vba

Résolu/Fermé
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 - 5 déc. 2015 à 11:14
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 - 5 déc. 2015 à 19:11
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

ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
5 déc. 2015 à 19:11
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
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
Modifié par ccm81 le 5/12/2015 à 14:42
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
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
5 déc. 2015 à 16:50
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