XL 2019 Suppression de lignes avec condition VBA

MONTREAL2020

XLDnaute Junior
Bonjour,

Ne connaissant pas grand chose au VBA. je souhaiterais savoir quel code appliquer pour supprimer des lignes qui contiennent le mot (OUT) existant sur la colonne exemple 44. cela doit se faire sur l'ensemble des lignes du tableau .

Merci pour votre aide
 

MONTREAL2020

XLDnaute Junior
Bojour
Bonsoir MONTREAL2020,

Vous seul savez ce que vous avez fait, la feuille est peut-être protégée.

A+
Bonsoir job75,
J'ai tenté de rajouter des formules dans 3 colonnes a droite de la feullle.
Si y a un lien ou je partagerai avec vous le fichier .
il a beaucoup changer depuis la 1ère version :)

UPL 1 et UPL 2
je les ai créer pour obtenir un fichier dont les lignes contiennent la mention UPL 1 et dans un autre fichier les contenant la mention UPL 2 ( bien sur sans les entêtes)
Les deux fichier s'actualisent à chaque fois je souhaite avoir une dernière version (vBA Mise_en_forme).
et ma base (commande) reste intacte.


Merci
 

Pièces jointes

  • Montreal2021.xlsb
    1 000 KB · Affichages: 13
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour MONTREAL2020, le forum,

Une 1ère remarque sur votre dernier fichier post #17.

Chez moi la suppression d'une ligne quelconque de la feuille "Commande" prend un temps fou.

C'est dû aux formules des feuilles "Liste Destination (UPL 1)" et "Liste Destination (UPL 2)".

Je les ai allégées dans le fichier joint en remplaçant LIGNES("$1:1) par LIGNE().

De plus la validation matricielle est inutile.

Une 2ème remarque, maintenant les "OUT" sont en colonne AS donc il faut utiliser :
VB:
Sub Suppr()
    Dim n&, i&
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual 'évite le recalcul des formules
    With ActiveSheet 'Avec la feuille active
        n = .Range("A" & .Rows.Count).End(xlUp).Row  'je recherche la dernière ligne remplie de la colonne A
          For i = n To 2 Step -1 'Je boucle sur chaque cellule de la colonne AR en partant du bas vers le haut (ligne2) (STEP -1 pour remonter ligne par ligne
              'Si dans la colonne AS et la ligne, il y a le mot OUT, je supprime la ligne
              If .Range("AS" & i).Value = "OUT" Then .Range("AS" & i).EntireRow.Delete
          Next i
    End With
    Application.Calculation = xlCalculationAutomatic
End Sub
Il n'y a que 15 lignes à supprimer mais cela prend quand même chez moi 0,97 seconde.

A+
 

Pièces jointes

  • Montreal2021(1).xlsb
    329.3 KB · Affichages: 3

MONTREAL2020

XLDnaute Junior
Bonjour MONTREAL2020, le forum,

Une 1ère remarque sur votre dernier fichier post #17.

Chez moi la suppression d'une ligne quelconque de la feuille "Commande" prend un temps fou.

C'est dû aux formules des feuilles "Liste Destination (UPL 1)" et "Liste Destination (UPL 2)".

Je les ai allégées dans le fichier joint en remplaçant LIGNES("$1:1) par LIGNE().

De plus la validation matricielle est inutile.

Une 2ème remarque, maintenant les "OUT" sont en colonne AS donc il faut utiliser :
VB:
Sub Suppr()
    Dim n&, i&
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual 'évite le recalcul des formules
    With ActiveSheet 'Avec la feuille active
        n = .Range("A" & .Rows.Count).End(xlUp).Row  'je recherche la dernière ligne remplie de la colonne A
          For i = n To 2 Step -1 'Je boucle sur chaque cellule de la colonne AR en partant du bas vers le haut (ligne2) (STEP -1 pour remonter ligne par ligne
              'Si dans la colonne AS et la ligne, il y a le mot OUT, je supprime la ligne
              If .Range("AS" & i).Value = "OUT" Then .Range("AS" & i).EntireRow.Delete
          Next i
    End With
    Application.Calculation = xlCalculationAutomatic
End Sub
Il n'y a que 15 lignes à supprimer mais cela prend quand même chez moi 0,97 seconde.

A+

Bonjour Job75

Merci infiniment :)

Une question:
Un conseil pour apprendre les bases de VBA s'il vous plait. (Tuto,....)
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 143
Membres
103 129
dernier inscrit
Atruc81500