Insérer un nombre de ligne sous conditions dans excel
Pepsinette
Messages postés
2
Statut
Membre
-
Frenchie83 Messages postés 2254 Statut Membre -
Frenchie83 Messages postés 2254 Statut Membre -
Bonjour,
J'essaie de créer dans excel une macro me permettant d'insérer sous une ligne un nombre données de ligne précisé dans la ligne sélectionnée en question.
Ce n'est pas très clair, alors voici comment se construit mon tableau
J'ai pour le moment 200 lignes à mon tableau (titres inclus)
Dans la deuxième colonne de chaque ligne figure un nombre qui peut varier de 1 à 50.
Donc mettons que
B2 = 12
B3 = 1
B4 = 26
etc
je voudrais insérer
12 lignes entre la ligne 2 et la ligne 3
1 ligne entre la ligne 3 et la ligne 4 (en considérant ici que ces numéros de lignes sont avant les insertions, puisqu'après les premières insertions ils vont changer)
26 ligne entre la ligne 3 et la ligne 4
etc...
Est-ce que quelqu'un pourrait m'aider ?
Merci d'avance,
J'essaie de créer dans excel une macro me permettant d'insérer sous une ligne un nombre données de ligne précisé dans la ligne sélectionnée en question.
Ce n'est pas très clair, alors voici comment se construit mon tableau
J'ai pour le moment 200 lignes à mon tableau (titres inclus)
Dans la deuxième colonne de chaque ligne figure un nombre qui peut varier de 1 à 50.
Donc mettons que
B2 = 12
B3 = 1
B4 = 26
etc
je voudrais insérer
12 lignes entre la ligne 2 et la ligne 3
1 ligne entre la ligne 3 et la ligne 4 (en considérant ici que ces numéros de lignes sont avant les insertions, puisqu'après les premières insertions ils vont changer)
26 ligne entre la ligne 3 et la ligne 4
etc...
Est-ce que quelqu'un pourrait m'aider ?
Merci d'avance,
3 réponses
-
Bonjour
Essayez ceciSub InsertLignes() Application.ScreenUpdating = False DerLig = Range("A100000").End(xlUp).Row - 1 Range("B2").Select Do While ActiveCell.Row <= DerLig If Not IsEmpty(ActiveCell) Then NbLig = ActiveCell.Value ActiveCell.Offset(1, 0).EntireRow.Select Rows(ActiveCell.Row & ":" & NbLig + ActiveCell.Row - 1).Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove ActiveCell.Offset(NbLig, 1).Select DerLig = Range("A100000").End(xlUp).Row - 1 GoTo Suivant Else ActiveCell.Offset(1, 0).Activate End If Suivant: Loop End Sub
cdlt -
Merci pour votre réponse, malheureusement cela ne marche pas. J'obtiens juste la sélection de la cellule B2.
Cdlmt -
Bonjour
Curieux, ça fonctionne pourtant très bien chez moi.
est-ce que les données de la colonne B sont bien consécutives, ou bien y a t-il des cellules vides entre chaque valeur?
au besoin, mettez un échantillon de votre fichier en pièce jointe, pour voir où cela coince
cdlt