Macro pour insérer ligne entre chaque ligne sélectionnée

he_oui

XLDnaute Nouveau
Bonjour,

Un exemple de ce que je voudrais faire.

Par ex:
je sélectionne la ligne 1 et 2 et la ligne 6 et 7 en même temps
et il faudrait qu'une ligne s'insére avant la ligne 1, une avant la ligne 2, une avant la ligne 6 et une avant la ligne 7.

il s'agit d'une macro d'insertion avec plusieurs lignes sélectionnées

il faudrait pouvoir changer la sélection et faire une insertion à chaque ligne
Range("1:1,2:2,6:6,7:7").Select

Rows("1:1").Select
Selection.Insert Shift:=xlDown

etc...........

merci d'avance pour votre aide
 

Pierrot93

XLDnaute Barbatruc
Re : Macro pour insérer ligne entre chaque ligne sélectionnée

Bonjour,

regarde le code ci-dessous, si j'ai bien compris ta demande....

Code:
Option Explicit
Sub test()
Dim i As Integer
For i = 7 To 1 Step -5
    Rows(i).Insert
    Rows(i - 1).Insert xlShiftDown
Next i
End Sub

bon après midi
@+
 

he_oui

XLDnaute Nouveau
Re : Macro pour insérer ligne entre chaque ligne sélectionnée

Merci pour ta réponse

mais en fait je sélectionne en faisant ctrl + clic sur le N° des lignes pour sélectionner plusieurs ligne en une seule fois.

Ensuite, à l'aide de la macro, je voudrais qu'au dessus des lignes sélectionnées une ligne s'insére.

Le but est de ne pas être obligé de sélectionner une ligne puis faire clic droit insérer une ligne et ceux-ci à chaque ligne.

En espérant avoir été plus clair sur mon besoin
 

he_oui

XLDnaute Nouveau
Re : Macro pour insérer ligne entre chaque ligne sélectionnée

cette commande Selection.Rows.Insert fonctionne dans le cas ou par exemple les lignes 2,4 et 8 sont sélectionnées.

Mais par exemple si on sélectionne les lignes 2,3 et 4 alors 3 lignes sont insérées devant la ligne 2 et rien entre la ligne 3 et la ligne 4.
 

he_oui

XLDnaute Nouveau
Re : Macro pour insérer ligne entre chaque ligne sélectionnée

En fait,

y-a pas de macro possible pour faire ça du genre

dim x as integer

x étant la variable qui reprend chaque ligne sélectionné 1 par 1

et faire une boucle reprenant la nouvelle variable
 

Pierrot93

XLDnaute Barbatruc
Re : Macro pour insérer ligne entre chaque ligne sélectionnée

Re,

bon, j'ai suivi ton conseil
dim x as integer
lol:),

Code:
Option Explicit
Sub test()
Dim i As Integer, t As Variant, j As Integer, t2 As Variant, x As New Collection
If Selection.Cells.Count < 256 Then Exit Sub
Application.ScreenUpdating = False
t = Split(Selection.Address(0, 0), ",")
For i = LBound(t) To UBound(t)
    t2 = Split(t(i), ":")
    If t2(0) = t2(1) Then
        x.Add t2(0)
    Else
        For j = t2(0) To t2(1)
            x.Add j
        Next j
    End If
Next i
For i = x.Count To 1 Step -1
    Rows(x(i)).Insert
Next i
Application.ScreenUpdating = True
End Sub

Attention au moins une ligne doit être selectionnée.
on doit sans doute pouvoir faire plus simple... Mais bon...

bonne soirée
@+

Edition : mis le test sur le nombre de cellules en 1er, plus logique...
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Macro pour insérer ligne entre chaque ligne sélectionnée

Re

j'ai optimisé un peu...

Code:
Option Explicit
Sub test()
Dim i As Integer, t As Variant, j As Integer, t2 As Variant, x As New Collection
If Selection.Cells.Count < 256 Then Exit Sub
Application.ScreenUpdating = False
t = Split(Selection.Address(0, 0), ",")
For i = LBound(t) To UBound(t)
    t2 = Split(t(i), ":")
    For j = t2(0) To t2(1)
        x.Add j
    Next j
Next i
For i = x.Count To 1 Step -1
    Rows(x(i)).Insert
Next i
Application.ScreenUpdating = True
End Sub

@+
 

Steph44

XLDnaute Nouveau
Bonjour,

Je suis tout nouveau sur le forum et j'aurais besoin d'un petit coup de main pour la création d'une macro. Pour me définir, je suis ultra novice sur ces fonctionnalités d'Excel et je tente d'apprendre par moi-même donc assez loin du langage excel...

Je vous sollicite aujourd'hui car j'aimerais créer une macro me permettant d'insérer automatiquement et de façon aléatoire une ligne dans un tableau Excel. La seconde difficulté est que je voudrais que les formules de calcul (addition / multiplication simple) présentent dans deux cellules de la ligne sélectionnée pour l'insertion s'affichent sur la ligne créée. Quel code conviendrait ?

Je ne sais pas si j'ai été clair.

Merci beaucoup pour votre aide précieuse.
Bonne journée.
 

Discussions similaires

Statistiques des forums

Discussions
312 487
Messages
2 088 823
Membres
103 971
dernier inscrit
abdazee