Macro insertion de lignes et recopie vers le bas

Bonjour,

Je ne m'y connais pas beaucoup en macro mais j'en aurais besoin d'une qui puisse insérer 3 lignes en dessous de chaque lignes de ma sélection et si possible qui recopie le texte de la première sous les 3 dessous.

Car en fait mon fichier source est lister ligne par ligne et mon fichier destination reprends ces lignes mais x4

donc je suis obliger d'insérer a chaque fois 3 lignes et de recopier les valeurs sur les 4 lignes et remettre en forme après et ça devient très long...

quelqu'un pourrais t'il m'aider , je suis sur Excel 2010

Comment fais t'on pour exécuter une macro sur une zone variable ?

Avec l'enregistreur j'arrive a juste a le faire toujours au même endroit et pour une ligne.

Merci

Bonjour ronan3577,

ronan3577 a écrit :

Comment fais t'on pour exécuter une macro sur une zone variable ?

Avec l'enregistreur j'arrive a juste a le faire toujours au même endroit et pour une ligne.

C'est parce que tu es en Référence absolue.

Dans l'onglet Développeur, juste en-dessous de Enregistrer une macro, clique sur Utiliser les références relatives

capture

Merci,

j'avoue que je débutes en macro,

donc maintenant elle marche la ou je selectionnes mais que pour une seule ligne

Sub Macro2()

'

' Macro2 Macro

'

'

ActiveCell.Rows("1:1").EntireRow.Select

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

ActiveCell.Offset(-1, 2).Range("A1:C4").Select

Selection.FillDown

End Sub

je voudrais que si je sélectionnes 10 il insère 3 lignes entre chaque et si possible recopie chaque première sous les 3 nouvelles

Bonjour

A voir

Bonjour,

Merci beaucoup Banzai apparament ca marche , il est peu long a traiter mais c'est super

Si je savais faire des macros aussi bien je gagnerais un temps fou , Il faut que j'apprenne a le faire et a comprendre ce que tu as fais

la ligne suivante est pour une selection , si je comprends bien ?

For J = Selection.Row + Selection.Count - 1 To Selection.Row Step -1

Merci

Bonjour

Tu comprends bien

La macro part de la dernière ligne de ta sélection que tu as faite jusqu'à la 1ère

ronan3577 a écrit :

il est peu long a traiter mais c'est super

C'est à dire ?

Ta sélection combien de lignes ?

Quand je dis ça n'est pas non plus trop genre 5 a 10 sec , j'aurais sans doute 200 lignes ou plus par fichier

mais c'est déjà très bien comme ça , merci

Sinon la ligne de sélection variable peut s'appliquer a n'importe quelle macro alors ?

Bonjour

ronan3577 a écrit :

Quand je dis ça n'est pas non plus trop genre 5 a 10 sec

C'est énorme

Ta sélection c'est 200 lignes ?

ronan3577 a écrit :

Sinon la ligne de sélection variable peut s'appliquer a n'importe quelle macro alors ?

Je ne comprends pas trop la question

D'après ce que je comprends, n'importe qu'elle macro peut utiliser l'object Selection

Banzai64 a écrit :

Bonjour

ronan3577 a écrit :

Quand je dis ça n'est pas non plus trop genre 5 a 10 sec

C'est énorme

Ta sélection c'est 200 lignes ?

non pas encore juste 40 ou 50 ,mais je pense que c'est parce-que je sélectionnais des lignes et pas des cellules donc plus long a traiter

ronan3577 a écrit :

Sinon la ligne de sélection variable peut s'appliquer a n'importe quelle macro alors ?

Je ne comprends pas trop la question

D'après ce que je comprends, n'importe qu'elle macro peut utiliser l'object Selection[/quote]

oui c'est cela que je voulais dire

bon week-end

Bonjour,

Ta macro fonctionne très bien Banzai64

Encore merci du coup de main

Attention, Selection.count ne renvoie pas le nombre de ligne, mais le nombre de cellules selectionnées.

C'est pour cela que ta macro prend du temps.

Il est possible de compter le nombre de ligne ainsi

nbLigne = 0

For Each rw In Selection.Rows

nbLigne = nbLigne + 1

Next

puis boucler sur :

For J = Selection.Row + nbLigne - 1 To Selection.Row Step -1

CathTheCat

Rechercher des sujets similaires à "macro insertion lignes recopie bas"