comment comparer les données de 2 fichiers xls

comment comparer les données de 2 fichiers xls - Logiciels - Windows & Software

Marsh Posté le 18-05-2006 à 18:57:59    

Bonjour,
 
J'ai un fichier excel  comportant l'ensemble des adresses clients (8000 clients) et un autre avec 1000 adresses des meilleurs clients (donc déjà compris dans la liste des 8000)
 
je veux pour pouvoir supprimer automatiquement ces 1000 adresses qui sont déjà dans les fichier client complet afin d'obtenir au final 1 fichier avec mes 1000 meilleurs clients et un autre avec les 7000 autres.
 
Si quelqu'un a une solution pour m'éviter de tout pointer manuellement.... :??:  
 
Merci
@+


Message édité par bdv68 le 18-05-2006 à 18:58:43
Reply

Marsh Posté le 18-05-2006 à 18:57:59   

Reply

Marsh Posté le 18-05-2006 à 21:19:50    

Bonsoir,
Les adresses ont-elles été écrites de la même façon dans les deux tableaux?
sont-elles normalisées?
Les clients ont-ils un identifiant?
Quelle est la structure du tableau?
Si un meilleur client est dépassé par l'un des 7000, faudra-t-il les changer de fichier?
Sinon un petit programme en VB devrait pouvoir faire l'affaire.
A la main je propose: ajouter une colonne au fichier 1000  avec un flag pour les repérer au moment des éliminations.
ajouter par copie le tableau des 1000 à celui des 8000
trier selon le critère qui permet de dire que deux lignes sont identiques,
supprimer les lignes doubles
sécurité: ne travailler que sur des copies des fichiers  
Cordialement

Reply

Marsh Posté le 18-05-2006 à 21:40:46    

UltraEdit ;)

Reply

Marsh Posté le 18-05-2006 à 23:02:16    

seniorpapou a écrit :


Les adresses ont-elles été écrites de la même façon dans les deux tableaux?
oui
sont-elles normalisées?
qu'entendez-vous par normalisées?
Les clients ont-ils un identifiant?
pas d'identifiant
Quelle est la structure du tableau?
7 colonnes (civilité;nom;prénom;adresse;complément adresse; code postal; ville)
Si un meilleur client est dépassé par l'un des 7000, faudra-t-il les changer de fichier?
non, il faut simplement supprimer les 1000 clients du fichier de 8000
Sinon un petit programme en VB devrait pouvoir faire l'affaire.
je ne sais pas programmer en Visual Basic...


 
Merci de votre aide
@+

Reply

Marsh Posté le 19-05-2006 à 13:45:32    

Bonjour,
Normalisé par exemple:
 Madame -> Mme pour toutes et non:Me pour l'une Mme Pour l'autre etc...
 Mademoiselle-> Mlle
 Monsieur->Mr
 Les adresses au format mailing (si je me souviens les majuscules sont obligatoires dans certains champs ...)
 Est-ce urgent (ou en retard)?
Cordialement
 

Reply

Marsh Posté le 19-05-2006 à 19:24:07    

Bonjour,

 

les champs sont bien normalisés et tout est écrit en majuscule (mailing oblige!)
Il faudrait que ce soit fait pour lundi ou mardi ...
Donc si je n'ai pas de solution en automatique pour lundi, je ferai le tout manuellement mardi en ajoutant un flag.

 

Merci

Reply

Marsh Posté le 19-05-2006 à 19:34:46    

As-tu regardé du côté de la fonction EQUIV() ;)

Reply

Marsh Posté le 19-05-2006 à 20:26:34    

Bonsoir,
pour complèter la réponse sur la normalisation:
http://www.laposte.fr/sna/rubrique.php3?id_rubrique=88
si je joins une ou deux macros sauriez-vous les copier et les lancer?
cordialement

Reply

Marsh Posté le 19-05-2006 à 20:47:58    

Bonsoir,
je pense que je devrais m'en sortir...
merci pour l'aide

Reply

Marsh Posté le 19-05-2006 à 21:05:18    

sidney4 a écrit :

As-tu regardé du côté de la fonction EQUIV() ;)


 
Mon fichier excel ne ressemble plus à rien dans ultraedit... :pt1cable:  
je trouve pas la fonction EQUIV... :heink:  
merci quand même

Reply

Marsh Posté le 19-05-2006 à 21:05:18   

Reply

Marsh Posté le 19-05-2006 à 21:20:58    

Pour uedit, il faut faire une macro mais il faut bien connaitre uedit et ce n'est pas évident à expliquer sans avoir les fichiers en question.
Pour la fonction EQUIV d'Excel, c'est une fonction que tu dois paramétrer dans le champ des formules.
Je pense que Google pourrait être ton ami dans ce cas ci.

Reply

Marsh Posté le 19-05-2006 à 21:40:32    

bdv68 a écrit :

Bonsoir,
je pense que je devrais m'en sortir...
merci pour l'aide


 
 
Je propose cette bidouille
   
1) Faire une copie des deux fichiers et travailler sur les copies.
 
A)Introduire la macro "cherche" dans le fichier 8000
remplacer le 999 de la ligne   For n = 0 to 999   par le nombre exact des 1000  
 
Sub cherche()
'
' cherche Macro
' Macro enregistrée le 08/04/2006 par PAPOU
'
 
'
     
    Range("A1" ).Activate
    ActiveCell.CurrentRegion.Select
    'MsgBox ActiveCell.CurrentRegion.Rows.Count
    nombrel = ActiveCell.CurrentRegion.Rows.Count
   For n = 0 To 999
    Range("J1" ).Offset(n, 0).Select
     
    nbachercher = Selection.Value
    If (Not IsNull(nbachercher)) And (Not IsEmpty(nbachercher)) And Not nbachercher = "" Then
    Range("h:h" ).Select
    With Selection
    Set c = .Find(nbachercher, LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            c.Offset(0, 1).Value = n + 1
            'c.Interior.ColorIndex = 4
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
    End With
    End If
    Next n
   
   
End Sub
 
B)Pour concaténer voir 2) et 3) plus bas: soit le faire à la main soit :
        a)introduire la macro concat dans le fichier 1000 et remplacer H29 dans les deux dernières lignes par H1000 (s'il y a 1000 lignes). Executer la macro
        b)introduire la macro concat dans le fichier 8000 et remplacer H29 dans les deux dernières lignes par H8000 (s'il y a 8000 lignes). Exécuter la macro
 
Sub concat()
'
' concat Macro
' Macro enregistrée le 19/05/2006 par PAPOU
'
 
'
    Range("H1" ).Select
    ActiveCell.FormulaR1C1 = "=RC[-7]&RC[-6]&RC[-5]&RC[-4]&RC[-3]&RC[-2]&RC[-1]"
    Range("H1" ).Select
    Selection.AutoFill Destination:=Range("H1:H29" ), Type:=xlFillDefault
    Range("H1:H29" ).Select
End Sub
 
2)Concaténer dans le fichier 1000 les 7 colonnes A B C D E F G dans la colonne H (à la main ou par concat)
3)Concatener dans le fichier 8000 les 7 colonnes A B C D E F G dans la colonne H  (à la main ou par concat)
 
4) copier la colonne H du fichier 1000 dans la colonne J du fichier 8000
5) executer la macro "cherche" que vous aurez introduite au niveau du fichier 8000
6) la colonne I aura dans ses cellules le numéro de la ligne identique  des 1000 (si tout va bien version excel etc..)
7) trier le tableau sur le contenu de I (ordre au choix).
8)Toutes les lignes ayant un numéro dans I seront regroupées vous pourrez les traiter ( couper etc)
9) Dans le fichier 8000 toujours, supprimer les colonnes H  I  et  J
10) après vous être assuré que cela vous convient, mettre en réserve votre fichier 8000 d'origine et renommer le nouveau 8000 avec le bon nom
Cordialement
 
 
 

Reply

Marsh Posté le 21-05-2006 à 17:37:01    

Pour seniorpapou:
Bonjour,
 
J'ai fait un test de votre solution à la maison...je vais m'empresser de l'appliquer au boulot lundi...
Tout est OK.  :sol:  
Merci pour votre aide.
 
 
Pour Sidney4:
La solution de seniorpapou règle parfaitement mon problème...mais je ne manquerai pas de me pencher sur ultraedit... ;)  
merci de votre participation à mon topic

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed