Copier/inserer/coller une ligne dans tableau [Résolu/Fermé]

Signaler
-
Messages postés
24111
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
20 juin 2021
-
Bonjour,

J'ai vraiment besoin d'aide, mon problème est le suivant : J'ai un tableau excel filtrer donc les numéros de lignes ne se suivent pas forcément, dans ce qui me reste de lignes une fois le filtre activé, j'ai besoin de copier la 1ere ligne puis de l'insérer 4 fois en dessous de celle ci, puis de passer à la suivante et faire de même jusqu'a être arrivé à la ligne ou il n'y a plus de données. En sachant que dans certaines cellules d'une ligne, il y a des formules que je dois conserver.

merci de votre aide.

5 réponses

Messages postés
24111
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
20 juin 2021
6 809
Bonjour,

Donc tu dois te retrouver avec 5 lignes identiques pour toutes les lignes sélectionnées, c'est bien ça ?
Explique un peu plus ton histoire de formules stp. Car si on copie/insère valeurs et formules sont conservées.
eric
Bonjour

eSSAIE cette macro a adapter

Sub filtre()
For Each f In [a2:a30] 'sélection sous le titre et sous le filtre
f.Select
If ActiveCell.EntireRow.Hidden <> True Then
R = ActiveCell.Row
Rows("" & R & ":" & R & "").Select
Selection.Cut
R2 = ActiveCell.Row - 4
Rows("" & R2 & ":" & R2 & "").Select
ActiveSheet.Paste
Else
f.Select
End If
Next
End Sub
Messages postés
24111
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
20 juin 2021
6 809 > néné
Bonjour néné,

As-tu testé ce que tu proposes ?
Tu trouves que ça fonctionne et que ça répond à au pb ?
eric

Bonjour,

je développe un peu plus : j'ai un peu plus de 8000 lignes, que je filtre selon un paramètre, une fois ceci fait, il me faut 5 fois chaque lignes à la suite, donc il faut que j'insère 4 fois la première ligne, puis que je passe à la seconde (qui se trouve donc à la 6ème position) et ainsi de suite. Pour le moment je fais ça à la souris, clic droit sur le numéro de ligne, copier, re clic droit, insérer et coller. J'aimerai automatiser tout ça histoire de gagner du temps et de l'energie, car c'est légerement fastidieux à faire. Dans mes lignes certaines cases vont chercher des infos sur d'autres pages. lorsque je rentre un numéro dans une case, les autres se remplissent toutes seules en allant chercher les infos, ce sont ces formules qu'il faut que je conserve lors de l'insertion d'une ligne.

j'espère avoir été clair,

merci de votre aide.
Messages postés
24111
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
20 juin 2021
6 809
Re,

Je pzense que ceci convient mais regarde au niveau de tes formules si les références relatives/absolues correspondent tjs à ce que tu veux. Pense à activer le filtre avant de lancer la macro, si tu veux on pourra rajouter une boite de dialogue pour te le rappeler
Sub Duplique()
    Dim cel As Range, lig As Long, i As Long
    Application.ScreenUpdating = False
    lig = [A65536].End(xlUp).Row
    Do Until lig = 1
        If Rows(lig).Hidden = False Then
            For i = 1 To 4
                Rows(lig).Select
                Rows(lig).Copy
                Selection.Insert Shift:=xlDown
            Next i
        End If
        lig = lig - 1
    Loop
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub


eric
Bonjour

Bien vu pour ta macro

je n'avais pas compris cela comme ça, je pensai qu'il fallait recopier la ligne filtrée, 4 lignes au dessus de la ligne filtrée
Messages postés
24111
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
20 juin 2021
6 809 > néné
Il me semblait bien que ça ne collait pas trop... ;-)

merci beaucoup !!!
c'est parfait ! c'est exactement ça que je cherchais à faire. Merci eric pour ta solution !
Messages postés
24111
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
20 juin 2021
6 809
Ok. N'oublie pas qu'il n'y a pas de undo lorsque l'on travaille avec une macro...
Bonne soirée