Macro Pour Comparer Deux Fichiers Excel - CCM

Informatique Mobile Applis & Sites Image & Son Maison Securité Téléchargement Forum Bureautique Développement Internet Jeux vidéo Matériel Réseau Vidéo/TV Virus/Sécurité Emploi
  • Forum
  • Informatique & Design
  • Programmation
  • VB / VBA
Bonjour à toutes et tous, Je suis débutante en VBA\excel et j'espère donc que vous pourrez m'aider à résoudre mon problème : Je souhaite comparer deux versions d'un fichier excel (un ancien et l'update). Pour ce faire, j'ai un dossier maître contenant un fichier excel vide. En mettant dans ce dossier les deux fichiers que je veux comparer, il faudrait que mon fichier excel vide se remplisse. Lorsque dans ce dossier j'ajoute les deux fichiers excel (le vieux et l'updaté), je voudrais que les lignes du nouveau fichier que l'on ne retrouve pas dans l'ancien apparaissent dans le 3ème fichier vierge. Mais dans les deux fichiers sources, les lignes ne sont peut être pas rangée dans le même ordre, c'est pour cela qu'il faut chercher une correspondance pour chaque. Sinon, on peut peut être faire plus simplement sans utiliser le 3ème fichier vierge, mettre en highlight les lignes du nouveau fichier qui n'étaient pas dans l'ancien. Le but de cette fonction est qu'elles soit réutilisable dans d'autres cas pour comparer des lignes de fichiers différents. Afficher la suite Répondre (4) Partager
  • Copier
A voir également:
  • Excel comparer deux fichiers
  • Nombre de jours entre deux dates excel - Guide
  • Liste déroulante excel - Guide
  • Word et excel gratuit - Guide
  • Fusionner deux fichiers excel - Guide
  • Fusionner deux cellules excel - Guide
Réponse 1 / 4 bonjour, peux-tu partager tes fichiers? Réponse 2 / 4 Voici les deux fichiers sources. Je souhaiterais que la macro permette de créer un troisième fichier dans lequel se retrouveront les lignes manquantes dans le fichier source 1 mais qui se trouvent dans le fichier source 2. tu nous as montré les fichiers. pour les partager, il faut les publier sur internet (google drive, cjoint.com, ...), puis partager le lien ici. où se trouverait cette macro? Réponse 3 / 4 Voici le lien google drive : https://drive.google.com/drive/folders/1yUgcD9HO6SN4VPeUjPysX9JnwknaFmeq?usp=drive_open . La macro se trouverait dans le fichier final je suggère ceci, pour lequel il faut ajouter "Microsoft Scripting Runtime" dans les références du projet. Option Explicit Sub comp() Dim src1 As Worksheet, src2 As Worksheet, cls1 As Workbook, cls2 As Workbook, dest As Worksheet Dim dico As Scripting.Dictionary Dim nligsrc As Long, nligdest As Long Set dico = New Scripting.Dictionary Set cls1 = Workbooks.Open(ThisWorkbook.Path + "\" + "fichier source 1.xlsx") Set cls2 = Workbooks.Open(ThisWorkbook.Path + "\" + "fichier source 2.xlsx") Set src1 = cls1.Sheets("Feuil1") Set src2 = cls2.Sheets("Feuil1") Set dest = ThisWorkbook.Sheets("Sheet1") nligsrc = 2 Do While src1.Cells(nligsrc, 1) <> "" Call dico.Add(CStr(src1.Cells(nligsrc, 1)) + "|" + CStr(src1.Cells(nligsrc, 2)) + "|" _ + CStr(src1.Cells(nligsrc, 3)) + "|" + CStr(src1.Cells(nligsrc, 4)), 0) nligsrc = nligsrc + 1 Loop nligsrc = 2 nligdest = 2 Do While src1.Cells(nligsrc, 1) <> "" If Not dico.Exists(CStr(src2.Cells(nligsrc, 1)) + "|" + CStr(src2.Cells(nligsrc, 2)) + "|" _ + CStr(src2.Cells(nligsrc, 3)) + "|" + CStr(src2.Cells(nligsrc, 4))) Then Call src2.Rows(nligsrc).Copy(dest.Rows(nligdest)) nligdest = nligdest + 1 End If nligsrc = nligsrc + 1 Loop cls1.Close cls2.Close End Sub Merci beacuoup yg_be. J'ai fait quelques modifications vu que finalement j'ai eu plus de colonnes dans mes fichiers que prévus mais le script a marché. Je t'en remercie infiniment Réponse 4 / 4 Je voudrais également créer une macro dans le "fichier source 2" qui compare les colonnes "document" des deux fichiers sources pour connaitre les documents que les deux fichiers ont en commun. Je rappelle toutefois que dans les deux fichiers sources, les lignes ne sont pas toujours rangée dans le même ordre, il faut donc chercher une correspondance pour chaque. A la fin, la macro créera une nouvelle colonne dans le "fichier source 2" pour indiquer si chaque document de ce fichier se retrouve sur le "fichier source 1". peut-être ceci, non testé: Option Explicit Sub comp() Dim src1 As Worksheet, src2 As Worksheet, cls1 As Workbook Dim dico As Scripting.Dictionary Dim nligsrc As Long Set dico = New Scripting.Dictionary Set cls1 = Workbooks.Open(ThisWorkbook.Path + "\" + "fichier source 1.xlsx") Set src1 = cls1.Sheets("Feuil1") Set src2 = ThisWorkbook.Sheets("Feuil1") nligsrc = 2 Do While src1.Cells(nligsrc, 1) <> "" Call dico.Add(CStr(src1.Cells(nligsrc, 1)) + "|" + CStr(src1.Cells(nligsrc, 2)) + "|" _ + CStr(src1.Cells(nligsrc, 3)) + "|" + CStr(src1.Cells(nligsrc, 4)), 0) nligsrc = nligsrc + 1 Loop nligsrc = 2 Do While src1.Cells(nligsrc, 1) <> "" If Not dico.Exists(CStr(src2.Cells(nligsrc, 1)) + "|" + CStr(src2.Cells(nligsrc, 2)) + "|" _ + CStr(src2.Cells(nligsrc, 3)) + "|" + CStr(src2.Cells(nligsrc, 4))) Then src2.Cells(nligsrc, 7)="absent" else src2.Cells(nligsrc, 7)="présent" End If nligsrc = nligsrc + 1 Loop cls1.Close End Sub Afficher toute la discussion

Votre réponse

Discussions similaires

Excel bouton vers une feuille VBA Executer une macro a l'ouverture de excel Réaliser une macro VBA permettant d'envoyer un classeur Excel par mail Méthode find dans VBA - Recherche de données sous Excel Macro pour imprimer une sélection Protection de feuille dans macro (excel 2013) Devenez membre en quelques clics
  • Connectez-vous simplement avec ceux qui partagent vos intérêts
  • Suivez vos discussions facilement et obtenez plus de réponses
  • Mettez en avant votre expertise et aidez les autres membres
  • Profitez de nombreuses fonctionnalités supplémentaires en vous inscrivant

Newsletters

Newsletters Actu du jour Voir un exemple

Les informations recueillies sont destinées à CCM BENCHMARK GROUP pour vous assurer l'envoi de votre newsletter.

De plus, lors de votre inscription sur ce formulaire, des données personnelles (dont votre adresse email sous forme hachée et pseudonymisée) peuvent être partagées avec nos partenaires Data à des fins de personnalisation de la publicité et des contenus qui vous sont proposés. Vous trouverez le détail de ces informations et pouvez vous y opposer à tout moment.

Plus généralement, vous bénéficiez d'un droit d'accès et de rectification de vos données personnelles, ainsi que celui d'en demander l'effacement dans les limites prévues par la loi.

Vous pouvez également à tout moment revoir vos options en matière de prospection commerciale et ciblage. En savoir plus sur notre politique de confidentialité ou notre politique Cookies.

Tag » Code Vba Pour Comparer Deux Fichiers Excel