Suprression de lignes dans une BDD

Mogki

XLDnaute Nouveau
Bonjour à tous,

Je suis nouveau sur ce forum et débutant sur Excel.

Je vous expose mon problème (que beaucoup d'entres vous vont trouver facile à résoudre j'en suis sûr)

J'ai une base de donnée a épurer en fonction d'une liste d'adresses mails non valides (placée dans une autre feuille).

Ma BDD à une forme (Société, prénom, nom,... email, ..) est est placée sur la feuille 1.
Mon listing d'emails non valides est en feuille 3 et ne comporte que l'email.

Ainsi je voudrais savoir comment est-ce que je peux arriver, avec une macro, à rechercher toutes mes données puis à ne supprimer que celles qui sont égales aux valeurs de mon autre feuille.

J'ai fait une ébauche de macro (qui ne fonctionne pas) si vous voulez vous marrer (preuve que j'ai essayé ... mais que je suis loin d'avoir votre niveau):rolleyes:.

Sub suppresion()
Sheets(Feuil1!).Activate
Range("E2:E16208") = ValeurA

Sheet(Feuil3!).Activate
Range("C2:C1543") = ValeurB
Next
Then if ValeurA = ValeurB
Section.EntireRow.Delete
End Sub
 

Mogki

XLDnaute Nouveau
Re : Suprression de lignes dans une BDD

Oups, désolé.

Voici le fichier j'ai du le modifier pour pouvoir le joindre.;)
 

Pièces jointes

  • Classeur1.xlsx
    291.3 KB · Affichages: 39
  • Classeur1.xlsx
    291.3 KB · Affichages: 42
  • Classeur1.xlsx
    291.3 KB · Affichages: 63

Patrice33740

XLDnaute Impliqué
Re : Suprression de lignes dans une BDD

Bonjour,

Pas besoin de macro, une formule pour détecter les mails à éliminer + un filtre sur vrai, et il n'y a plus qu'à supprimer toutes les lignes filtrées.

Ton fichier simplifié en retour :
 

Pièces jointes

  • Classeur 0.xls
    261.5 KB · Affichages: 58

Mogki

XLDnaute Nouveau
Re : Suprression de lignes dans une BDD

Bonjour à tous les deux,

Paritec, ta macro ne fonctionne pas sur ma BDD de base (j'ai ajouté d'autres colonnes, et malgré mes modifications ça ne fonctionne pas. :/

Après modification, la forme est la suivante :
Sub supprimer()
Dim i&, aa, bb, cc, a&, n&, x
With Feuil1
aa = .Range("A2:H" & .Range("A" & Rows.Count).End(xlUp).Row)
End With
With Feuil3
bb = .Range("C1:C" & .Range("C" & Rows.Count).End(xlUp).Row)
End With
ReDim cc(1 To UBound(aa), 1 To UBound(aa, 2)): x = 1
For i = 1 To UBound(aa)
For a = 1 To UBound(bb)
If aa(i, 8) = bb(a, 1) Then GoTo 1
Next a
For n = 1 To UBound(aa, 2)
cc(x, n) = aa(i, n)
Next n
x = x + 1
1 Next i
With Feuil1
.Range("A2:H" & .Range("A" & Rows.Count).End(xlUp).Row).ClearContents
.Range("A2").Resize(UBound(cc), UBound(cc, 2)) = cc
End With
MsgBox "C'est fini", , "Traitement terminé"
End Sub

Patrice33740, je comprends que ta solution soit la plus simple, cependant, je te fais part de mon ignorance. Je ne sais pas du tout où trouver la "une formule pour détecter les mails à éliminer" :confused: . Je suis perdu devant les multiples fonctions d'excel.

Parce que si j'ai bien compris tu utilise une fonction recherche puis tu marques les valeurs dans une autre colonne et enfin tu les tri ?
En fait, c'est la fonction que tu utilises à la base que je ne connais pas ou que j'utilise mal. Utilises-tu "Recherche", "RechercheV" ou une utre fonction ? Et quelle forme prend-t-elle ?
 

gosselien

XLDnaute Barbatruc
Re : Suprression de lignes dans une BDD

Bonjour,

en fait Patrice33740 fait un simple test entre la colonne E en feuil1 et la colonne C en feuil3; si l'occurence est trouvée, alors ça indique vrai, sinon faux et c'est une solution simple mais efficace à mon humble avis :)
 

Paritec

XLDnaute Barbatruc
Re : Suprression de lignes dans une BDD

Re Mogki le forum
Paritec, ta macro ne fonctionne pas
j'aime beaucoup les remarques de ce genre !!! que tu ne saches pas modifier ma macro, je suis d'accord, mais ma macro fonctionne parfaitement sur le fichier que tu as fourni !!!
Que tu n'aies pas été foutu de joindre un fichier ressemblant à ton vrai fichier c'est ton problème, mais il ne faut pas raconter n'importe quoi après!!
a+
Papou:)
 
Dernière édition:

Mogki

XLDnaute Nouveau
Re : Suprression de lignes dans une BDD

Je suis désolé Paritec, je ne disais pas ça méchamment. J'ai juste dis ça maladroitement et je m'en excuse.

En effet, ta macro fonctionne parfaitement sur le fichier que tu m'as joins.
Je voulais juste dire qu'étant donné que j'implémente en continu ma BDD, quand j'ai voulu modifier la macro que tu m'as fourni, je n'y suis pas arrivé.

Je cherchais plus à comprends la logique de ta macro et à comprends qu'est-ce que je n'avais pas bien adapté à la nouvelle situation.
 

Patrice33740

XLDnaute Impliqué
Re : Suprression de lignes dans une BDD

Bonjour,

Patrice33740, je comprends que ta solution soit la plus simple, cependant, je te fais part de mon ignorance. Je ne sais pas du tout où trouver la "une formule pour détecter les mails à éliminer" :confused: . Je suis perdu devant les multiples fonctions d'excel.

Parce que si j'ai bien compris tu utilise une fonction recherche puis tu marques les valeurs dans une autre colonne et enfin tu les tri ?
En fait, c'est la fonction que tu utilises à la base que je ne connais pas ou que j'utilise mal. Utilises-tu "Recherche", "RechercheV" ou une utre fonction ? Et quelle forme prend-t-elle ?

Tout est déjà dans le fichier joint !!!

La méthode est simple et rapide :
  1. écris une formule pour détecter les mails à éliminer , en F2 :
    =NB.SI(Feuil3!C:C;Feuil1!E2)>0
  2. double-cliques sur la poignée de recopie :
    cela "tire" la formule jusqu'à la dernière ligne ;
  3. filtres la colonne F sur VRAI :
    ne restent affichées que les lignes à supprimer ;
  4. sélectionnes toutes le lignes :
    cliques sur le numéro de la première ligne (en dessous des titres), appuies sur les touches Maj+Ctrl+Flèche bas ;
  5. supprimes les lignes :
    cliques droit sur un numéro des lignes sélectionnées, supprimer ;
  6. supprimes le filtre (ou affiches tout).
 

Mogki

XLDnaute Nouveau
Re : Suprression de lignes dans une BDD

Merci beaucoup Patrice pour ton aide.

Tu m'avais bien donné la solution du premier coup et je me demande encore comment j'ai fait pour ne pas remarquer la formule ! (Trop de projets et peu de sommeil, ça n'aide pas à réfléchir ^^' ).

Désolé de vous avoir embêté avec des détails bêtes et encore merci pour votre aide précieuse.

Bonne journée.
 

Discussions similaires