Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

insérer ligne en-dessous : Pb de formules

5 réponses
Avatar
Sunburn
Bonjour,
j'ai une macro pour insérer une ligne en dessous de la ligne active, en
reprennant les formule.
Mais le hic, c'est que mes formules de la ligne en dessous sont alors fausses.
En effet, exemple :
A4 : =A3+1
A5 : =A4+1
A6 : =A5+1
quand j'insère une ligne en-dessous de A5, j'ai ceci:
A4 : =A3+1
A5 : =A4+1
A6 : =A5+1 (nouvelle ligne)
A7 : =A5+1 (ancienne ligne A6)
moi je veux que ma suite continue, qu'en A7 j'ai A6+1
Je vous met ci-après ma macro.
YANN
-------
Sub NouvelleLigneEnDessous()
'pour ajouter une ligne en-dessous de la ligne active, avec reprise des
formules
Dim ZtNumLig As Integer
Dim ZtDerCol As Integer
ActiveCell.Range("A2").EntireRow.Insert
ZtNumLig = ActiveCell.Row
ZtDerCol = ActiveCell.SpecialCells(xlCellTypeLastCell).Column
Range(Cells(ZtNumLig, 1), Cells(ZtNumLig, ZtDerCol)).Copy _
Range(Cells(ZtNumLig + 1, 1), Cells(ZtNumLig + 1, ZtDerCol))
Application.ScreenUpdating = False
For i = 1 To ZtDerCol
If Not Cells(ZtNumLig + 1, i).HasFormula Then
Cells(ZtNumLig + 1, i).ClearContents
End If
Next i
ActiveCell.Range("A2").Select
End Sub
-------

5 réponses

Avatar
Youky
Bonjour,
Pourquoi ne pas remplacer la formule en A4 £+1
par
=INDIRECT("A" & LIGNE()-1)+1

Youky
Avatar
Sunburn
C'est exact, je ne connaissais pas, mais c'est nikel.
par contre, j'ai sur cette meme ligne, une formule qui fait des additions
dans la ligne, et qui reprend 2 infos de la ligne précédente.
Comment modifier ma formule pour obtenir le meme resultat que ce que tu m'as
donné ?
---
j'ai ça pour la ligne 18 :
=SI(L18+M18-N18-O18-P18+R17+S17>0;L18+M18-N18-O18-P18+R17+S17;0)
----
donc peut etre dans ce style, non ? :
=SI(L18+M18-N18-O18-P18+(indirect("R"1 & ligne()-1)+1)+(indirect("S"1 &
ligne()-1)+1)>0;L18+M18-N18-O18-P18+R17+S17;0)
--------

"Youky" a écrit :

Bonjour,
Pourquoi ne pas remplacer la formule en A4 £+1
par
=INDIRECT("A" & LIGNE()-1)+1

Youky





Avatar
FFO
Salut à toi

Je viens d'essayer ton code il fonctionne tel que tu le souhaites
A6 = A5+1
A7 = A6+1

il devrait en être de même pour toi

Sinon transmets nous ton fichier que l'on fasse des essais
Avatar
Youky
=SI(L18+M18-N18-O18-P18+INDIRECT("R" & LIGNE()-1) + INDIRECT("S" &
LIGNE()-1)-1>0;......et la suite
Ligne() ........renvoie le N° de la ligne et Ligne()-1 la ligne avant
Youky


"Sunburn" a écrit dans le message de
news:
C'est exact, je ne connaissais pas, mais c'est nikel.
par contre, j'ai sur cette meme ligne, une formule qui fait des additions
dans la ligne, et qui reprend 2 infos de la ligne précédente.
Comment modifier ma formule pour obtenir le meme resultat que ce que tu
m'as
donné ?
---
j'ai ça pour la ligne 18 :
=SI(L18+M18-N18-O18-P18+R17+S17>0;L18+M18-N18-O18-P18+R17+S17;0)
----
donc peut etre dans ce style, non ? :
=SI(L18+M18-N18-O18-P18+(indirect("R"1 & ligne()-1)+1)+(indirect("S"1 &
ligne()-1)+1)>0;L18+M18-N18-O18-P18+R17+S17;0)
--------

"Youky" a écrit :

Bonjour,
Pourquoi ne pas remplacer la formule en A4 £+1
par
=INDIRECT("A" & LIGNE()-1)+1

Youky







Avatar
Sunburn
Ok, ça fonctionne, je te remercie.
yann

"Youky" a écrit :

=SI(L18+M18-N18-O18-P18+INDIRECT("R" & LIGNE()-1) + INDIRECT("S" &
LIGNE()-1)-1>0;......et la suite
Ligne() ........renvoie le N° de la ligne et Ligne()-1 la ligne avant
Youky


"Sunburn" a écrit dans le message de
news:
> C'est exact, je ne connaissais pas, mais c'est nikel.
> par contre, j'ai sur cette meme ligne, une formule qui fait des additions
> dans la ligne, et qui reprend 2 infos de la ligne précédente.
> Comment modifier ma formule pour obtenir le meme resultat que ce que tu
> m'as
> donné ?
> ---
> j'ai ça pour la ligne 18 :
> =SI(L18+M18-N18-O18-P18+R17+S17>0;L18+M18-N18-O18-P18+R17+S17;0)
> ----
> donc peut etre dans ce style, non ? :
> =SI(L18+M18-N18-O18-P18+(indirect("R"1 & ligne()-1)+1)+(indirect("S"1 &
> ligne()-1)+1)>0;L18+M18-N18-O18-P18+R17+S17;0)
> --------
>
> "Youky" a écrit :
>
>> Bonjour,
>> Pourquoi ne pas remplacer la formule en A4 £+1
>> par
>> =INDIRECT("A" & LIGNE()-1)+1
>>
>> Youky
>>
>>
>>