Nettoyer une base données

  • Initiateur de la discussion Initiateur de la discussion skut
  • 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 !

skut

XLDnaute Nouveau
Bonjour, je sollicite votre aide pour m'aider à nettoyer une base données. Je m'explique:
J'ai un fichier excel contenant une base de données. Dans un second fichier, j'ai une liste de données que je veux enlever de la première base.
Ce que je voudrais automatiser c'est :
- Prendre la première valeur du fichier2, regarder si elle se trouve dans le fichier1 (à nettoyer).
- Si elle y est, surligner la ligne où elle se trouve en rouge, si elle n'y est pas, ne rien faire.
- Passer à la valeur du fichier2 suivante

J'ai essayer de réaliser cette macro avec l'enregistreur mais je n'arrive pas à faire en sorte que la macro passe à la valeur suivante.

Je vous joins un exemple des fichiers que j'ai (sachant que le fichier1 a en réalité 3613 lignes et le fichier2 1944)

Merci d'avance pour votre aide.
 

Pièces jointes

Re : Nettoyer une base données

Bonjour,

je ne sais pas si c'est voulu, mais il n'y a aucune données communes aux deux fichiers

tes données dans le fichier 1 comptent 13 chiffres, et dans le fichier 2, seulement 12

Faut-il chercher les 12 premiers chiffres?
 
Re : Nettoyer une base données

Oui pardon,j'avais oublié de le préciser, il faut rechercher les 12 premiers chiffres.
Il faut aussi savoir que dans le fichier1 il ne pourra pas y avoir deux nombres dont les 12 premiers chiffres sont identiques et dont le 13ème diffère.
Exemple, il ne peut y avoir :
312654987143
et
312654987149


Est-ce que tout çela ajoute une difficulté pour la macro?

Merci.
 
Re : Nettoyer une base données

Re-,

non, c'était pour la précision

essaie avec ce code, à mettre dans un module du fichier2.xls (comme il compte moins de lignes, ce sera plus rapide)

Code:
Sub recherche()
With Workbooks("fichier1.xls").Sheets("Feuil1")
    'Workbooks("BDD2008 màj 08-2008.xls")
    .Range("A1:A" & .[A65000].End(xlUp).Row).Name = "base"
        For Each cel In Range("A1:A" & [A65000].End(xlUp).Row)
        On Error Resume Next
            .Cells(.Range("base").Find(What:=cel, LookAt:=xlPart).Row, 1).Resize(1, 2).Interior.ColorIndex = 6
        Next cel
End With
End Sub
 
Re : Nettoyer une base données

Ca marche parfaitement, c'est exactement ce qu'il me fallait.
Je te remercie beaucoup, je n'aurais pas su le faire tout seul et si simplement (façon de parler). De plus, le traitement est très rapide, en quelques secondes tout est réglé.
Merci, c'est une macro qui va beaucoup me servir.
 
- 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

Discussions similaires

Réponses
15
Affichages
848
Réponses
5
Affichages
701
Réponses
16
Affichages
507
Retour