Bonjour,
Je suis à la recherche d'une macro sous Excel me permettant de copier la ligne 7 et coller celle-ci au dessus la cellules sélectionnées j'ai cherché et tenté d'écrire plusieurs macro sans succès quelqu'un peut-il m'aidé ?
Cette manipulation se réaliserais dans la même feuille.
Si le fichier de travail est trop volumineux, une copie de ce dernier - reflétant à la fois le réel et le souhaité - sera plus appropriée qu'une capture d'écran.
Si le fichier de travail est trop volumineux, une copie de ce dernier - reflétant à la fois le réel et le souhaité - sera plus appropriée qu'une capture d'écran.
Re : Macro pour copier ligne x au dessus de la cellule selectionnées
Re-bonjour,
Un essai, dans le fichier joint, avec ce code dans le Module1 :
Code:
Sub Ligne_7_dupliquer()
Application.ScreenUpdating = False
Sheets("Devis").Range("a7:aw7").Copy Destination:=Sheets("Devis").Range("A65536").End(xlUp)(2)
Range("A7").CurrentRegion.Borders.Value = 1
Application.ScreenUpdating = True
End Sub
Re : Macro pour copier ligne x au dessus de la cellule selectionnées
Re!
J'ai juste un petit soucis la macro fonctionne bien mais de temps en temps je structure ma feuille par exemple :
ligne 10 : chapitre 1 matériel divers
ligne 11 : article
ligne 12 : article
Ligne 13 : Sous-Total Chapitre 1 matériel divers
et la du coup la macro n'est plus valable car elle ajoute la ligne à la fin je pense qu'il faudrait que je modifie la valeur .Range("A65536") mais je ne sais pas par quoi la remplacé =/.
Désolé la programmation VBA n'est pas trop mon domaine je débute tu aurais une solution ?
Re : Macro pour copier ligne x au dessus de la cellule selectionnées
Re-bonjour,
Je ne vois pas comment procéder autrement qu'en faisant appel à deux macros distinctes.
La première, pour insérer la ligne 7 en fin de tableau :
Code:
Sub Article_dernière_ligne()
Application.ScreenUpdating = False
Sheets("Devis").Range("a7:aw7").Copy Destination:=Sheets("Devis").Range("A65536").End(xlUp)(2)
Range("A7").CurrentRegion.Borders.Value = 1
Application.ScreenUpdating = True
End Sub
La seconde, pour insérer la ligne 7 dans la cellule sélectionnée (en colonne A).
Code:
Sub Article_ligne_vide()
Dim c As Range
Application.ScreenUpdating = False
For Each c In Range("A8", [A65000].End(xlUp))
If c = "" Then c.Select
Range("a7:aw7").Copy Destination:=Selection
Next
Application.ScreenUpdating = True
End Sub