Sous excel Supression ligne Automatic
banbao
Messages postés
6
Statut
Membre
-
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'aurai besoins d'une aide precieuse
Dans une feuille excel d'environ 500000 lignes je voudrai effacer des lignes en Automatique
si et seulement si la valeur est différent de G OU J aprés la syntaxe MID=
Ci joint 3 exemples BRUT et ceux sur trois lignes différente
GPC--PM=PM--MID=1_DOMODULE_C71.01--C=2422217--S=LT_WC_GPC_Chuckspot--R=DOMODULE_C71.SANSALIGN.VA04A00262C0--N=3--G=2--T=3.09659238752066379--I1=Range_PHY_X--I2=Range_PHY_Y
GPC--PM=PM--MID=J934IRI.13--C=2425404--S=LT_WC_GPC_Chuckspot--R=RA69A.49E0.RA69A49E0047--N=3--G=1--T=3.7990593927151779--I1=Range_PHY_X--I2=Range_PHY_Y
GPC--PM=PM--MID=G002412.11--C=2435320--S=LT_WC_GPC_Chuckspot--R=8207B.01A0.8207B00134E3--N=3--G=1--T=7.47596122141144814--I1=Range_PHY_X--I2=Range_PHY_Y
ci joint le resultat escompté les seuls ligne qui m'intéresse
GPC--PM=PM--MID=J934IRI.13--C=2425404--S=LT_WC_GPC_Chuckspot--R=RA69A.49E0.RA69A49E0047--N=3--G=1--T=3.7990593927151779--I1=Range_PHY_X--I2=Range_PHY_Y
GPC--PM=PM--MID=G002412.11--C=2435320--S=LT_WC_GPC_Chuckspot--R=8207B.01A0.8207B00134E3--N=3--G=1--T=7.47596122141144814--I1=Range_PHY_X--I2=Range_PHY_Y
bref j'accepte uniquement les datas qui sont = a G* ou J* aprés le MID=
par conséquent j'efface de ma feuille les autres
merci d'avance pour votre Aide
j'aurai besoins d'une aide precieuse
Dans une feuille excel d'environ 500000 lignes je voudrai effacer des lignes en Automatique
si et seulement si la valeur est différent de G OU J aprés la syntaxe MID=
Ci joint 3 exemples BRUT et ceux sur trois lignes différente
GPC--PM=PM--MID=1_DOMODULE_C71.01--C=2422217--S=LT_WC_GPC_Chuckspot--R=DOMODULE_C71.SANSALIGN.VA04A00262C0--N=3--G=2--T=3.09659238752066379--I1=Range_PHY_X--I2=Range_PHY_Y
GPC--PM=PM--MID=J934IRI.13--C=2425404--S=LT_WC_GPC_Chuckspot--R=RA69A.49E0.RA69A49E0047--N=3--G=1--T=3.7990593927151779--I1=Range_PHY_X--I2=Range_PHY_Y
GPC--PM=PM--MID=G002412.11--C=2435320--S=LT_WC_GPC_Chuckspot--R=8207B.01A0.8207B00134E3--N=3--G=1--T=7.47596122141144814--I1=Range_PHY_X--I2=Range_PHY_Y
ci joint le resultat escompté les seuls ligne qui m'intéresse
GPC--PM=PM--MID=J934IRI.13--C=2425404--S=LT_WC_GPC_Chuckspot--R=RA69A.49E0.RA69A49E0047--N=3--G=1--T=3.7990593927151779--I1=Range_PHY_X--I2=Range_PHY_Y
GPC--PM=PM--MID=G002412.11--C=2435320--S=LT_WC_GPC_Chuckspot--R=8207B.01A0.8207B00134E3--N=3--G=1--T=7.47596122141144814--I1=Range_PHY_X--I2=Range_PHY_Y
bref j'accepte uniquement les datas qui sont = a G* ou J* aprés le MID=
par conséquent j'efface de ma feuille les autres
merci d'avance pour votre Aide
Configuration: XP
5 réponses
-
Bonsoir,
les données sont dans une seule et même cellule ou le "--" signifie que l'on change de colonne ? -
Salut,
chaque ligne commence par GPC et tout le script se trouve dans une meme cellule
Merci -
Bonsoir,
une proposition :Sub supplig() Dim car As String, lig As Long, derlig As Long, a derlig = Cells(Range("A:A").Rows.Count, 1).End(xlUp).Row For lig = derlig To 2 Step -1 car = Mid(Cells(lig, 1).Value, InStr(Cells(lig, 1).Value, "MID=") + 4, 1) If Not (car = "G" Or car = "J") Then a = 1 'Rows(lig).EntireRow.Delete Next lig End Sub
Si MID= n'est pas trouvé la ligne est supprimée (celles des cellules vides en A aussi)
Comme tu as parlé de 500000 lignes j'ai fait en sorte que la macro s'adapte au nombre de lignes d'excel 2003 et 2007
eric -
MRCI ERIC pour cette Proposition j'aurai loisirs a le testé demain
Encore Merci, je t'en dirai des Nouvelles -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
heuuu, je t'ai mis la version intermédiaire qui ne supprime pas les données...
Teste plutôt ça :Sub supplig() Dim car As String, lig As Long, derlig As Long derlig = Cells(Range("A:A").Rows.Count, 1).End(xlUp).Row For lig = derlig To 2 Step -1 car = Mid(Cells(lig, 1).Value, InStr(Cells(lig, 1).Value, "MID=") + 4, 1) If Not (car = "G" Or car = "J") Then Rows(lig).EntireRow.Delete Next lig End Sub
Et j'ai supposé que tu avais une ligne de titre à ne pas traiter.
eric