Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Supprimer des lignes en vba sous condition

semir

XLDnaute Nouveau
Bonjour,

Apres moultes recherches sur Internet j'ai essayer de construire le code vba qui me permettrais de supprimer des lignes. Je n'ai malheureusement pas reussis et je fait appel á votre aide.

J'ai une colonne repertoriant des Identifiants
Je souhaite supprimer toutes les lignes (sauf l'entete) Avec un identifiant different de "FR*" au debut. Ne garder donc que ceux qui commencent pas FR.

De plus je dois faire ce trie dans plusieurs "Sheet" et je ne reussis pas egalement á inclure le bon code selectionnant la page voulu.

Auriez vous une methode efficace pour resoudre ce Probleme s'il vous plait

Je Joint un exemple en PJ pour visualiser,

Merci pour votre aide.
 

Pièces jointes

  • Exemple vba.xlsx
    10.3 KB · Affichages: 41

ChTi160

XLDnaute Barbatruc
Bonsoir semir
Bonsoir le Fil ,le Forum
une procédure qui fait le boulot Lol
VB:
Option Explicit
Dim Ws As Worksheet
Dim DerLgn As Integer
Dim Lgn As Integer
Sub test()
 Application.ScreenUpdating = False
    With ThisWorkbook 'avec le Classeur
      For Each Ws In .Worksheets 'pour chaque feuille du Classeur
       With Ws 'Avec la feuille
        If .Name Like "Sheet#" Then 'si le nom de la feuille est Sheet suivi d'un Chiffre ex : Sheet1 ,2  pour l'exemple
          DerLgn = .Cells(.Rows.Count, 1).End(xlUp).Row 'on détermine la dernière ligne non vide de la Colonne A
          If DerLgn = 1 Then Goto Suite  'Si ligne = 1 pas de donnée on passe a l'autre feuille
            For Lgn = DerLgn To 2 Step -1 'pour chaque ligne en partant du Bas
             If .Cells(Lgn, 9) Like "FR*" Then 'Si la Cellule  commence pas par "FR" on ne fait rien
               Else 'Si la Cellule de la Colonne 9 ,ne commence pas par "FR"
                      .Cells(Lgn, 9).EntireRow.Delete           'on supprime la Ligne
             End If
            Next Lgn
        End If
       End With
suite :
      Next Ws
    End With
 Application.ScreenUpdating = True
End Sub
Amicalement
jean marie
 

semir

XLDnaute Nouveau
Bonjour jean marie,

Ce code marche super bien. Merci beaucoup pour votre Aide. c'est une partie seulement d'une macro plus grande et je sechais dessus depuis quelques jours. merci encore.

Bonne journée semir
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…