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
568
  • Question
Microsoft 365 Code VBA
Réponses
2
Affichages
308

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 814
dernier inscrit
JLGalley