Comment supprimer des données d'un fichier a l'aide d'un autre fichier

  • Initiateur de la discussion Initiateur de la discussion fredgoral
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

fredgoral

Guest
Bonjour,

Débutant sur exel 2007, je cherche une solution pour supprimer les mauvaises adresses mails d'une base de données. Pour cela je dispose d'un fichier csv dans le quel se trouve la base de données (Exposants mailing1) avec les noms, adresses,..., et mail, et d'un autre fichier listant toutes les adresses mails fausses (BadMail).
J'ai essayé avec un bouton, mais le code que j'ai trouvé ne me correspond pas et je n'ai pas le savoir suffisant pour le modifier a ma guise.

Je vous joint deux fichiers pour exemple.

Merci

FS
 

Pièces jointes

Re : Comment supprimer des données d'un fichier a l'aide d'un autre fichier

Bonjour,
Pourquoi ne pas juxtaposer les 2 colonnes de mail (bonne-mauvaise) et faire une recherche des doublons se trouvant dans la mauvaise colonne?
C'est une méthode simple, qui peut même être simplement filtrée?
A essayer?
A+
 
Re : Comment supprimer des données d'un fichier a l'aide d'un autre fichier

Bonjour, a vous deux et merci pour vos réponses.

J'ai testé le fichier de phlaurent55 et cela fonctionne avec la première adresse. mais les suivantes ne sont pas surligné.
Pour la procédure : j'ai copié/collé les colonnes du vrai fichier en lieu et place sur le fichier 111.xlsm, j'ai activé les macros et cliqué sur le bouton. La première adresse mail en double et surligné en rouge ensuite le cadre se positionne sur la première adresse mail de la colonne et fin ?!?

J'ai aussi testé la recherche de doublon mail la je dois vraiment être une buse😛.
Pour la procédure j'ai essayé plusieurs options, sélectionné le tableau complet, une colonne, deux colonnes,... A chaque fois j'ai comme résultat :
207 valeurs trouvées et supprimées - 520 valeurs uniques.
et les doublons, tout ou en partie, ce trouvent encore dans les deux colonnes.

En fait mon fichier réel se décompose comme ceci :

Exposants mailing : 727 entrées dont 524 avec adresses mails.
Badmail : 60 entrées dont 24 se retrouvent dans le fichiers Exposants mailing et 36 n'y sont pas.

En final le résultat devrait donc être 727 Entrées dont 500 avec adresses mails.

Je voudrais pouvoir ensuite reproduire le procédé pour un autre fichier plus important, celui du public (7000 à 8000 entrées).

Si vous avez une idée d'où cela cloche...😕

@+
 
Re : Comment supprimer des données d'un fichier a l'aide d'un autre fichier

Bonjour à tous,

J'ai refait des test avec le fichier 111.xlsm en fait il s'arrête dès qu'il trouve la première adresse identique, il ne va pas plus loin pour vérifier s'il y a en d'autre.
A mon avis c'est dans cette partie du code que cela se passe :

Range("N1:N" & Range("N65535").End(xlUp).Row).Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=N1=$P:$P"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority

Je continue mes investigations, d'ici la si vous avez une idée 😱

@+

Fred
 
Re : Comment supprimer des données d'un fichier a l'aide d'un autre fichier

Bonjour a tous voici les news 🙁

Bon ben c'est largement au dessus de mes compétence le vba, quand je vois partout langage simple ca me fait peur
J'ai testé plusieurs chose mais rien n'y fait le résultat est le même la macro de phlaurent55 ne fonctionne que partiellement même le fichier d'origine avec les noms tronqués donne le même résultat c.a.d je n'ai que le premier mail identique qui est surligné, les autres ne le sont pas.
Pour le moment je n'ai gardé que la première partie du code qui permet de récuperer la colonne des mauvais mails et j'ai ensuite appliqué une mise en forme conditionnelle avec cette formule =ET(N6<>0;NB.SI($R$6:$R$30000;N6)>0) trouvé sur un forum et adapté a mon tableau. comme cela ca marche. J'ai essyé de l'intégrer a la macro mais la cela ne marche pas.
 
Dernière modification par un modérateur:
Re : Comment supprimer des données d'un fichier a l'aide d'un autre fichier

Bonjour phlaurent55,

Merci du temps que tu passe, effectivement maintenant cela marche 😀
J'ai vu que tu avais rajouté une ligne pour effacer la mise en forme et que le problème venait de la formule. Je vais l'adapter et intégrer ta nouvelle macro à mon tableau qui a déjà évolué.

J'ai d'autres idées pour améliorer ce tableau car je me rend compte, après moulte recherche😕, que l'on peut faire plein de truc avec excel lorsque l'on maitrise un peu le vba.

J'ai pas trouvé à quoi servait le ="= au début de la formule pourrais-tu me le dire ?

Encore merci.

@+
 
Re : Comment supprimer des données d'un fichier a l'aide d'un autre fichier

Re;

je suppose que tu parles de ceci:
Code:
Formula1:="=Nb.Si($P:$P;$N1)>0"
Formula1:= ce qui suit entre guillemets c'est la formule prise en compte dans la mise en forme conditionnelle "=Nb.Si($P:$P;$N1)>0"

il te fallait donc voir plus "large" que ="=

si tu veux, je peux te faire une macro qui supprimera automatiquement toutes les adresses qui sont reprises dans la feuille BadMail

à+
Philippe
 

Pièces jointes

Dernière édition:
Re : Comment supprimer des données d'un fichier a l'aide d'un autre fichier

Bonjour Philippe,

Exact, je ne voyais pas pourquoi deux signe = maintenant c'est bon, merci.
Ok pour la macro permettant de supprimer les adresses mais je ne vousdrais en fait qu'effacer les mauvaises adresses mais garder la fiche exposant.
Pour le moment j'ai un premier bouton qui me sert a récuperer les données directement dans leurs fichiers d'origine, ensuite, grâce à toi, les mauvaises adresses sont surlignées. Je compte ensuite faire un deuxième bouton qui permettra d'effacer les mauvaises adresses et de mettre à jour la base de donnée d'origine.
Cela devrait être a peu près complet ainsi.

Merci pour ton soutient et quel pied quand la macro finit par passer d'un bout à l'autre.

@+

Fred
 
Re : Comment supprimer des données d'un fichier a l'aide d'un autre fichier

Re,

J'avais pas remarqué le fichier joint, je viens de le tester mais ce n'est pas tout a fait le résultat escompté, je souhaite effacer juste l'adresse mail mais garder le reste des informations car si son adresse mail est fausse l'exposant lui est juste et ses coordonnées postales et téléphoniques aussi. Le but est ensuite d'appeler les exposants pour lesquels je n'ai pas la bonne adresse et de mettre à jour leur fiche.
Si t'as une idée pour ca je prend.
Merci
@+
Fred
 
Re : Comment supprimer des données d'un fichier a l'aide d'un autre fichier

Re,
je souhaite effacer juste l'adresse mail mais garder le reste des informations
voir fichier en pièce jointe pour répondre à la demande

à+
Philippe
 

Pièces jointes

Re : Comment supprimer des données d'un fichier a l'aide d'un autre fichier

Salut Philippe,

Mon tableau a bien évolué,

J'ai crée un UserForm avec 3 boutons :

"Sélection" qui me permet de sélectionner que la partie nécessaire du tableau pour effectuer un tri ou manipuler les données.

"Import" qui contient ce code :

Code:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
    Cells.FormatConditions.Delete
    ActiveWorkbook.Colors(3) = RGB(255, 0, 0)
    ActiveWorkbook.Colors(43) = RGB(153, 203, 1)
    ActiveWorkbook.Colors(46) = RGB(250, 150, 70)
    Workbooks.Open "\\Jopc\mes documents\BASE de Données\EXPOSANTS\Exposants Mailing.xls"
    Range("$A$1:$Q$30000").Select
    Range("$A$1:$Q$30000").Copy
    Workbooks("Exposants Traitement Mailing.xlsm").Activate
    Range("$A$6:$Q$30000").Select
    ActiveSheet.Paste
    Workbooks.Open "D:\Documents\Goral-Expo\Traitement Mailing\Exposants\BADMAIL.csv", Local:=True
    Range("$A$1:$A$30000").Select
    Range("$A$1:$A$30000").Copy
    Workbooks("Exposants Traitement Mailing.xlsm").Activate
    Range("R6").Select
    ActiveSheet.Paste
    Workbooks.Open "D:\Documents\Goral-Expo\Traitement Mailing\Exposants\OPEN.csv", Local:=True
    Range("$A$1:$A$30000").Select
    Range("$A$1:$A$30000").Copy
    Workbooks("Exposants Traitement Mailing.xlsm").Activate
    Range("S6").Select
    ActiveSheet.Paste
    Workbooks.Open "D:\Documents\Goral-Expo\Traitement Mailing\Exposants\CLICK.csv", Local:=True
    Range("$A$1:$A$30000").Select
    Range("$A$1:$A$30000").Copy
    Workbooks("Exposants Traitement Mailing.xlsm").Activate
    Range("T6").Select
    ActiveSheet.Paste
    Range("N1:N" & Range("N65535").End(xlUp).Row).Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=Nb.Si($R:$R;$N1)>0"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = RGB(255, 0, 0)
        .TintAndShade = 0
    Range("N1:N" & Range("N65535").End(xlUp).Row).Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=Nb.Si($S:$S;$N1)>0"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = RGB(250, 150, 70)
        .TintAndShade = 0
    Range("N1:N" & Range("N65535").End(xlUp).Row).Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=Nb.Si($T:$T;$N1)>0"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = RGB(153, 203, 1)
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
    End With
    Selection.FormatConditions(1).StopIfTrue = False
    End With
    Selection.FormatConditions(1).StopIfTrue = False
    [N1].Select
    Application.ScreenUpdating = True
    ActiveWorkbook.ResetColors
End Sub

et qui permet récupérer les éléments dans les différents fichiers, de les inserer dans le tableau et de les traiter.

"Export" c'est le 3ème et dernier bouton, il me permettra d'effacer les badmails et de mettre à jour le fichier de base (dans le code c'est : Exposants Mailing.xls) c.a.d le fichier qui concentre l'ensemble des données.

Pour ce troisième bouton j'ai essayé ce code que j'ai glané sur le net et que j'essaye d'adapter à mon cas mais pour le moment je n'en suis qu'au début, et forcément ca marche pas.

Code:
Private Sub CommandButton3_Click()
Application.ScreenUpdating = False
    ActiveWorkbook.Colors(3) = RGB(255, 0, 0)
    If MsgBox("Etes-vous sûr de vouloir mettee à jour les données ?", vbYesNo) = vbYes Then
            On Error Resume Next
                For Each cell In feuille.Cells.SpecialCells(xlCellTypeConstants)
                    If cell.Interior.ColorIndex = (3) Then cell.ClearContents
                Next cell
            End If
End Sub

Je vais essayé de voir si je peux adapter le dernier que tu as fait mais les deux parties (selection/mise en forme et effacer) me semble bien imbriqué. C'est pourquoi j'optais plus pour la solution de repérer les cellules en rouges = effacer les données.

Voila ou j'en suis, en tout cas merci car ton aide m'a été bénéfique autant pour l'élaboration du code que pour l'envie de continuer. j'etais au bord de la noyade au début 😀

@+

Fred
 
Re : Comment supprimer des données d'un fichier a l'aide d'un autre fichier

Bonjour Phillipe,

J'ai testé celle la aussi

Code:
Sub Bouton1_Clic()
Application.ScreenUpdating = False
Dim cel As Range
ActiveWorkbook.Colors(3) = RGB(255, 0, 0)
If MsgBox("Etes-vous sûr de vouloir mettee à jour les données ?", vbYesNo) = vbYes Then
On Error Resume Next
For Each cel In Range("N6:N65000")
With cel
If .Interior.ColorIndex = RGB(255, 0, 0) Then
.ClearContents
End If
End With
Next cel
End If
[N1].Select
Application.ScreenUpdating = True
ActiveWorkbook.ResetColors
End Sub

mais cela ne fonctionne pas. Le code passe bien mais cela n'efface pas les contenus des cellules ayant une couleur de fond rouge.
 
Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
26
Affichages
2 K
S
Réponses
29
Affichages
2 K
StanislasC
S
S
Réponses
13
Affichages
2 K
sanae_J
S
Retour