Fusionner partiellement deux fichiers

gruzlor

XLDnaute Nouveau
Bonjour,

J'ai un problème assez compliqué pour mon niveau en programmation (plutôt léger :cool:).

Régulièrement, un serveur me fournit un fichier Excel avec un ensemble de données (nom client, numéros de facture...). Ce fichier est alors annoté dans une colonne spécifique (Observation).
Lorsque le serveur me sort un nouveau fichier, je dois alors reporter les annotations. Simple a priori... sauf que le nombre de clients recensé varie est que, du coup, je dois copier les annotations devant le bon client (le numéro de facture est un ID unique).

Existe-t-il dans Excel une fonction paramétrable permettant de fusionner ces deux fichiers en mettant les annotations aux bons endroits? Suis-je "obligé" de me lancer dans un développement?

Merci par avance.
 

job75

XLDnaute Barbatruc
Re : Fusionner partiellement deux fichiers

Bonsoir Gruzlor,

Les annotations concernent les factures, si je comprends bien. Mais merci de confirmer.

Il faut donc que dans le nouveau fichier se trouvent aussi les anciennes factures. C'est bien ça ?

Quelles sont les colonnes où se trouvent les n° de factures et les annotations ?

A+
 

job75

XLDnaute Barbatruc
Re : Fusionner partiellement deux fichiers

Re,

Pas de nouvelles, alors je fais comme si.

Je suppose que les n° des factures sont toujours en colonne B et les annotations en colonne F. L'ancien fichier s'appelle toto et la feuille Feuil1.

SOLUTION PAR FORMULE :

- Entrez en F1 du nouveau fichier la formule suivante et tirez vers le bas :

=SI(NB.SI([toto.xls]Feuil1!B:B;B1);""&INDEX([toto.xls]Feuil1!F:F;EQUIV(B1;[toto.xls]Feuil1!B:B;0));"")

- Si vous souhaitez ne garder que les annotations, sans les formules, sélectionnez la colonne F, clic droit Copier, clic droit Collage spécial puis cliquez sur Valeurs et OK.

SOLUTION PAR MACRO :

La feuille du nouveau fichier étant la feuille active, exécutez (Alt+F8 ou touches de raccourci) la macro suivante :

Code:
Sub Annotations()
Dim Cel As Range, nfac
On Error Resume Next
With Workbooks("toto.xls").Sheets("Feuil1") 'sur l'ancien fichier
For Each Cel In .Range("F:F").SpecialCells(xlCellTypeConstants, 7)
nfac = .Range("B" & Cel.Row)
Range("F" & Application.Match(nfac, Range("B:B"), 0)) = Cel 'sur le nouveau fichier
Next
End With
End Sub

Vous mettez cette macro dans le fichier que vous voulez, mais dans un module (Alt+F11 puis menu Insertion-Module).

Bonne fin de soirée.
 
Dernière édition:

gruzlor

XLDnaute Nouveau
Re : Fusionner partiellement deux fichiers

Arffff... désolé pour le manque de réactivité, je ne m'attendais pas à recevoir une réponse si tôt.

Merci job75 pour le coup de main : c'est énorme. Je regarde comment je peux adapter le code et confirme sous peu.

Bonne journée :D
 

Discussions similaires

Réponses
5
Affichages
353
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 249
Messages
2 086 598
Membres
103 253
dernier inscrit
alscanv974