Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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 ?
 

Matheop

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'
 

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:

Matheop

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'
 

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
 

Discussions similaires

Réponses
3
Affichages
588
  • Question
Microsoft 365 Code VBA
Réponses
2
Affichages
321
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…