XL 2013 Supprimer une ligne d'un tableau

desertiguns

XLDnaute Nouveau
Bonjour a tous,
Je suis nouveau sur ce forum et pas très doué sur excel c'est pour cela que je vous sollicite pour résoudre un de mes problèmes. Je vais essayer d’être le plus précis possible !

Alors voila, je dispose d'un certain nombre de tableaux à 3 colonnes (une pour l'Heure, une pour le type, et une pour le numéro), une partie d'un de mes tableaux a été copié au post (je n'ai pas réussis a joindre un fichier désolé !).
Le problème qui se pose est que j'aimerai créer ou coder une macro me permettant de supprimer une ou plusieurs lignes du tableau (je précise qu'il faut la supprimer et pas juste la vider). Les lignes à supprimer seront déterminés par rapport à la colonne "Numéro"
Exemple: Sur le tableau joint, j'aimerai supprimer les lignes contenant les numéros A100034 A100058 et A100363

Heure Numero type
00:11 A100034 A
07:32 A100058 A
05:08 A100036 B
07:16 A100345 A
09:37 A100351 B
09:34 A100357 C
09:27 A100363 C
01:02 A100369 B
08:07 A100375 A
07:43 A100381 A
08:14 A100387 A
05:11 A100393 A
11:46 A100399 A
09:24 A100405 B
09:16 A100411 A

Etant donné que je dispose d'un grand nombre de tableau, j'aimerai avoir cette macro dans un fichier excel vide, puis il me suffira d'y copier tout le tableau, puis de lancer la macro (qui sera par exemple sous la forme d'un bouton, ou autre peu importe).

Le numéro à supprimer seront toujours les même pour tout les tableau. Par ailleurs, étant donné qu'au fil du temps de nouveaux numéros vont devoir à leur tour être supprimés, j'aimerai avoir juste à modifier le code de la macro pour y ajouter le ou les numéros à supprimer puis la relancer.

J’espère avoir été le plus clair possible et je vous remercie tous d'avance pour l'attention portée a mon problème, même si celui-ci venait à ne pas être résolu.

Cordialement,
Desert.
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Ça, avec référence à Microsoft Scripting Runtime cochée :
VB:
Sub SupprNum()
Dim D As New Scripting.Dictionary, V, L As Long
For Each V In Array("A100034", "A100058", "A100363")
   D.Add V, Null: Next V
With ActiveSheet
   For L = .UsedRange.Row + .UsedRange.Rows.Count - 1 To 2 Step -1
      If D.Exists(.Cells(L, 2).Value) Then .Rows(L).Delete
      Next L: End With
End Sub
Remarque: Si les tableaux venait à avoir des dizaines de milliers de lignes, il vaudrait mieux passer par un tableau en mémoire.
 

Discussions similaires

Réponses
2
Affichages
403

Statistiques des forums

Discussions
312 096
Messages
2 085 254
Membres
102 839
dernier inscrit
Tougtoug