Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Macro: Sauter une ligne si trouve un mot

3 réponses
Avatar
Xavier
Bonjour,

je souhaiterai incorporer dans une macro la fonction suivante:
j'ai un tableau généré automatiquement avec beaucoup de sous-totaux.
Il faudrait que si je trouve le mot "TOTAL" dans la ligne, la macro insère
une ligne blanche sur la ligne en dessous.

Pourriez-vous me venir en aide ?

Merci d'avance pour ce forum salvateur !

- Xavier

3 réponses

Avatar
AV
Pour la valeur "Total" à chercher en colonne A

Sub zzz()
For i = [A65536].End(3).Row To 1 Step -1
If Cells(i, 1) = "Total" Then Cells(i + 1, 1).EntireRow.Insert
Next
End Sub

AV
Avatar
Laurent Daures
Bonjour,
à adapter à la colonne que tu désires (A,B...)

Sub Ligne_blanche()
Application.ScreenUpdating = False
For i = 20 To 2 Step -1
If Range("A" & i) = "TOTAL" And Range("A" & i - 1) <> "" Then
Range("A" & i).Insert Shift:=xlDown
End If
Next
End Sub

Amicalement
Sitting Hoax

"Xavier" a écrit dans le message de news:

Bonjour,

je souhaiterai incorporer dans une macro la fonction suivante:
j'ai un tableau généré automatiquement avec beaucoup de sous-totaux.
Il faudrait que si je trouve le mot "TOTAL" dans la ligne, la macro insère
une ligne blanche sur la ligne en dessous.

Pourriez-vous me venir en aide ?

Merci d'avance pour ce forum salvateur !

- Xavier


Avatar
LSteph
Bonjour,

Pour faire académique je devrais faire un truc qui va de bas en haut mais
bon!

Au cas où le mot "TOTAL" puisse apparaître dans n'importe quelle colonne de
la ligne
Sélectionner d'un bloc toutes les lignes à traiter puis executer
ceci à mettre dans module standard:

'****
Sub insersitot()
Dim c As Range
Dim tst As Boolean
Dim nrw As Long
Dim cpt As Long
nrw = Selection.Rows.Count
tst = False
cpt = 1
Application.ScreenUpdating = False
Do While Not cpt > nrw

If tst Then
ActiveCell.EntireRow.Insert
nrw = nrw + 1
End If
For Each c In Selection.Rows(1).Cells
If UCase(c.Value) = "TOTAL" Then
tst = True
Exit For
Else
tst = False
End If
Next c
cpt = cpt + 1
ActiveCell.Offset(1, 0).EntireRow.Select
Loop
Application.ScreenUpdating = True
End Sub

'****

'lSteph



"Xavier" a écrit dans le message de news:

Bonjour,

je souhaiterai incorporer dans une macro la fonction suivante:
j'ai un tableau généré automatiquement avec beaucoup de sous-totaux.
Il faudrait que si je trouve le mot "TOTAL" dans la ligne, la macro insère
une ligne blanche sur la ligne en dessous.

Pourriez-vous me venir en aide ?

Merci d'avance pour ce forum salvateur !

- Xavier