VBA rechercher chaîne caractères

C

C@thy

Guest
Bonjour le forum,

oilà, je me pose une 'tite question juste avant de partir pour un long ouik-end :

je voudrais rechercher (pour les supprimer) toutes les ligne dont la colonne obervations (D) contient "suppr" (ex. : suppression, à supprimer etc...)

y a-t-il un autre moyen que Cells.Find(What:="suppr" etc....?
pas l'idéal dans une boucle sur toute la colonne

Merci pour votre aide et bon 14 juillet!!!

C@thy
BipBip.gif
 
Y

Yeahou

Guest
Re Bonjour tout le monde

Je suis en train de plancher sur plus rapide
le problème de temps posé n'est pas de déterminer les lignes à supprimer mais comment les supprimer de la manière la plus rapide. Il y a un trés net ralentissement à partir d'environ 5000 lignes individuelles à supprimer et c'est à partir de ce moment que la macro de thierry creuse vraiment l'écart (deux fois plus rapide) car elle supprime toutes les lignes d'un seul coup. On ne peut pas faire la même chose avec un array.delete car on dépasse les possibilités de l'intruction delete et passer par la sélection est trop long. Je cherche.

Cordialement, A+
 
A

Abel

Guest
Bonjour Cathy,

J'avais repris le code de Thierry pour l'adapter à un cas comme le tien justement.

C'estLien supprimé.

C'est du "bricolage maison". Je ne suis pas pro.
Mais bon, ça peut peut-être te dépanner.

A+

Abel
 
@

@+Thierry

Guest
Hello les zamis et amies

Ce doit être la chaleur, j'ai un peu déliré en régigeant cette macro, mais ça dépote comme disait Abel !! lol

Option Explicit

Sub BiiiiiiiiiiiiiiiBip()
Dim Biip As Worksheet, iiip As Byte
Dim BiiiiiiiiiiiiiiiiiiiP As Range, VrrooooooAhhhhhhhhh As Range

For iiip = 1 To 8
Set Biip = Worksheets(iiip)
Select Case iiip
Case 1, 2, 3
'On fait rien de ces feuilles ? moi y a pas compris lol
Case 4
'Feuille 4 Tableau de "A4 à Dx", Observation en "D", ligne de Heading = 3
Set BiiiiiiiiiiiiiiiiiiiP = Biip.Range("A3:D" & Biip.Range("D65536").End(xlUp).Row)
Set VrrooooooAhhhhhhhhh = Biip.Range("A4:D" & Biip.Range("D65536").End(xlUp).Row)
BiBiiiiiiiiiiiiiiip 4, BiiiiiiiiiiiiiiiiiiiP, VrrooooooAhhhhhhhhh, Biip
Case 5
'Feuille 5 Tableau de "A7 à Rx", Observation en "R", ligne de Heading = 6
Set BiiiiiiiiiiiiiiiiiiiP = Biip.Range("A6:R" & Biip.Range("R65536").End(xlUp).Row)
Set VrrooooooAhhhhhhhhh = Biip.Range("A7:R" & Biip.Range("R65536").End(xlUp).Row)
BiBiiiiiiiiiiiiiiip 18, BiiiiiiiiiiiiiiiiiiiP, VrrooooooAhhhhhhhhh, Biip
Case 6
'Feuille 5 Tableau de "A7 à AJx", Observation en "AJ", ligne de Heading = 6
Set BiiiiiiiiiiiiiiiiiiiP = Biip.Range("A6:AJ" & Biip.Range("AJ65536").End(xlUp).Row)
Set VrrooooooAhhhhhhhhh = Biip.Range("A7:AJ" & Biip.Range("AJ65536").End(xlUp).Row)
BiBiiiiiiiiiiiiiiip 36, BiiiiiiiiiiiiiiiiiiiP, VrrooooooAhhhhhhhhh, Biip
Case 7
'Feuille 7 Tableau de "A7 à Qx", Observation en "Q", ligne de Heading = 6
Set BiiiiiiiiiiiiiiiiiiiP = Biip.Range("A6:Q" & Biip.Range("Q65536").End(xlUp).Row)
Set VrrooooooAhhhhhhhhh = Biip.Range("A7:Q" & Biip.Range("Q65536").End(xlUp).Row)
BiBiiiiiiiiiiiiiiip 17, BiiiiiiiiiiiiiiiiiiiP, VrrooooooAhhhhhhhhh, Biip
Case 8
'Feuille 4 Tableau de "A7 à ADx", Observation en "AD", ligne de Heading = 6
Set BiiiiiiiiiiiiiiiiiiiP = Biip.Range("A6:AD" & Biip.Range("AD65536").End(xlUp).Row)
Set VrrooooooAhhhhhhhhh = Biip.Range("A7:AD" & Biip.Range("AD65536").End(xlUp).Row)
BiBiiiiiiiiiiiiiiip 30, BiiiiiiiiiiiiiiiiiiiP, VrrooooooAhhhhhhhhh, Biip
End Select
Next
End Sub

Sub BiBiiiiiiiiiiiiiiip(Bip As Byte, BipBip As Range, BipBipBip As Range, Biip As Worksheet)
On Error Resume Next
BipBip.AutoFilter Field:=Bip, Criteria1:="=*suppr*"
BipBipBip.SpecialCells(xlCellTypeVisible).EntireRow.Delete

Biip.ShowAllData
End Sub

61.gif


Bonne Journée
@+Thierry <--- (mort de rire)
 
C

C@thy

Guest
Coucou Thierry,

nan, les feuilles 1 2 3 on s'en fiche.

merci pour ce super prog personnalisé...

j'ai pas tout compris mais j'ai testé et...

ça me supprime uniquement les lignes de titre, pas les lignes dont la colonne
observations contient suppr, je vais regarder de plus près pour voir ce qui se passe.

Merci et biz

C@thy
BipBip.gif
 
@

@+Thierry

Guest
Bonjour C@thy, le Fil, le Forum

Attention il faut être vraiment précis au poil de ... arf enfin tu m'as compris !! lol

Je t'ai mis en commentaires où je travaillais d'après tes propres explications ...

C'est possible que j'ai mal interprété... par exemple quand tu dis :

"là où ça se complique c'est que sur la feuille 4 j'ai 3 lignes de titres,
sur les feuilles 5 à 8 j'ai 6 lignes de titres, donc pas facile pour le filtre"


Je comprends que la Feuille 4 à une entête en ligne 3 et les Feuilles 5 à 8 en Ligne 6...

De même quand tu dis :

"sur la feuille 5 elle est en R, sur la feuille 6 elle est en AJ,
sur la feuille 7 elle est en Q, sur la feuille 8 elle est en AD"


Je comprends :
1))) que la limite droite du tableau est la colonne "R" pour la feuille 5, "AJ" pour la 6, "Q" pour la 7, "AD" pour la 8...
2))) que la colonne où se trouve le critère de filtre "Suppr" est respectivement en colonne "R" pour la feuille 5, "AJ" pour la 6, "Q" pour la 7, "AD" pour la 8...

Regarde le fichier ci-joint... (je l'avais sauvé en me doutant qu'on allait vers un sbinz pour la synchro !! lol)

Bon App
@+Thierry
 

Pièces jointes

  • XLD-Cathy.zip
    15 KB · Affichages: 21
C

C@thy

Guest
Tutto va bene, c'est moi qui ai fait un "sbinz" sur le jeu d'essai, ça marche
super et ça dépote graaaaave!

La feuille 4 on s'en fout aussi, donc j'ai mis le for à
For iiip = 5 To 8
et j'ai enlevé les case 1, 2, 3 et case 4 et tout est nickel.

Merci mille fois Thierry.

Allez, vas manger, j'y vais aussi (casse-croûte et Perrier).

Muchos Besos Amigo

C@thy
BipBip.gif
 

Discussions similaires

Statistiques des forums

Discussions
312 300
Messages
2 087 000
Membres
103 429
dernier inscrit
PhilippeH