Solution plus simple sur insertion de lignes.

  • Initiateur de la discussion Initiateur de la discussion Toushusss
  • Date de début Date de début

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 !

T

Toushusss

Guest
Bonjour !
J'utilise ce code pour inserer automatiquement une ligne dans mon tableau.
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("C" & Tot.Row).Formula = "=Sum(C9:C" & Tot.Row - 1 & ")" 'somme de C9 jusqu'à la dernière cellule ajoutée
    .Range("C" & Tot.Row).Font.Bold = True

Cela fait en sorte que chaque saise viennent se mettre enttre ma ligne de titre et la ligne total de mon tableau.

Cependant n'y aurait il pas plus simple. N'existe t il pas une fonction qui permette directement cela. Merci
 
Re : Solution plus simple sur insertion de lignes.

Bonjour,

Si j'ai bien compris, ceci à tester :
Code:
    TotR = .Range("b11:b" & ligne).Find("TOTAL").row
   
    .Range("A" & TotR & ":C" & TotR).Insert Shift:=xlDown 'inserer ligne au dessus
    .Range("A" & TotR - 1) = TextBox1.Text 'saisie date dans col A
    .Range("B" & TotR - 1) = "" 'blanc dans col B
    .Range("C" & TotR - 1) = CDbl(TextBox2.Text) 'saisie du texte dans col C
    .Range("C" & TotR).Formula = "=Sum(C9:C" & TotR - 1 & ")" 'somme de C9 jusqu'à la dernière cellule ajoutée
    .Range("C" & TotR).Font.Bold = True
 
Re : Solution plus simple sur insertion de lignes.

Bonjour.
Si: une seule insertion serait bien
l'insersion d'une ligne entière par exemple.
Si pas possible à cause d'autres informations à coté du tableau
VB:
.Range("A:B").Rows(Tot.Row).Insert Shift:=xlDown
À+
 
Re : Solution plus simple sur insertion de lignes.

Merci pour vos réponse.
Justement je cherche à eliminer le fait de définir ma cellule total ( Tot.Row).
N'existe t il pas un moyen par exemple de faire en sorte que chaque sasie s'incremente entre la ligne 9 et la ligne 10 par exempel.( autrement dit je fait une saisie dans mes textBox et cela l'ajoute ligne 10 , la ligne précédément en 10 devient ligne 11 , je fais une autre saisie celle ci vient se placer en ligne 11, la ligne précédemment en 11 devient ligne 12....)
 
Re : Solution plus simple sur insertion de lignes.

Dans ce cas donnez un nom à votre Plage
Copiez sa dernière ligne devant elle même et modifiez la nouvelle dernière ligne.
Ou bien donnez un nom à la ligne devant laquelle vous voulez toujours insérer: lorsqu'on insère devant, la référence d'une plage nommée est corrigée en conséquence automatiquement.
À+
 
Dernière édition:
Re : Solution plus simple sur insertion de lignes.

Merci Dranreb.
Mais désolé j'ai pas compris. ( Je suis débutant en Vba, et je tatonne encore beaucoup pour programmer).
Auriez vous un exemple s'il vous plait ?
 
Re : Solution plus simple sur insertion de lignes.

Je vous ai surtout parlé d'Excel, pas de VBA.
Insertion, Noms, Définir...
Les noms ainsi définis peuvent avantageusement remplacer les adresses de cellules aussi bien dans les formules que dans VBA. vous appelez "Toto" toute la ligne 11, au lieu de Active.Sheet.Rows(11).Insert vous écrirez ActiveSheet.[Toto].Insert et Toto se retrouvera automatiquement défini en ligne 12.
Auparavant vous notez L = ActiveSheet.[Toto].Row pour avoir la ligne où vous devrez écrire des informations après l'Insert.
À+
 
Dernière édition:
Re : Solution plus simple sur insertion de lignes.

J'ai renommé toute ma ligne " Toto"
Par contre je ne vois quoi remplacer dans mon code par ce que vous marquez. Désolé mais je m'embrouille. Dans le code que j'ai mis au début je ne retrouve pas ce que vous me marquez. Je m'excuse d'être un boulet mais je voudrais vraiment comprendre comment marche se processus d'insertion de ligne.
 
Re : Solution plus simple sur insertion de lignes.

VB:
Dim F As Worksheet, L As Long
Set F = ActiveSheet
L = F.[Toto].Row
F.[Toto].Rows(L).Insert
F.Cells(L, 1).Value = TextBox1.Text 'saisie date dans col A
F.Cells(L, 2).Value = "" 'blanc dans col B
F.Cells(L, 3).Value = CDbl(TextBox2.Text) 'saisie du texte dans col C
et à la colonne C de Toto mettez uine bonne fois pour toutes :
Code:
=SOMME(C$9:DECALER(C???,-1,0))
Avec les ??? remplacé par le numéro de ligne où elle se trouve actuellement, évidemment.
À+
 
Re : Solution plus simple sur insertion de lignes.

le code marche mais n'insert pas de ligne. Il remplace juste la ligne "Toto" par chaque nouvelle saisie et ne décalle pas vers le bas la saisie précédente .
merci qd meme
 
Re : Solution plus simple sur insertion de lignes.

Ah si, normalement il doit insérer une ligne devant la Toto et décaler celle ci vers le bas !
Si vous voulez décaler toutes les saisies précédentes vous n'avez qu'a insérer systématiquement devant la deuxième ligne de votre tableau une copie de la première, puis retoucher celle ci !
 
Dernière édition:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

M
  • Question Question
Réponses
3
Affichages
806
Mr.Adrien
M
M
  • Question Question
Microsoft 365 Insertion de lignes
Réponses
4
Affichages
604
MrNathan58
M
S
  • Question Question
Réponses
2
Affichages
826
S
R
Réponses
3
Affichages
4 K
R
L
Réponses
1
Affichages
995
lilidxb
L
N
Réponses
5
Affichages
3 K
Nicocotte125
N
L
Réponses
7
Affichages
4 K
lilidxb
L
N
Réponses
17
Affichages
3 K
ninajams
N
K
  • Question Question
Réponses
2
Affichages
785
Retour