Inserer ligne dans une macro

Bonjour,

Je viens juste de commencer à me servir des macros. A partir de mon tableau je voudrais inserer juste deux lignes dès que la macro rencontre la valeur "TR". Le probleme est que ma macro insère une ligne à chaque fois qu'elle rencontre la valeur "TR". Dans mon fichier, la première valeur "TR" apparait à la ligne 297 mais ce n'est qu'un exemple elle peut tres bien etre à une autre ligne. Voici ce que j'ai ecris dans la macro.

Sub Insertion()

Dim Lig As Long

Range("B1").Select

Reprise:

ActiveCell.Offset(1, 0).Select

If Len(ActiveCell) = 0 Then Exit Sub

If ActiveCell.Value = "TR" Then

ActiveCell.Rows("1:1").EntireRow.Insert Shift:=xlDown

ActiveCell.Offset(1, 0).Select

End If

GoTo Reprise

End Sub

Merci pour votre aide

39format.zip (30.99 Ko)

Bonjour Titi91,

Une solution plus optimisée :

Sub Insertion()
Dim derlign As Long
Dim trouve As Range
derlign = Range("B" & Rows.Count).End(xlUp).Row 'trouve la dernière ligne de la colonne B
Set trouve = Range("B2:B" & derlign).Find("TR", lookAt:=xlWhole) 'on utilise la méthode Find pour chercher "TR" dans la colonne B
If Not trouve Is Nothing Then Rows(trouve.Row).Resize(2).Insert shift:=xlDown
End Sub

Si on traduit en français ça fait :

  • Recherche de la dernière ligne de B
  • On cherche dans la colonne B à partir de B2 jusqu'à la dernière ligne le terme "TR"
  • Si on le trouve, on insère 2 lignes au-dessus de la ligne où se trouve "TR"

Impeccable, merci encore vba-new

Rechercher des sujets similaires à "inserer ligne macro"