Bonjour; J'ai rentré un code qui me permet d'inserer des lignes dans un tableau ( entre la ligne de titre et la derniére ligne Total) sans définir à l'avance le nombre de ligne de mon tableau. Ce code est le suivant
Cependant si je me trompe sur une saisie, lorsque je corrige la cellule, les calculs ne s'actualisent pas. Quel code dois je rajouter pour que je puisse corriger ma ligne de saisie tout en conservant la fonctionnalité de mes formules.
Code:
ligne = .Range("B" & .Rows.Count).End(xlUp).Row
Set Tot = .Range("b11:b" & ligne).Find("TOTAL")
.Range("A" & Tot.Row).Insert Shift:=xlDown 'inserer ligne au dessus
.Range("A" & Tot.Row) = TextBox1.Text 'saisie date dans col A
.Range("B" & Tot.Row - 1).Insert Shift:=xlDown 'inserer ligne au dessus
.Range("B" & Tot.Row - 1) = "" 'blanc dans col B
.Range("C" & Tot.Row - 1).Insert Shift:=xlDown 'inserer ligne au dessus
.Range("C" & Tot.Row - 1) = CDbl(TextBox2.Text) 'saisie du texte dans col C
.Range("D" & Tot.Row - 1).Insert Shift:=xlDown 'inserer ligne au dessus
.Range("D" & Tot.Row - 1) = CDbl(TextBox3.Text) 'saisie du texte dans col D
.Range("E" & Tot.Row - 1).Insert Shift:=xlDown 'inserer ligne au dessus
.Range("E" & Tot.Row - 1) = .Range("D" & Tot.Row - 1) / .Range("D6") 'calcul ratio col E
.Range("F" & Tot.Row - 1).Insert Shift:=xlDown 'inserer ligne au dessus
.Range("F" & Tot.Row - 1) = .Range("D" & Tot.Row - 1) / .Range("C" & Tot.Row - 1) 'calcul ratio dans col F
.Range("G" & Tot.Row - 1).Insert Shift:=xlDown 'inserer ligne au dessus
If TextBox8.Text = "" Then
.Range("G" & Tot.Row - 1) = "N.C."
Else
.Range("G" & Tot.Row - 1) = CDbl(TextBox8.Text) 'saisie du texte dans col G
End If
.Range("H" & Tot.Row - 1).Insert Shift:=xlDown 'inserer ligne au dessus
If TextBox8.Text = "" Then
.Range("H" & Tot.Row - 1) = ""
Else
.Range("H" & Tot.Row - 1) = .Range("D5") - .Range("G" & Tot.Row - 1) 'calcul difference dans col H
End If
.Range("L" & Tot.Row - 1).Insert Shift:=xlDown 'inserer ligne au dessus
.Range("L" & Tot.Row - 1) = .Range("M" & Tot.Row - 1).Offset(-1, 0) 'reprend cellule M dans col L
.Range("M" & Tot.Row - 1).Insert Shift:=xlDown 'inserer ligne au dessus
.Range("M" & Tot.Row - 1) = CDbl(TextBox4.Text) 'saisie du texte dans col M
.Range("N" & Tot.Row - 1).Insert Shift:=xlDown 'inserer ligne au dessus
.Range("N" & Tot.Row - 1) = .Range("M" & Tot.Row - 1) - .Range("L" & Tot.Row - 1) 'calcul conso hhp N
.Range("O" & Tot.Row - 1).Insert Shift:=xlDown 'inserer ligne au dessus
.Range("O" & Tot.Row - 1) = .Range("P" & Tot.Row - 1).Offset(-1, 0) 'reprend cellule P dans col O
.Range("P" & Tot.Row - 1).Insert Shift:=xlDown 'inserer ligne au dessus
.Range("P" & Tot.Row - 1) = CDbl(TextBox5.Text) 'saisie du texte dans col P
.Range("Q" & Tot.Row - 1).Insert Shift:=xlDown 'inserer ligne au dessus
.Range("Q" & Tot.Row - 1) = .Range("P" & Tot.Row - 1) - .Range("O" & Tot.Row - 1) 'calcul conso hhc dans col Q
.Range("R" & Tot.Row - 1).Insert Shift:=xlDown 'inserer ligne au dessus
.Range("R" & Tot.Row - 1) = "" 'blanc dans col R
.Range("S" & Tot.Row - 1).Insert Shift:=xlDown 'inserer ligne au dessus
If TextBox6.Text <> "" Then
Range("S" & Tot.Row - 1) = TextBox4.Text
Else
.Range("S" & Tot.Row - 1) = TextBox6.Text
End If
.Range("T" & Tot.Row - 1).Insert Shift:=xlDown 'inserer ligne au dessus
If TextBox6.Text = "" Then
Range("T" & Tot.Row - 1) = ""
Else
.Range("T" & Tot.Row - 1) = CDbl(TextBox6.Text) 'saisie du texte dans col T
End If
.Range("U" & Tot.Row - 1).Insert Shift:=xlDown 'inserer ligne au dessus
.Range("U" & Tot.Row - 1) = .Range("T" & Tot.Row - 1) - .Range("S" & Tot.Row - 1) 'calcul conso hep dans col U
.Range("V" & Tot.Row - 1).Insert Shift:=xlDown 'inserer ligne au dessus
If TextBox7.Text <> "" Then
Range("V" & Tot.Row - 1) = TextBox5.Text
Else
.Range("V" & Tot.Row - 1) = TextBox7.Text
End If
.Range("W" & Tot.Row - 1).Insert Shift:=xlDown 'inserer ligne au dessus
If TextBox7.Text = "" Then
Range("W" & Tot.Row - 1) = ""
Else
.Range("W" & Tot.Row - 1) = CDbl(TextBox7.Text) 'saisie du texte dans col T
End If
.Range("X" & Tot.Row - 1).Insert Shift:=xlDown 'inserer ligne au dessus
.Range("X" & Tot.Row - 1) = .Range("W" & Tot.Row - 1) - .Range("V" & Tot.Row - 1) 'calcul conso hec dans col X
End If