begin process at 2012 02 13 23:35:58
  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é :7 766 / 778

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

COPIER LES TEXTES D'UNE DIAPOSITIVE POWERPOINT SAUF LES ESPA...
MACRO OUTLOOK POUR ENVOYER UN ACCUSÉ DE RÉCEPTION ENRICHI

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) MODIFIER LES EXTENSION DES FICHIERS par okosa
ROUTINE DIR RÉCURSIVE POUR OBTENIR LA LISTE DE TOUS LES FICH... par kerisolde
Source avec Zip Source avec une capture FILE,SECURITY,FICHIER par okosa
Source avec Zip Source avec une capture Source .NET (Dotnet) PATCHEUR DE FICHIER par tototh
Source avec Zip Source avec une capture LECTURE DES INFORMATIONS DES DISQUES COMPOSANT UN ENSEMBLE R... par jack

 Sources en rapport avec celle ci

[OOBASIC] DIRLIST - FONCTION LISTE DES FICHIERS / RÉPERTOIRE... par pifou25
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 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

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!! 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 [Catégorie modifiée .Net -> VBA] Macro Excel : enregistrer un fichier.csv dans le répertoire courant [ par pico5892 ] Bonjour, Dans un fichier Excel contenant plusieurs onglets, je souhaite enregistrer dans le répertoire actif (où se trouve le fichier Excel) 3 onglet Vérifier si un fichier ou répertoire a les droit d'ecriture [ par ptidoudou02 ] Bonjour,Je voudrai savoir si il existe une façon de vérifier par code si un répertoire ou un fichier à les droit d'écriture p VB sous Excel [ par micheldumas ] Salut à tous, dans VB sous Excel j'ai developpe quelques prog pour me faciliter la vie.Il me faut ouvrir mon fichier excel pour avoir acces Impression en paysage d'un fichier excel a partir de VB. [ par dehono ] Bonjour à vous tous,pourriez-vous m'aider sur ce petit programme? en effet, je souhaiterais pouvoir imprimer en mode paysage ma feuille excel &#2 Excel et vb.net [ par Mickey VB ] Bonjour,Je souhaiterais convertir un fichier dbf en fichier xls en utilisant vb.netJ'utilise pour cela la librairie excel. Mais je n'arrive pas a savo


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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 : 3,682 sec (3)

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