Insérer plusieurs lignes en dessous de la dernière saisie et copier

Réponses .pdf (172,9 Ko)
Comptes (2).xlsm (507,4 Ko)
Macro bleue.xlsx (10,3 Ko)

re,
il y avait de nouveau quelque chose dans la colonne A, A62:A63, donc, maintenant on a la fonction personnalisée qui recherche et vérifie la dernière ligne.
Ce n’est pas possible avec des filtres actives.
Comptes (2).xlsm (516,7 Ko)

Bonjour,
Si je comprends bien, vous me dites ce n’est pas possible. C’est bien ça ?

Si c’est bien ça, je vais déjà vous remercier pour tout ce que vous avez fait.

Toutefois, si ça ne vous dérange pas, pourriez-vous m’aider sur quelques petites manips basiques.
On va oublier ce tableau et essayer de passer à beaucoup plus simple.

Sur mon petit tableau joint, j’ai réussi (à ma sauce) à faire les Points a) b) c)
Point a)
J’ai réussi à aller sur la dernière ligne (Dernière ligne qui sera toujours une ligne vide de valeur mais avec qq formules).

Point b)
J’ai réussi à insérer une ligne au-dessus.

Point c)
J’ai réussi à revenir sur cette dernière ligne et la copier.

Jusque-là, même si ce n’est pas très conventionnel, ça fonctionne et je pense que c’est déjà pas mal pour un débutant…

Ce que j’aimerais de votre part, c’est que vous m’expliquiez en toute simplicité comment je peux insérer davantage de lignes au point b et revenir sur la dernière ligne

Ensuite je reviendrai vers vous pour une dernière petite manip
Et ensuite j’essayerai de me débrouiller seul

Si vous êtes toujours d’accord pour m’aider dans ce sens, je vous remercie

Test - insertion lignes.xlsm (23,7 Ko)

on a quel problème avec un tableau structuré ? Un problème de « pieds froids » ?
là, c’est fait en quelque lignes. (Voir 6/24, 7 nov) On ne doit pas s’occuper des formules ou formats, le tableau le fait.

Sub GIL2()
     Dim cAvantDernier, cDernier
     
     With ActiveSheet

          Set cDernier = .Cells(Rows.Count, "A").End(xlUp)     'derniere cellule
          Set cAvantDernier = cDernier.Offset(-1)     'l'avant-dernier cellule A
          MsgBox "l'avant-dernier est " & cAvantDernier.Address & vbLf & "le dernier est " & cDernier.Address & vbLf & vbLf & "l'avant-dernier reste sur place et le dernier changera d'adresse quand on inserte"

          cDernier.Resize(10).EntireRow.Insert    'insérer 10 lignes
          MsgBox "l'avant-dernier est " & cAvantDernier.Address & vbLf & "le dernier est " & cDernier.Address & vbLf & vbLf & "l'avant-dernier est resté sur place et le dernier est 10 lignes plus loin maintenant"

          cDernier.EntireRow.Copy cAvantDernier.Offset(1)     'copier la derniere ligne (mais maintenant 10 lignes en bas) juste en dessous l'avant-dernière ligne

          MsgBox "ici le copie de l'autre feuille et puis ...."

          cDernier.EntireRow.Delete          'supprimer l'ancienne ligne cDernier

          Application.CutCopyMode = False    'Copie de cette dernière ligne
     End With
End Sub```

(a condition qu'il n'y a pas de filtres actifs et rien d'ambetant quelque part dans la colonne A)

Bonsoir,

Je vous remercie infiniment pour votre dernier message.

Je me suis servi du début de votre macro, puisque je ne connais pas l’astuce pour insérer plusieurs lignes en une fois. (Dommage)

J’ai complété la suite à ma façon. Ce n’est pas très conventionnel là non-plus mais j’en enfin obtenu ce que je voulais.

Ça fonctionne parfaitement.

Encore merci pour votre temps passé

Bonne fin de Week end

Je vous joins un fichier test si toutefois vous voulez voir ce que je souhaitais comme résultat.
Test.xlsm (507,0 Ko)

1 « J'aime »

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.