comment comparer les données de 2 fichiers xls - Logiciels - Windows & Software
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
Marsh Posté le 18-05-2006 à 23:02:16
seniorpapou a écrit : |
Merci de votre aide
@+
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
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
Marsh Posté le 19-05-2006 à 19:34:46
ReplyMarsh 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
Marsh Posté le 19-05-2006 à 20:47:58
ReplyMarsh 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...
je trouve pas la fonction EQUIV...
merci quand même
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.
Marsh Posté le 19-05-2006 à 21:40:32
bdv68 a écrit : Bonsoir, |
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
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.
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
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