Copier la dernière ligne d'un tableau et coller les formules sur la ligne en dessous

rom3210

XLDnaute Nouveau
Bonjour,

Je cherche à copier la dernière ligne du tableau (la ligne entière) pour ensuite coller que les formules sur la ligne du dessous.

En cherchant sur le net, j'ai déjà un bout de la réponse, mais au lieu de se positionner sur la ligne du dessous, la macro insère une nouvelle ligne...
... ça fonctionne, mais ça met le bazar au niveau de la mise en forme conditionnelle (pour chaque ligne insérée, j'ai X nouvelles formes conditionnelles qui se créent pour la ligne).

Comment modifier la macro pour permettre de :
. copier la dernière ligne de mon tableau
. se positionner ensuite sur la ligne en dessous
. et copier que les formules

Mon bout de code actuel :

------------------
Range("A65536").End(xlUp).Offset(0, 0).Select
With Selection
.EntireRow.Copy
.EntireRow.Insert xlShiftDown
.EntireRow.SpecialCells(xlConstants).ClearContents
.Cells(1, 1).Select
End With
------------------

Merci d'avance,
rom3210
 

Modeste

XLDnaute Barbatruc
Re : Copier la dernière ligne d'un tableau et coller les formules sur la ligne en des

Bonjour rom3210,

Convertis ta plage en Tableau (Insertion > Tableau): tes formules seront automatiquement recopiées dans toute nouvelle ligne insérée sous les précédentes, de même que les Mises en Forme Conditionnelles et Validations de Données éventuelles
 

rom3210

XLDnaute Nouveau
Re : Copier la dernière ligne d'un tableau et coller les formules sur la ligne en des

Bonjour Modeste,

J'essaye mais ça ne fonctionne pas. Mon tableau n'intègre pas de nouvelles lignes...
Et en reprenant la macro, une idée ?

Merci
 

Modeste

XLDnaute Barbatruc
Re : Copier la dernière ligne d'un tableau et coller les formules sur la ligne en des

Re,

Peux-tu tester le classeur en annexe?
Positionne-toi en D4 et appuie sur la touche Tabulation
La nouvelle ligne n'est pas numérotée automatiquement en colonne A? Il n'y a pas de liste déroulante en colonne C, de formule en colonne D, de MFC en colonne B (remplissage rouge pour le prénoms de + de 4 caractères)?
 

Pièces jointes

  • Exemple Tableau (rom3210).xlsx
    12.6 KB · Affichages: 44

rom3210

XLDnaute Nouveau
Re : Copier la dernière ligne d'un tableau et coller les formules sur la ligne en des

Bonsoir

Quelqu'un peut-il m'aider ?!
La solution de Modeste répond à une partie de la réponse, mais je reste toujours bloqué sur la macro...

Merci par avance,
rom3210
 

rom3210

XLDnaute Nouveau
Re : Copier la dernière ligne d'un tableau et coller les formules sur la ligne en des

Bonjour,

Je désespère ! Je suis toujours bloqué malgré moult tentatives !!!
Voici mon code actuel qui ne fonctionne pas :

-------------------
Sub Ajouter_ligne_avec_formules()
'
' Macro qui ajoute une ligne avec formules et ajoute +1 à la première colonne
'

' Déprotection
Sheets("mafeuille").Select
Range("A1").Select
ActiveSheet.Unprotect ("toto")

' Sélection de l'ensemble des colonnes et suppression des éventuels filtres
Range(Columns(1), Columns(Cells(1, Columns.Count).End(xlToLeft).Column)).Select
Selection.AutoFilter
Selection.AutoFilter

' Sélection et copie de la dernière ligne non vide
ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).EntireRow.Select
Selection.Copy

' Sélection et colle la première ligne vide
ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count + 1).EntireRow.Select
With Selection
.Copy
.SpecialCells(xlCellTypeConstants, 3).ClearContents
End With

' Ajoute +1 à la colonne A
Range("A65536").End(xlUp).Offset(1, 0).Select
With Selection
If .Column = 1 And .Row > 1 Then .Value = .Row - 1
End With

' Protection
ActiveSheet.Protect ("toto"), AllowInsertingRows:=False, AllowFiltering:=True

End Sub

-------------------

Merci d'avance,
rom3210
 

Discussions similaires

Statistiques des forums

Discussions
312 084
Messages
2 085 192
Membres
102 809
dernier inscrit
Sandrine83