VBA - Insertions multiples de lignes copiées

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 !

Salsaloco de Cuba

XLDnaute Nouveau
Bien le bonjour,

Je viens quémander votre aide pour un problème simple mais auquel je ne trouve pas de solution.

Je souhaiter créer une macro pour insérer 3 lignes, contenant à la fois du texte et des formules, toutes les 49 lignes d'une feuille qui contient environ 10 000 lignes sans trous, ni cellules fusionnées ou autres joyeusetés.

Voici le code en question :

"Sub Insertion()

Dim Plage As Range

Dim L As Long

Application.ScreenUpdating = False

Set Plage = Rows(54)

For L = 54 To 10490 Step 49


Set Plage = Application.Union(Plage, Rows(L))

Next L

Rows("51:53").Select
Application.CutCopyMode = False
Selection.Copy
Plage.Select
Selection.Insert Shift:=xlDown
Application.CutCopyMode = False

Application.ScreenUpdating = True

End Sub"

Pour résumer je souhaite insérer le contenu des lignes 51 à 53 toutes les 49 à partir de la ligne 54 jusqu'a la ligne 500 (dans le fichier test que j'ai réduit pour qu'il passe sur le forum)

Lorsque je lance le code j'ai un message d'erreur concernant l'impossibilité de c/c sur des sélections multiples... et je séche sur comment solutionner tout ça...

Quelque'un aurait une idée ?

Merci d'avance
 
Dernière modification par un modérateur:
Re : VBA - Insertions multiples de lignes copiées

Bonjour,

pas sûr de comprendre ton besoin, mais ton code me paraît compliqué.

Que dirais-tu de
Code:
Sub Insertion2()
  Dim i As Long
  i = 54
  Do While i < [A1].CurrentRegion.Rows.Count
    i = i + 49
    Range("A51:A53").EntireRow.Copy
    Range("A" & i).Insert Shift:=xlDown
    i = i + 3
  Loop
End Sub
 
Re : VBA - Insertions multiples de lignes copiées

Bonsoir

Une autre solution

Code:
Sub travdem()
Dim Compt1 As Long, i As Long
With Sheets(ActiveSheet.Name)

For i = 54 + 49 To 500 Step 49
    .Range("a" & i & ":a" & i + 2).EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
    .Range("A51:I53").copy _
    Destination:=.Range("a" & i) 

Next i

End With
End Sub



A tester

JP
 
Dernière édition:
Re : VBA - Insertions multiples de lignes copiées

Bonsoir à vous deux,

Avant toute chose, je tenais à vous remercier tant pour la qualité que pour la rapidité de vos réponses : un collègue avait une échéance légale pour ce soir minuit qui sera respectée grâce a vos bons soins ! 🙂

J'ai testé vos deux codes et ils sont tous deux parfaitement fonctionnels : j'ai donc l'embarras du choix ! 😉

Un grand merci à vous et j'espère pouvoir vous rendre la pareille un de ces 4 !
 
- 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
2
Affichages
2 K
Compte Supprimé 979
C
G
Réponses
14
Affichages
2 K
Retour