Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Décaler code dans une ligne

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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"
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
176
Réponses
5
Affichages
265
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…