Macro saut de ligne "si mot absent"

Bonjour

Dans un tableau listant :

- titre

- prix

- (livraison)

- Catégorie

- date

- Nb 1

- Nb 2

- Nb 3

… (ce cycle se reproduit sur plus de 2000 lignes dans ce même ordre

Je voudrais ajouter un saut de ligne lorsque le mot "livraison" est absent après le prix

Voici la macro que j'ai créée, mais elle ne fonctionne pas

Pouvez-vous m'aider à la corriger SVP ?

Sub livraison()
Dim DerLigV As Long, LigH As Long, LigV As Long, i As Long, NLigV As Long
Set ShVert = Sheets("FEUIL1")
LigV = 1
Sheets("FEUIL1").Select
Sheets("FEUIL1").Activate
DerLigV = ShVert.[A100000].End(xlUp).Row
For i = 1 To DerLigV
If InStr(ShVert.Cells(LigV + 1, "A").Text, "€") = 1 Then ShVert.Rows(LigV + 1).Insert Shift:=xlDown
'rajoute un saut de ligne si la ligne après l'intitulé est un prix
Next
End Sub

de plus, dans cette macro, l'ajout est systématique, or je ne voudrais ajouter le saut que si "livraison" est absent

Merci

Hello,

ce que vous appelez "saut de ligne" est une insertion de ligne si je lis bien votre macro, non ?

Si oui, il faut que la boucle parte de la fin pour remonter au début sinon l'insertion de ligne décale la fin

For i = DerLigV To 1 Step -1
    'rajoute un saut de ligne si la ligne après l'intitulé est un prix
Next

edit, en fait la macro devrait ressembler à ça

Sub InsertionLigneLivraison()

    Dim ShVert As Worksheet
    Dim DerLigV As Long
    Dim i As Long

    Set ShVert = Sheets("FEUIL1")

    DerLigV = ShVert.Cells(ShVert.Rows.Count, 1).End(xlUp).Row

    For i = DerLigV To 1 Step -1
        If InStr(1, LCase(ShVert.Cells(i, 3).Value), "livraison") = 0 Then
            ShVert.Rows(i + 1).Insert Shift:=xlDown
        End If
    Next i

End Sub

NB : vous utilisez toujours Excel 2003 ???

bonjour,

pour ajouter la ligne que si livraison est absent,

Sub livraison()
Dim DerLigV As Long, LigV As Long
With Sheets("FEUIL1")
    DerLigV = .[A100000].End(xlUp).Row
    For LigV = DerLigV To 2 Step -1
        ' si la ligne contient un prix et que la ligne suivante ne contient pas livraison
        If InStr(1, .Cells(LigV, "A").Text, "€", 1) <> 0 And InStr(1, .Cells(LigV + 1, "A").Text, "livraison", 1) = 0 Then
            'on insère une ligne
            .Rows(LigV + 1).Insert Shift:=xlDown
        End If
    Next
End With
End Sub

Pour répondre à N, non, j'utilise Excel 2007. Merci à "H"pour la macro, elle fonctionne !

Rechercher des sujets similaires à "macro saut ligne mot absent"