Bouton qui ajoute une ligne avec formule en bas du tableau

Geinoch

XLDnaute Occasionnel
Bonjour !
Je voulais pas former un nouveau topic mais après avoir envoyé un message sur un topic existant, j'ai quand même décidé d'en partir un afin d'attirer l'attention du plus grand nombre.

J'aimerais faire un bouton de commande qui ajoute une ligne à la fin de mon tableau et qui copie en même temps des fonctions qui se retrouvent sur chacune des lignes...

Exemple:
Ajouter ligne --> une ligne apparait à la suite du reste + fonction (A) dans cellule (X) + fonction (B) dans cellule (Y) (cellule x et y sur cette même ligne)

Merci à l'avance !

Oh j'y pense, de plus il y a des "mise en forme conditionnel" qui doivent rester...
 

Philippe

XLDnaute Occasionnel
Re : Bouton qui ajoute une ligne avec formule en bas du tableau

Bonsoir,
je pense que ceci devrait convenir


derligne=range("A65536").end (xlup).row
cells(derligne, 1).entirerow.select
selection.copy
Selection.offset(1,0).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

A+
Philippe
 

Geinoch

XLDnaute Occasionnel
Re : Bouton qui ajoute une ligne avec formule en bas du tableau

Hmm ça semble ne pas fonctionner...
Pour le moment je réussis à ajouter une ligne avec une macro qui insert une ligne et qui copie la commande des cellule de la ligne d'en haut, plus bas... Le problème c'est que j'insère des lignes toujours au même endroit =(

Voici ma commande:

Private Sub CMDLigne_Click()
Rows("30:30").Select
Selection.Insert Shift:=xlDown
Ici c'est la copie de mes 4 fonctions (provenant de 4 cellules différentes)
Range("R31").Select
Selection.AutoFill Destination:=Range("R30:R31"), Type:=xlFillDefault
Range("R30:R31").Select
Range("S31").Select
Selection.AutoFill Destination:=Range("S30:S31"), Type:=xlFillDefault
Range("S30:S31").Select
Range("T31").Select
Selection.AutoFill Destination:=Range("T30:T31"), Type:=xlFillDefault
Range("T30:T31").Select
Range("U31").Select
Selection.AutoFill Destination:=Range("U30:U31"), Type:=xlFillDefault
Range("U30:U31").Select
Ici j'avais pas le choix de refaire une sélection vers quelque chose de vide car ma macro semblait faire un conflit et s'effectuait mal après la première utilisation
Range("Q32").Select
End Sub

Je commence à désespérer =(
 

CB60

XLDnaute Barbatruc
Re : Bouton qui ajoute une ligne avec formule en bas du tableau

Bonsoir
essai peut être de cette façon:
Sub essai()

lignefin = Range("b65536").End(xlUp).Row
Cells(lignefin, 1).EntireRow.copy
Cells(lignefin + 1, 1).PasteSpecial Paste:=xlPasteFormulasAndNumberFormats
Application.CutCopyMode = False
End Sub
 

Geinoch

XLDnaute Occasionnel
Re : Bouton qui ajoute une ligne avec formule en bas du tableau

Ok, le bon coté, c'est que ça copie la ligne à la fin avec la les commandes...

Le problème, c'est que ça ne copie pas la mise en page conditionnel, et la mise en forme du tableau...


Quelqu'un à une idée?
 

CB60

XLDnaute Barbatruc
Re : Bouton qui ajoute une ligne avec formule en bas du tableau

Bonjour
Essai de cette façon alors:

Sub essai()
lignefin = Range("a65536").End(xlUp).Row
Cells(lignefin, 1).EntireRow.Copy
Cells(lignefin + 1, 1).PasteSpecial Paste:=xlPasteAll 'FormulasAndNumberFormats
Application.CutCopyMode = False
End Sub
 

Geinoch

XLDnaute Occasionnel
Re : Bouton qui ajoute une ligne avec formule en bas du tableau

La, ça copie bien les fomules et la mise en page, mais ça ne copie plus la dernière ligne du bas de mon tableau. À la place, ça copie la dernière ligne de ma tête de colonne !?

Mais bref, je sens que l'on se rapproche =)

Mouais, ça n'ajoute pas de ligne non plus, ca transforme une ligne exsitente... =|
 
Dernière édition:

CB60

XLDnaute Barbatruc
Re : Bouton qui ajoute une ligne avec formule en bas du tableau

re
L'anomalie doit venir du fais que j'ai mis pour mes essais la colonne "A" a cet endroit:
lignefin = Range("a65536").End(xlUp).Row
remplace par :
lignefin = Range("B65536").End(xlUp).Row
et dis nous..
 

Geinoch

XLDnaute Occasionnel
Re : Bouton qui ajoute une ligne avec formule en bas du tableau

Ok, je comprend l'équation, je ne doit pas mettre "b" ni "a"... Mais "r" vu que c'est celle là qui contient une valeur et qui se rend toujours à la dernière ligne :D

Là, ça copie bien mes formules, ma mise en forme conditionnelle, mais par contre, ça copie aussi les données comprisent entre la colonne "A" et "P".

Lorsque j'ajoute cette ligne il faudrait que ces cellules restent vides. (mise à part pour les cellule après "P")


Merci
 

Geinoch

XLDnaute Occasionnel
Re : Bouton qui ajoute une ligne avec formule en bas du tableau

Bon, dans la formule:

Cells(lignefin, 1).EntireRow.Copy

J'ai essayé de remplacer EntireRow de façon à ce que ca ne copie que le reste de la ligne pour laisser les cellules A à P vides, mais évidemment j'ai pas pensé que j'allait perdre la mise en forme et le reste.

Il me faudrait une ligne que je rajouterais après et qui dirait "clear cells A;P"

Et ensuite je vous emmerderai plus... pour ce qui est de ce problème :p

A+
 

Geinoch

XLDnaute Occasionnel
Re : Bouton qui ajoute une ligne avec formule en bas du tableau

Bon j'ai + ou - réussi

voici la commande:

lignefin = Range("r65536").End(xlUp).Row
Cells(lignefin, 1).EntireRow.Copy
Cells(lignefin + 1, 1).PasteSpecial Paste:=xlPasteAll 'FormulasAndNumberFormats
Application.CutCopyMode = False
Cells(lignefin + 1, 16).ClearContents
Cells(lignefin + 1, 15).ClearContents
Cells(lignefin + 1, 14).ClearContents
Cells(lignefin + 1, 13).ClearContents
Cells(lignefin + 1, 12).ClearContents
Cells(lignefin + 1, 11).ClearContents
Cells(lignefin + 1, 10).ClearContents
Cells(lignefin + 1, 9).ClearContents
Cells(lignefin + 1, 8).ClearContents
Cells(lignefin + 1, 7).ClearContents
Cells(lignefin + 1, 6).ClearContents
Cells(lignefin + 1, 5).ClearContents
Cells(lignefin + 1, 4).ClearContents
Cells(lignefin + 1, 3).ClearContents
Cells(lignefin + 1, 2).ClearContents
Cells(lignefin + 1, 1).ClearContents
End Sub

J'imagine qu'il y a un moyen de faire ça plus simple. Si vous le savez je serai heureux de le savoir.

Pour ce qui est de reste j'aimerais remercier CB60 pour son aide!

"Dude, tu rock en siboire!
Merci bin!"
 

CB60

XLDnaute Barbatruc
Re : Bouton qui ajoute une ligne avec formule en bas du tableau

Bonsoir
Je pense un peu plus simple ( cela reste à voir):D

Sub essai()
'defini la derniere ligne
lignefin = Range("r65536").End(xlUp).Row
Cells(lignefin, 1).EntireRow.Copy
Cells(lignefin + 1, 1).PasteSpecial Paste:=xlPasteAll
Application.CutCopyMode = False
'redefini la derniere ligne
lignefin1 = Range("r65536").End(xlUp).Row
'efface de la colonne 1 à la colonne 16 de la derniere ligne
With Worksheets("feuil1")
.Range(.Cells(lignefin1, 1), .Cells(lignefin1, 16)).ClearContents
End With
End Sub

edit mis le fichier
 

Pièces jointes

  • efface cell.xls
    32 KB · Affichages: 66
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 294
Messages
2 086 896
Membres
103 404
dernier inscrit
sultan87