Insertion ligne par VBA

papypog

XLDnaute Occasionnel
Bonjour,
Je dois dans un tableau faire insérer une ligne complète à partir d’une valeur choisie par l’utilisateur.
Le code ci-dessous fonctionne parfaitement pour décaler les cellules vers le bas mais n’insère pas la ligne complète.
Code:
Sub inser()
Sheets("2013").Select
Dim ligne
ligne = InputBox("Saisir le numéro de la ligne sous celle à insérer")
 Sheets(1).Range("A" & ligne & ":H" & ligne).Select
  Selection.Insert Shift:=xlDown
 Dim Retour As Integer
End Sub
Que faut-il changer à
Code:
Sheets(1).Range("A" & ligne & ":H" & ligne).Select
pour que ce soit non pas un décalage de cellules vers le bas mais la ligne complète qui soit insérée ?
 

MatiChoux

XLDnaute Occasionnel
Re : Insertion ligne par VBA

Salut papypog,

Code:
Sub inser()
  Sheets("2013").Select
  Dim ligne
  ligne = InputBox("Saisir le numéro de la ligne sous celle à insérer")
  Sheets(1).Range("A" & ligne & ":H" & ligne).EntireRow.Insert Shift:=xlDown
  Dim Retour As Integer
End Sub
Il faut sélectionner l'intégralité de la ligne pour que cela fonctionne. :)

Cordialement,
Mat'
 

papypog

XLDnaute Occasionnel
Re : Insertion ligne par VBA

bonjour,

C'était bien mon problème et je pense avoir trouvé, j'ai rajouté :
Code:
ActiveCell.EntireRow.Select
et cela semble fonctionner.
 

tbft

XLDnaute Accro
Re : Insertion ligne par VBA

bonjour

il n'esiste pas de méthode plus simple pour inserer des lignes completes sans passer par une selection...???

d'avance merci
 

sourcier08

XLDnaute Occasionnel
Re : Insertion ligne par VBA

Salut,

Si :

Rows(9).Insert Shift:=xlDown

9 reprèsente la ligne où l'on désire insérer la ligne
 

tbft

XLDnaute Accro
Re : Insertion ligne par VBA

d'accord et pour inserer plusieurs lignes, il faut faire plusieur fois cette manip ou il est possible de le faire en une seule operation?
 
G

Guest

Guest
Re : Insertion ligne par VBA

bonjour,

rows("9:15").insert xlshiftdown

A+
 

WDAndCo

XLDnaute Impliqué
Re : Insertion ligne par VBA

Bonjour le Forum

J'ai ce code :
Code:
Sub NouvelleLigne()
'
' Efface Macro
' Macro enregistrée le 30/07/2008 par 
'
ActiveWindow.SmallScroll ToRight:=1
    Columns("A:L").Select
    Range("L1").Activate
    ActiveWindow.Zoom = True
    'x = Range("N1").Value
    'x = Target.Row
    Range("O1:AA1").Select
    Selection.Copy
    Rows(x).Select
    Selection.Insert Shift:=xlDown
    Range("E" & x).Select

End Sub
Qui insert une ligne. En N1 j'ai la dernière ligne utilisé -> x = Range("N1").Value
Je voudrais insérer une ligne sous la ligne ou je suis, j'ai essayé -> x = Target.Row
Mais cela ne fonctionne pas.

Comment réaliser cela ?
Dominique
 
Dernière édition:

MatiChoux

XLDnaute Occasionnel
Re : Insertion ligne par VBA

Hello WDAndCo,

L'idéal aurait été de recréer un topic avec ton propre problème (bien qu'il soit indiscutablement lié à ce sujet de discussion). Seulement moins de gens vont venir t'aider puisqu'ils vont considérer que le sujet a déjà été traité au vue du nombre de réponses apportées.

Bref dans ton code il y a ces deux lignes :
Code:
Rows(x).Select
Selection.Insert Shift:=xlDown
Tu sélectionnes la ligne pour laquelle l'index vaut x (ta variable). Si tu veux ajouter une ligne juste avant celle que tu sélectionnes, il suffit simplement de sélectionner la ligne précédente non ?
Code:
Rows(x - 1).Select
Selection.Insert Shift:=xlDown
Cordialement, Mat'
 

grisan29

XLDnaute Accro
Re : Insertion ligne par VBA

bonjour a vous
cela reviens au meme que la réponse ci dessus de Matichoux
voici ce que j'ai derriere un bouton pour ajouté 3 lignes apres la 3 eme et ainsi de suite
Rows("5:3").Insert Shift:=x1Down
Pascal
 
Dernière édition:

WDAndCo

XLDnaute Impliqué
Re : Insertion ligne par VBA

Bonjour le Forum, merci pour vos réponses
Le problème reste entier, car X = la derniere ligne utilisé.
Comment mettre le numéro de la ligne ou je suis dans X, puis faire l'insertion ?

Dominique
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas