begin process at 2010 02 10 14:41:50
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichier / Disque

 > COMPARATEUR EXCEL EN MASSE, AMÉLIORATIONS

COMPARATEUR EXCEL EN MASSE, AMÉLIORATIONS


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Fichier / Disque Classé sous :comparer, fichier, répertoire, excel Niveau :Initié Date de création :09/05/2008 Date de mise à jour :09/06/2008 14:59:13 Vu / téléchargé :6 115 / 619

Auteur : GMY

Ecrire un message privé
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

 Description

mabrouklepoux avait proposé un comparateur de fichiers Excel. http://www.vbfrance.com/code.aspx?ID=33279

Cela correspondait à ce que cherchait, la fonction manquante d'excel !
Merci beaucoup.

J'en ai profité pour apporter quelques améliorations au code proposé :
- Performances
- Boîte de dialogue d'avertissement
- Pas de limitations pour le nombre de fichiers ni le nombre de feuilles
- Une constante pour facilement changer la couleur signalant les cellules modifiées
- Les onglets des feuilles contenant des cellules modifiées sont colorés
- Seules les cellules modifiée du classeur cible sont signalées

Limitation connue :
- Si le fichier source et le fichier cible ont le nom vous aurez une erreur.


 Conclusion

Cette version me satisfait. Si vous souhaitez apporter des améliorations faites le !

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • Multi Comparaison excel-VGMY.xlsTélécharger ce fichier [Réservé aux membres club]48 128 octets

Télécharger le zip


 Historique

09 mai 2008 00:33:29 :
J'avais oublié de présenter quelques améliorations.
09 juin 2008 14:57:11 :
Signalement de la limitation causée par les noms de fichiers identiques.
09 juin 2008 14:59:13 :
Signalement d'une limitation (désolé j'avais oublié, merci pour le commentaire)

 Sources du même auteur

MACRO OUTLOOK POUR ENVOYER UN ACCUSÉ DE RÉCEPTION ENRICHI

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) GESTION DE PARC AUTOMOBILE AVEC SÉRIALISATION par guyr07
Source avec Zip Source avec une capture Source .NET (Dotnet) FICHIERS_CACHÉS_LECTURE_SEULE par Le Pivert
Source avec Zip Source avec une capture CHANGEUR D'ICONES par djgab21
Source .NET (Dotnet) DIRECTDISKACCESS par XelectroX
Source avec Zip Source avec une capture UTILITAIRE WAV, MID ET MP3 par SnkVrt

 Sources en rapport avec celle ci

Source avec Zip OUVRIR TOUS LES FICHIERS EXCEL D'UN DOSSIER ET DE SES SOUS-D... par Unforgiven3303
Source avec Zip Source avec une capture Source .NET (Dotnet) COMPARER_2FICHIERS_TEXTE par Le Pivert
Source avec Zip Source .NET (Dotnet) EXPORTER LE CONTENU D'UN DATAGRIDVIEW VERS EXCEL OU N IMPORT... par surfzoid
Source avec Zip Source avec une capture LISTE DES FICHIERS ET SOUS RÉPERTOIRES POUR VERSER DANS EXCE... par dodocaca
Source avec Zip COMPARER LE CONTENU DE DEUX REPÉRTOIRES par khaleid

Commentaires et avis

Commentaire de mortalino le 09/05/2008 00:51:12

Salut,

j'ai juste regardé comme ça, pas testé.

Toi qui veux optimiser, voici qques pistes :

1/ Dim i, j, k As Integer
Attention, seul k est de type Integer, i et j sont Variant (donc plus lourd en octets)
Voici la bonne syntaxe :
Dim i As Integer, j As Integer, k As Integer

Ensuite au début, j'ai vu :
2/ Const CouleurCellModifiee = vbRed
vbRed étant déjà une constante VB, cela ne sert à rien de créer ta propre constante, ayant la même valeur qu'une autre. Quand t'en as besoin dans ton dev, utilise tout simplement vbRed au lieu de CouleurCellModifiee.

3/ Les boucles.
Il est plus rapide de faire une boucle sur les collections plutôt que par leurs items

Dim sSheet As Sheet

For Each sSheet in ActiveWorkBook.Sheets
    MsgBox sSheet.Name
Next sSheet

là ce sera plus rapide que

Dim i As Integer

With ActiveWorkBook
    For i = 1 to .Sheets.Count
        Msgbox .Sheets(i).Name
    Next i
End With


Aller pour finir (ça c'est ma spécialité grâce à MZTools) :
* dans Sub CompareTwo(indexS, IndexC)  --> la variable 'j' n'est pas utilisée
* dans Sub FindMaxRangeSource(ind)  --> le paramètre 'ind' n'est pas utilisée
* dans Sub FindMaxRangeSource(ind)  --> le paramètre 'ind' n'est pas utilisée

Voilà, en espérant d'avoir filé une astuce d'optimisation  ;)
++

Commentaire de Renfield le 09/05/2008 07:27:41 administrateur CS

pour ta remarque 2, mortalino, je ne te suis pas (ok avec les autres)

si le rouge ne lui conviens plus, il est simple de modifier sa couleur, en faisant ainsi.
si il plante du vbRed partout... (et si tu suppose, en plus, qu'il a de "vrai" vbRed dans son code, un Ctrl+H ne va que fiche le bazar).

Commentaire de mortalino le 09/05/2008 15:31:44

Effectivement Renfield,

je ne l'avais pas vu comme ça ;)
C'est vrai que récemment j'ai du faire un Ctrl H d'une chaine de caractères déjà comprise dans une autre.. bonjour les dégâts  :$

Bonne remarque !

Commentaire de Patrice99 le 10/05/2008 15:10:10

Pour comparer des fichiers Excel, l'autre solution est de passer par Odbc et Windiff, mais c'est vrai qu'il y a des limitations (type de donnée unique par colonne Excel) :
XL2Csv : Convertir un fichier Excel en fichiers Csv (ou en 1 fichier txt)
www.vbfrance.com/code.aspx?ID=44827

Commentaire de GMY le 12/05/2008 01:01:10

Je remercie Mortalino pour ses conseils.

Je suis contient qu'il y a des optimisations possibles.

Je suis parti d'un code brut qui fait le travail (c'est génial de trouver du code comme celui-là et de l'améliorer) et pour mon besoin immédiat, je me suis limité à la performance de la boucle de parcours des cellules.

A propos des différents points :
1-J'ai découvert cela en modifiant ce programme, franchement embêtant, je pratique régulièrement ce genre de raccourci pour rendre plus lisible mon code. J'abandonnerai, à contre c½ur, ce truc dans mes prochains développements.

2-Renfield a très bien défendu mon point de vue, je l'en remercie.

3-Je me doutait que la boucle sur les collections était plus rapide que la boucle sur les items. Mais, j'ai quelques problème avec la manipulation du "for each"

Pour le paramètre "ind" inutilisé, il m'avait même induit en erreurs. J'aurai du le supprimer.

Enfin, s'il y en a qui ont des idées et un peu de temps, ils peuvent apporter leurs améliorations.

Commentaire de manubok le 28/05/2008 12:04:00 10/10

Simplicité, rapidité !

J'avais une cinquantaine de fichiers à comparer avec 8 onglets dans chaque.
Il m'a fallu que qq minutes pour l'ensemble.

Bravo.

Commentaire de MickelVB le 06/06/2008 23:34:24

Super, juste une petite remarque, si le nom du fichier source le même que celui du fichier cible,tu as un message d'erreur lors de l'ouverture du fichier cible. Il faut s'assurer que les noms des fichiers dans les dossiers cibles et sources soient différents.

Commentaire de sghchafaa le 02/07/2008 12:08:38

Sélèm alikom;
c'est pour la premiere fois que je m'interesse a une discussion d'un code proposer,et sa fait vraiment le grand plaisir de trouver des gens pareille,vous former((GMY;;mortalino;;mabrouklepoux;;.....))un vrai bon equipe de travail collaboratif.
mais,tant qu'un debuteur de ZéRO en programmation,j'en ai besoin de plus d'explication,car je prepare un PFE(projet fin d'etude) qui se deroule dans la creation d'un programme qui mermet de comparer deux fichier informatiser(image;texte,..)et de fournir un pourcentage de rassemblage,se qui permet a un enseignant par exemple; de donner la note pour un eleve,si la cohérense des deux fichier(source de l'enseignant) et celle de l'eleve sont cohérente de 50%,l'eleve prendra ne note de 10/20 etc....
pour ceux qui sont interesser,je suis pret a les envoyer le cahier de charge du prog,la probleme se citu au nivo de l'algorithme ou l'idée generale,je ne sais pas d'ou commencer.
merci pour votre attention aussi bien que votre passion.
Sélèm alikom  

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Excel - VBA petite boucle... [ par colincib ] hello,je débute dans vba...une application crée en fin d'exécution un fichier texte dans un répertoire déterminé.Je souhaite ouvrir ce fichier dès qu' comparer 2 fichiers excel [ par edaunye ] bonjour voici mon problème, toutes les semaines je reçois un fichier excel avec des pourcentages d'avancement sur chaque ligne. Je cherche une formule Probleme de répertoire [ par Pino ] Salut a tous,Le problème est celui-ci:le programme ci-dessous fonctionne très bien lorsque je veux ouvrir un fichier excel a partir d'un répertoire.Po Help me please! [ par Pino ] Salut a tous,Le problème est celui-ci:lorsque je veux ouvrir un fichier excel a partir d'un répertoire qui se trouve dans un dirlistbox,pour autant qu lister un répertoire et affiché le contenu dans un fichier excel [ par maciew ] Salut,Peut on lister un répertoire et afficher son contenu dans un fichier excel (1 fichier par ligne)Merci!! FileLen dans une boucle [ par lisco ] Bonjour, j'ai un fichier excel et dans ma colonne "A" j'ai les noms de fichiers extension .pdf et je voudrais calculer la taille de tous ces fichiers Problème de selection worksheet automation Excel avec VB6 [ par LOUNIZARTE ] Bonjour à tous, je développe du code VB pour mon boulot et suis bloqué sur une partie automation avec Excell : Je déclare 2 variables publiques qui Fichier Excel [ par calitoli ] Bonjour,J'aimerais creer un fichier excel puis ecrir dans ce fichier, en vbAComment vous pouvez m'aider?Merci deja-Calito Lecture fichier Excel [ par diablosv ] bonjourvoila j'ai une application ou j'utilise des feuilles Excel. Donc je me sert de la DLL interop.office.excel. Maintenant j'aimerais ne pas utilis ouvrir un fichier .xls avec excel depuis un exe vb6 [ par tuneserapasmonnom ] Comment ouvrir un fichier .xls avec excel depuis un exe vb6 ?Merci d'avanceJC.


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,796 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales