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

VBA - Insertions multiples de lignes copiées

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:

Iznogood1

XLDnaute Impliqué
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
 

jp14

XLDnaute Barbatruc
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:

Salsaloco de Cuba

XLDnaute Nouveau
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 !
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…