1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglets)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim I As Integer 'déclare la variable I (Incrément)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim TL() As Variant 'déclare la variable TL (Tableau des Lignes)
Dim J As Integer 'déclare la variable J (incrément)
Application.ScreenUpdating = False 'masque les raffraîchissements d'écran
For Each O In Sheets 'boucle 1 : sur tous les onglets O du classeur
J = 1 'initialise la variable J
Erase TL 'vide le tableau TL
DL = O.Range("B" & Application.Rows.Count).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne B de l'onglet O
TV = O.Range("B1:B" & DL) 'définit la tableau des valeurs TV (les cellules éditées de la colonne B)
For I = 1 To UBound(TV, 1) 'boucle 2 : sur toutes les lignes I du tableau des valeurs TV
'condition "si la donnée ligne I colonne 1 de TV contient un des deux textes
If InStr(1, TV(I, 1), "Memo: Preferred Dividends Related to the Period", vbTextCompare) <> 0 Or InStr(1, TV(I, 1), "Memo: Fitch Eligible Capital", vbTextCompare) <> 0 Then
ReDim Preserve TL(1 To J) 'redimensionne le tableau des lignes TL
TL(J) = I + 2 'récupère dans la variable indexée TL(J) le numéro de ligne I + 2
J = J + 1 'incrémente J
End If 'fin de la condition
Next I 'prochaine ligne de la boucle 2
For I = UBound(TL) To LBound(TL) Step -1 'boucle inversée sur toutes les lignes stockées dans le tableau de lignes TL
Rows(TL(I)).Delete 'efface la ligne TL(I)
Next I 'prochaine ligne de la boucle inversée
Next O 'prochain onglet de la boucle 1
Application.ScreenUpdating = True 'affiche les raffraîchissements d'écran
MsgBox "Traitement des données terminé !" 'message pour indiquer la fin de la macro
End Sub |
Partager