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.
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
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
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" <Xavier@discussions.microsoft.com> a écrit dans le message de news:
B8E612D5-B63D-4C72-9141-A22559E8ECFF@microsoft.com...
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.
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
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
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" <Xavier@discussions.microsoft.com> a écrit dans le message de news:
B8E612D5-B63D-4C72-9141-A22559E8ECFF@microsoft.com...
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.
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.