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

Automatiser l'insertion de sous-lignes entre chaque ligne dans un tableau

  • Initiateur de la discussion Initiateur de la discussion Fab3181
  • 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 !

F

Fab3181

Guest
Bonjour le forum excel-downloads,

voilà, j'ai un souci de programmation. J'ai une base de donnée qui dispose de 1750 lignes :

Ligne 1
Ligne 2
Ligne 3
Ligne 4
Ligne 1750

Je voudrais connaître le processus pour pouvoir intégrer entre chacune de ces lignes, 4 autres lignes :

Ligne 1
Sous-ligne 1
Sous-ligne 2
Sous-ligne 3
Sous-ligne 4
Ligne 2
Sous-ligne 1
Sous-ligne 2
Sous-ligne 3
Sous-ligne 4
Ligne 3
Sous-ligne 1
Sous-ligne 2
Sous-ligne 3
Sous-ligne 4
Ligne 4
Sous-ligne 1
Sous-ligne 2
Sous-ligne 3
Sous-ligne 4
Ligne 1750
Sous-ligne 1
Sous-ligne 2
Sous-ligne 3
Sous-ligne 4

Je suis vraiment débutant, je ne sais pas comment il faut faire. On m'a parlé de macro. Bref, il faut vraiment, si possible, me donner le processus à suivre. Je vous remercie tous.

Cordialement.

Fabien

P.S : J'ai vu le tutoriel : "Automatiser une formule dans un tableau" mais impossible d'ouvrir la vidéo.
 
Re : Automatiser l'insertion de sous-lignes entre chaque ligne dans un tableau

Bonjour Fab3181 et bienvenue sur XLD

Voici un début de solution
Code:
Sub a()
Dim i&
For i = [A65536].End(xlUp).Row To 2 Step -1
Cells(i, 1).Resize(4).EntireRow.Insert
Next i
End Sub
EDITION: bonjour pierrot93, skoobi

Cette macro insert 4 lignes vides entre chaque ligne non vide de la colonne A.
Pour utiliser cette macro.
1) Dans Excel, faire ALT+F11, Insertion/Module
2) Copier/coller la macro ci-dessus
3) Faire ALT+Q, Outils/Macros/a* -> Cliquer sur Exécuter
* sélectionner la macro à exécuter (ici elle se nomme a)

 
Dernière édition:
Re : Automatiser l'insertion de sous-lignes entre chaque ligne dans un tableau

Bonjour Fabien,

regarde le code ci-dessous si il peut t'aider...

Code:
Option Explicit
Sub test()
Dim i As Long
Application.ScreenUpdating = False
For i = Range("A65536").End(xlUp).Row To 2 Step -1
    Rows(i & ":" & i + 3).Insert
Next i
Application.ScreenUpdating = True
End Sub

bon après midi
@+

Edition : bonjour Jean-Marie
 
Re : Automatiser l'insertion de sous-lignes entre chaque ligne dans un tableau

Bonjour Fab3181
Hello JM 🙂,

voici le processus:
1- créer une boucle décroissante sur la colonne A dans laquelle:
a- insérer 4 nouvelles lignes, proposer par Staple1600 et Pierrot.
b- ajouter le texte dans ces 4 lignes, à toi d'essayer.

Edit: bonjour Pierrot 🙂
 
Re : Automatiser l'insertion de sous-lignes entre chaque ligne dans un tableau

D'accord merci pour vos réponses qui m'ont bien aidé.
Maintenant j'aimerai insérer à chaque ligne quelque chose de différent.
J'ai pensé faire comme ceci :

Option Explicit
Sub test()
Dim i As Long
Dim nbr As Integer
nbr = 0
Application.ScreenUpdating = False
For i = Range("A65536").End(xlUp).Row To 2 Step -1
Rows(i & ":" & i + 3).Insert


If nbr = 1 Then
Rows(i & ":" & i + 3).Value = "tets"
End If

nbr = nbr + 1
Next i
Application.ScreenUpdating = True
End Sub


Mais cette méthode m'insère des test partout...

Qu'en pensez-vous ?

Cordialement.

Fabien
 
Re : Automatiser l'insertion de sous-lignes entre chaque ligne dans un tableau

Bonjour à tous,

Mais cette méthode m'insère des test partout...
A la vue du code utilisé cela me parait normal....
Peut être utiliser une boucle dans la boucle.... ou bien une autre boucle après la première... tout dépend de ce que tu veux placer dans les cellules.... sans plus de détails, difficile de t'en dire plus, enfin pour moi...

bonne journée
@+
 
Re : Automatiser l'insertion de sous-lignes entre chaque ligne dans un tableau

Bonjour,

Je me suis permise d'utiliser vos codes (qui marchent trés bien 🙂... et j'aurais besoin également que chacune des lignes insérées prennent la valeur de la ligne principale.

Est ce possible?

merci beaucoup de votre aide!!

Bien à vous et bon week end
Clémence
 
Re : Automatiser l'insertion de sous-lignes entre chaque ligne dans un tableau

Bonsoir Clémence,
le fil,

essaye peut être ainsi, si j'ai bien compris :

Code:
Option Explicit
Sub test()
Dim i As Long
Application.ScreenUpdating = False
For i = Range("A65536").End(xlUp).Row To 2 Step -1
    Rows(i & ":" & i + 3).Insert
    Rows(i + 4).Copy Rows(i & ":" & i + 3)
Next i
Application.ScreenUpdating = True
End Sub

bonne soirée
@+
 
Re : Automatiser l'insertion de sous-lignes entre chaque ligne dans un tableau

Merci beaucoup!!
ca marche parfaitement
.. et beaucoup plus rapide dans l'execution que ce que j'avais finalement fait (ci dessous / un peu à l'ancienne)

Bon week end!

Sub copier_lignes()
Range("a2").Select

valeur = Range("a1").Value
For i = 1 To 1000
If ActiveCell = "" Then
ActiveCell = valeur
ActiveCell.Offset(1, 0).Select
Else
valeur = ActiveCell.Value
ActiveCell.Offset(1, 0).Select
End If

Next

End Sub
 
Re : Automatiser l'insertion de sous-lignes entre chaque ligne dans un tableau

Re,

s'il s'agissait de recopier uniquement les cellules de la colonne A, tu aurais pu également codifier ainsi, après insertion :

Code:
Sub test()
On Error Resume Next
With Range("A2:A" & Range("A65536").End(xlUp).Row)
    .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[1]C"
    .Value = .Value
End With
On Error GoTo 0
End Sub

bonne soirée
@+

Edition : modifié la formule pour prendre la cellule du dessous.
 
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

  • Question Question
Réponses
13
Affichages
430
Réponses
2
Affichages
909
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…