Supprimer ligne si elle ne contient pas "text" avec left

Bonjour,

Désolé, j'ai encore une fois l'impression de poser une question "con" ça devrai être si simple mais je bloque complétement.

Je souhaite supprimer toutes les lignes d'une feuille en colonne A qui ne commencent pas par Nom de Bloc: ni par Visibilité: ni par...j'ai plusieurs autre cas.

plus je cherche, plus je m'enfonce... je chercher avec left, ca me semblé logique...je ne doit pas l'être

Sub nettoyer()
Application.ScreenUpdating = False
DerLig = Range("A65536").End(xlUp).Row
For Ligne = 1 To DerLig
If Left(Range("A" & Ligne), 12) <> "Nom du bloc:" Then
Range("A" & Ligne).Select
Selection.EntireRow.Delete
Application.ScreenUpdating = True
End If
Next
End Sub

En gros je cherche a nettoyer ça tout en gardant quelque ligne :

REFERENCE DE BLOC Calque: "E-Electrique"

Espace: Espace objet

Maintien = a37b6

Nom du bloc: "PC Mono"

Nom anonyme: "*U2371"

en point, X= -44736.1 Y= 6132.9 Z= 0.0

Facteur d'échelle X: 1.0

Facteur d'échelle Y: 1.0

Angle de rotation: 0

Facteur d'échelle Z: 1.0

UnitésIns: Millimètres

Conversion d'unités: 1.0

Mettre à l'échelle uniformément: Oui

Autoriser la décomposition: Oui

Visibilité: Clim

C'est un export d'autocad, pour certain objet j'ai d'autre ligne a garder.

Merci d'avance

Harissa23

Bonsoir

A tester

Option Compare Text   ' Pas de différence minuscule/majuscule
Sub nettoyer()
  Application.ScreenUpdating = False
  derlig = Range("A65536").End(xlUp).Row
  For ligne = derlig To 1 Step -1
    If Range("A" & ligne) Like "Nom du bloc:*" Or Range("A" & ligne) Like "en point,*" Or Range("A" & ligne) Like "Visibilité:*" Then
      Rows(ligne).Delete
    End If
  Next ligne
  Application.ScreenUpdating = True
End Sub

Merci Banzai64

Dans l'esprit ca marche mais le soucis ça supprime les ligne que je souhaite garder ^^

en gros je veux passer de

REFERENCE DE BLOC Calque: "E-Electrique"

Espace: Espace objet

Maintien = a37b6

Nom du bloc: "PC Mono"

Nom anonyme: "*U2371"

en point, X= -44736.1 Y= 6132.9 Z= 0.0

Facteur d'échelle X: 1.0

Facteur d'échelle Y: 1.0

Angle de rotation: 0

Facteur d'échelle Z: 1.0

UnitésIns: Millimètres

Conversion d'unités: 1.0

Mettre à l'échelle uniformément: Oui

Autoriser la décomposition: Oui

Visibilité: Clim

à

Nom du bloc: "PC Mono"

en point, X= -44736.1 Y= 6132.9 Z= 0.0

Visibilité: Clim

Merci encore pour l'aide

Bonsoir

Zut j'ai lu en travers

Il faut inverser les conditions

Option Compare Text   ' Pas de différence minuscule/majuscule
Sub nettoyer()
  Application.ScreenUpdating = False
  derlig = Range("A65536").End(xlUp).Row
  For ligne = derlig To 1 Step -1
    If Not Range("A" & ligne) Like "Nom du bloc:*" And Not Range("A" & ligne) Like "en point,*" And Not Range("A" & ligne) Like "Visibilité:*" Then
      Rows(ligne).Delete
    End If
  Next ligne
  Application.ScreenUpdating = True
End Sub

Merci fortement Banzai64 !!

Ça fonctionne nickel !

Merci de m'avoir appris la fonction Like et *, * que j'utilisé déja pour faire des recherche sur windows genre Image*.jpg

c'est super !

Merci encore

cordialement

Harissa23

Rechercher des sujets similaires à "supprimer ligne contient pas text left"