Fonction find

Résolu
roupille008 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention   -  
roupille008 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour tout le monde!

J'ai un tout petit bou de code dans lequel je veux demander la chose suivante à excel:
si tu trouves la même cellule dans une autre feuille tu ne supprime pas la cellule testée, dans le cas contraire tu la supprime.
Je but étant de faire le tri dans mes données, de ne garder que celles qui m'intéressent.
Le hic c'est que je sais pas du tout comment écrire la fonction find, et en cherchant sur google ça m'a pas trop aidé, y en a qui rajoutent des lookin, des lookat des machins que je comprends pas.

Voici mon code:

Dim a As Integer
Dim b As Integer

For a = 50000 To 1 Step -1

    If Find(Cells(a, 30), LookIn:=Worksheet("point de desserte")) = False Then
       Cells(a, b).Select
       Selection.EntireRow.Delete shift:=xlUp
    Next a
    
End Sub



Je suis sur à 90% que j'écrits cette fonction find avec les pieds et que l'erreur vient de là. (les 10% restants vont à la question "j'écrits find ou .find?")

Voilà, merci

A voir également:

1 réponse

roupille008 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention  
 
***** Désolé, j'ai relu mon message plein de fois et j'ai pas vu des erreurs bêtes dans mon code: voici une version plus propre:


Sub trier_olympiades()

Dim a As Integer

For a = 50000 To 1 Step -1

    If Find(Cells(a, 1), LookIn:=Worksheet("point de desserte")) = False Then
       Cells(a, 1).Select
       Selection.EntireRow.Delete shift:=xlUp
    End If
    Next a
    
End Sub



Voilà, c'est tout

PS: au cas ou j'aurais écrit le code tellement mal que ça pretterait à confusion. Je veux qu'il me trouve la même cellule que cells(a,1) dans la feuille "point de desserte".
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
bonjour

dim a as integer avec nombre de lignes: 50000 t'es sûr ?

pourquoi Find ?

application.screenupdating=false
If Application.CountIf(Sheets("point de desserte".).Cells, Cells(a, 1)) = 0 Then Rows(1).Delete

mais avec 50000 lignes avec en plus, des "select" ,ca va durer un max....
0
roupille008 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention  
 
A vrai dire j'ai mis Find car c'était la seule fonction que je connaissais.
Ouai ça va durer un max (surtout avec ma bécane) mais j'ai pas trop le choix, mais connaissances en VBA sont limités, je me contente d'écrire des procédures simples qui malheureusement prennent du temps.

Par contre pour le "integer" je sais qu'il vaut mieux mettre "long" quand on a des gros chffres mais je pensais que ça irait plus vite avec un integer, j'voulais essayer mais vu que ma macro marchat pas... y avait pas grand chose à essayer.

J'viens de rentre le code suivant:


Sub trier_olympiades()

Application.ScreenUpdating = False

Dim a As Long

For a = 50000 To 1 Step -1

    If Application.CountIf(Sheets("point de desserte").Cells, Cells(a, 1)) = 0 Then Rows(a).Delete
    
Next a
    
End Sub



Ca m'a pris genre 5min environ (durant lesquelles le moindre clic sur une autre fenêtre risque de faire tout planter, c'est un peu une roulette russe).

Merci pour ton code (vraiment), c'est exactement ce que je recherchais
0