XL 2013 Décaler code dans une ligne

pascalpetanque

XLDnaute Nouveau
Bonjour,
j'ai 2 modif à apporter à ce code. je souhaiterai commencer à la ligne 5 (en A5). Comment faire ? Et concernant la mise en forme je voudrait encadrer uniquement les cellules pleine de la colonne C à G sachant que le nombre en colonne A est modifiable
Merci de votre aide
 

Pièces jointes

  • Decale.xlsm
    16.3 KB · Affichages: 10

Dranreb

XLDnaute Barbatruc
Bonjour
L'ensemble étant préalablement décalé vers le bas de 4 lignes, ces formules vous conviendraient-elles pour le nombre de lignes actuel ?
En C5, à propager sur 10 lignes :
Code:
=INDEX($A$5:$A$23;(LIGNE()-5)*2+1)
En F5, à propager sur 9 lignes :
Code:
=INDEX($A$5:$A$23;(LIGNE()-4)*2)
En G5, à propager sur 10 lignes :
Code:
=A5
Si c'est le cas il ne resterait qu'à rendre variables certains détails dans ça :
VB:
Feuil1.[C5:C14].FormulaR1C1 = "=INDEX(R5C1:R23C1,(ROW()-5)*2+1)"
Feuil1.[F5:F13].FormulaR1C1 = "=INDEX(R5C1:R23C1,(ROW()-4)*2)"
Feuil1.[G5:G14].FormulaR1C1 = "=RC1"
 

pascalpetanque

XLDnaute Nouveau
Private Sub Worksheet_Change(ByVal Target As Range)
Dim tablo, i&
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
If FilterMode Then ShowAllData 'si la feuille est filtré
[C:E].ClearContents 'RAZ
With [A1].CurrentRegion.Resize(, 7)
tablo = .Formula
For i = 1 To Application.RoundUp(UBound(tablo) / 2, 0)
tablo(i, 3) = "=A" & 1 + 2 * (i - 1)

tablo(i, 6) = "=A" & 2 * i
tablo(i, 7) = "=A" & 1 + 1 * (i - 1)
Next
.Formula = tablo
End With
Application.EnableEvents = True 'réactive les évènements
End Sub
 

Dranreb

XLDnaute Barbatruc
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
   Dim NbL As Long, AdrA As String
   NbL = Me.[A1000000].End(xlUp).Row
   AdrA = "R5C1:R" & NbL & "C1"
   NbL = NbL - 4
   Application.ScreenUpdating = False
   Application.EnableEvents = False 'désactive les évènements
   If FilterMode Then ShowAllData 'si la feuille est filtré
   [C:F].ClearContents 'RAZ
   Me.[C5].Resize((NbL + 1) \ 2).FormulaR1C1 = "=INDEX(" & AdrA & ",(ROW()-5)*2+1)"
   Me.[F5].Resize(NbL \ 2).FormulaR1C1 = "=INDEX(" & AdrA & ",(ROW()-4)*2)"
   Application.EnableEvents = True 'réactive les évènements
   End Sub
 

Discussions similaires

Réponses
5
Affichages
292

Statistiques des forums

Discussions
315 168
Messages
2 116 931
Membres
112 922
dernier inscrit
Lobo-ASTUTO