recherche valeur dans colonne (en vb)

Darnel

XLDnaute Impliqué
Bonjour à tous !!

bon, comme j'ai décider depuis un moment de me lancer un peu dans le vb, je suis devant un problème ( étonnant non ...?)
je cherche à faire une macro faisant la chose suivante :

dans la colonne ab, pour toutes les cellules ayant la valeur "FFF", suprimer la ligne entiere:

j'avais pender à une boucle fonctionnant par ligne (mais je ne parvien pas à le faire, n'ayant jamais fais de boucle...)

Donc en gros, je pensait a une macro disant :

Dans la colonne AB
début recherche en ligne 3
Si AB3 = "FFF"
supprimer la ligne entière
passer à la ligne suivante

toutefois, je ne suis pas sur que cette solution soit très efficace car bdd de 14000 lignes sur 27 colonnes donc, j'ai peur que la manip soit lourde.
Enfin bref si une bonne ame veut bien me filer un coup de main pour réaliser une telle macro ( je pensai à un truc du style :
Dim n as numéro de ligne
mais après, aucune idée de la synthaxe a prendre)
et au passage m'expliquer à quoi correspondent les trucs du style
Dim as range
Dim as byte

etc

simplement pour savoir à quoi ca se rapporte...:eek:

Je sais, j'en demande beaucoup en une fois, mais j'espère ne pas y revenir plus tard, et ne pas vous embeter avec mes capacités neuronnales limitées
 

Dan

XLDnaute Barbatruc
Re : recherche valeur dans colonne (en vb)

Bonjour,

Voici un code à placer dans un module en VBA (ALT+F11) qui supprime les "FFF" dans la colonne AB
Code:
 Sub Supprime()
'Macro par Dan pour Darnel le 16/11/06
Dim derlig As Variant, i As Variant
derlig = Range("AB65536").End(xlUp).Row
For i = derlig To 2 Step -1
If Cells(i, 28) = "FFF" Then Rows(i).Delete
Next i
End Sub

A te lire
 

Darnel

XLDnaute Impliqué
Re : recherche valeur dans colonne (en vb)

Re

Merci à vous deux pour vos réponses aussi efficaces que rapides

J'ai bien compris le fonctionnement de ces deux codes.
cependant ce que je craignais se produit en utilisant ces deux codes :
Vu le nombre de lignes, le temps d'execution est plus que long, donc je vais devoir utiliser une autre solution.

sinon, dernière demande pour ce fil ( en tout cas je l'espère :p )
Y a t il, comme pour pour application.screenUpdating, une ligne de code pour empecher le recalcul de la feuille pendant l'execution de la macro et qu'il s'effectue une fois celle ci terminée?

Merci à vous
 

pierrejean

XLDnaute Barbatruc
Re : recherche valeur dans colonne (en vb)

re

version avec calcul sur ordre en debut de macro
et retablissement automatique en fin de macro

sinon il est possible de prevoir un regroupement des lignes contigues avec FFF et faire un effacement semi-global (mais impossible de garantir une plus grande rapidité)

une idée: lance la macro avant d'aller te coucher (MDR)
 

Pièces jointes

  • Darnel2.xls
    31 KB · Affichages: 87
  • Darnel2.xls
    31 KB · Affichages: 108
  • Darnel2.xls
    31 KB · Affichages: 114

Darnel

XLDnaute Impliqué
Re : recherche valeur dans colonne (en vb)

Merci beaucoup

Je m'en suis sorti autrement :

Une macro qui me fait un trie sur la colonne Ab et ensuite selection via end(xldown) et (xlToright) et clear et le tour est joué, résultat identique et manip plus rapide en execution.

c'etait plus simple mais je voulai tenter par un moyen plus intelligent.
Merci beaucoup pour votre aide

Bonne soirée
 

michel_m

XLDnaute Accro
Re : recherche valeur dans colonne (en vb)

Bonsoir à tous,

A la bourre comme d'hab mais au boulot pas trop le temps...

Pour le fun, p'tiote macro avec récursivité à adapter pour colonne AA (j'ai travaillé en colonne A) et utilisation du gestionnaire d'erreur et de sortie par End au lieu d'exit sub pour éviter la perte de temps du au dépilage

Convient jusqu'à environ 2000 lignes FFF (espace piles alloué chez moi)

Sub supprimerFFF()
Application.ScreenUpdating = False
On Error GoTo sortie
lig = Columns(1).Find("FFF", Range("A65536"), , , xlByRows).Row
Rows(lig).Delete
supprimerFFF
sortie: End
End Sub
 
Dernière édition:

Discussions similaires

Réponses
5
Affichages
244
Réponses
7
Affichages
405
Réponses
21
Affichages
384

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 854
Membres
103 975
dernier inscrit
denry