Insertion de ligne VBA

criscris11

XLDnaute Accro
Salut à tous,
J'ai le code suivant :
Code:
Sub Insertion_ligne()
    Selection.Insert Shift:=xlDown
    Selection.FillDown
    Selection.SpecialCells(xlCellTypeConstants, 23).Select
    Selection.ClearContents
End Sub
A ce stade, je suis obligé de sélectionner une ligne complète pour insérer une ligne vierge. Quelle partie faut il modifier pour ne pas être obligé de sélectionner une ligne mais d'insérer une ligne au dessus de la cellule active ?
Merci d'avance et bon après-midi à tous.
 

criscris11

XLDnaute Accro
Re : Insertion de ligne VBA

Re le forum, bonjour Jiheme,
Merci pour ta réponse.
Donc je remplace
Code:
Selection.Insert Shift:=xlDown
par
Code:
ActiveCell.Select
    Selection.EntireRow.Insert
Correct ?

PS : je viens de tester mais le code m'a effacé toutes mes lignes présentes dans le fichier. Le but étant quand même de garder mon code d'origine car il recopie les formules et formats de cellules de la ligne qui se trouve au dessus de la ligne insérée.
Merci.
 
Dernière édition:

kjin

XLDnaute Barbatruc
Re : Insertion de ligne VBA

Bonjour le fil,
Tu écris "Selection", or à part toi, personne ici ne peut dire ce qu'il y a dans ta sélection (si je ne me trompe :D) !
Fais passer 3 lignes dans un fichier, comme d'hab quoi
A+
kjin
 

Jiheme

XLDnaute Accro
Re : Insertion de ligne VBA

Re à tous

Chez moi en utilisant uniquement le code que je t'ai envoyé cela m'inserre une ligne sans rien effacer d'autre, pour tout te dire j'ai utiliser l'enregistreur de macro et dans le code j'ai changé range("XX") par Activecell

Je pense que c'est cette ligne là qui fait du dégat :

Code:
Selection.ClearContents
 

criscris11

XLDnaute Accro
Re : Insertion de ligne VBA

Re,
@Jiheme : ton code insère bien une ligne sans rien effacer, je n'ai jamais dit le contraire mais il ne recopie pas les formules ni les formats de cellules de la ligne du haut.
@kjin : "Tu écris "Selection", or à part toi, personne ici ne peut dire ce qu'il y a dans ta sélection" : si, si c'est indiqué dans mon premier message :
"je suis obligé de sélectionner une ligne complète"
Je poste un fichier de quelques lignes : insertion d'une ligne vierge au dessus de la cellule active en recopiant formats et formules de la ligne du dessus.

Bon après-midi.
 

Pièces jointes

  • Classeur1.xls
    13.5 KB · Affichages: 553
  • Classeur1.xls
    13.5 KB · Affichages: 530
  • Classeur1.xls
    13.5 KB · Affichages: 567

kjin

XLDnaute Barbatruc
Re : Insertion de ligne VBA

Re,
Insert la ligne au niveau de la cellule active
Code:
Sub Insertion_ligne()
x = ActiveCell.Row
With Range("A" & x & ":E" & x)
    .Insert Shift:=xlDown
    .Offset(-1).FillDown
    .Offset(-1).SpecialCells(xlCellTypeConstants, 23).ClearContents
End With
End Sub
A+
kjin
 

Discussions similaires

Statistiques des forums

Discussions
312 685
Messages
2 090 938
Membres
104 703
dernier inscrit
romla937