Programmer en vb
Bonjour et bienvenue,

vous venez de vous inscrire et vous souhaitez avoir accès aux différents forum.
il vous suffit alors de poster une présentation sur le forum "Présentation" ou divers sujets
votre accès aux autres forums sera automatiquement autorisé.

A vos claviers :

Merci d'avoir pris le temps de lire.
Merci pour votre inscription.

L'équipe de Programmer-en-VB
Qui est en ligne ?
Il y a en tout 1 utilisateur en ligne :: 0 Enregistré, 0 Invisible et 1 Invité

Aucun

Statistiques
Nous avons 120 membres enregistrésL'utilisateur enregistré le plus récent est TutoariiNos membres ont posté un total de 6300 messagesdans 706 sujets
Recherche dans les forums

Utiliser cette méthode afin de trouver rapidement les discussions disponible sur notre forum.


Utiliser le bouton résolu

Dans votre message d'origine
cliquer sur le bouton



Ensuite tout en bas sur
Modifier le titre du sujet
cliquer sur le bouton

Résolu !!!

Ensuite changer l’icône du sujet par le bouton

Voilà pas plus compliqué que cela.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Partenaires

créer un forum



Annuaire referencement


Flux RSS

MSN 
Novembre 2018
LunMarMerJeuVenSamDim
   1234
567891011
12131415161718
19202122232425
2627282930  

Calendrier


Partagez
Aller en bas
avatar
IFFIC
Step_Three_VBA
Step_Three_VBA
Localisation : Sud Breizh ar mor
Messages : 443
Date d'inscription : 25/05/2013

TRI DOSSIERS ET ASTUCES

le Ven 17 Mar - 17:58
Bonjour ou Bonsoir suivant l'heure,
Je vous livre une petite application qui pourrait servir à qui passera par là.

Je l'ai faite en urgence pour ma pomme, car à trop sauvegarder, je me trouve avec une foultitude de dossiers et fichiers identiques sur divers supports
Le but est de pouvoir faire une comparaison visuelle du contenu de deux Répertoires choisis et de manuellement en supprimer les doublons.

Il serait possible d'en automatiser la tâche en comparant le poids, les dates, et le nombre de Files,
mais le hasard ne fait pas toujours bien les choses. + Des fichiers "Thumbs.db" ou autre Fichiers temporaires pourraient fausser la donne.

Il est à noter certains points dans ce projet:


1) Je n'ai pas utilisé de ListView car ce contrôle est abandonné dans les récentes versions d'Office, et que de remettre en place la DLL qui va bien m'énerve.

2) J'utilise l'écriture sur une page Excel, car le tri alphabétique est plus efficace que toutes les bidouilles que l'on trouve concernant le chargement d'une ListBox.
Il en va de même quant à celui sans doublon qui s'avère bien souvent erroné.

3) L'écriture est plus rapide dans une ListBox que dans une ListView (Normal! Elle est plus limitée en possibilités)

4) Par une astuce que vous pourrez lire, j'ai ajouté via des SpinButtons la possibilité de modifier les largeurs de colonnes à souhait.
(Il vous appartiendra de renseigner le mini, le maxi, le pas et tout le reste)

5) J'attire l'attention sur le fait qu'il est préférable d'utiliser:
"Me.Controls("Label" & LB).Caption" plutôt que "Me.Label1.Caption"
Ce qui va me permettre par la variable "LB" (Ou autre) de cibler le Label concerné.
Je l'ai fait de même pour le choix des ListBoxes à remplir.

6) J'ai utilisé la variable "NBR" comptabilisant le nombre de fichiers trouvés pour raison de confort.

7) Un autre truc qui permet de déterminer une boucle "End(xlUp).Row)
sans être obligé de préciser "A, B, C …et les 65536 qui sont au-delà depuis les nouvelles versions.

'BAS_COLONNE = ActiveSheet.Cells(Application.Rows.Count, (1)).End(xlUp).Row
Le "1" peut être remplacé par un autre choix de colonne. Testez: Vous allez voir…

Beaucoup de débutant pensent que "Derlign" est un ordre Windows,
alors que ce n'est qu'un mot choisi par nos ancêtres du VBA qui se trimbale de copie de codes à copies de codes!

Cool Ne jamais, au grand jamais débaptiser les contrôles d'un USF. Il suffit d'ajouter des commentaires pour savoir où l'on est dans les procédures.

A noter que je m'adresse là aux débutants qui en seraient tentés pour faire "Pro",
car dans une création dynamique avec groupe dans des modules de Classe, c'est une autre histoire.

Amicalement, en vous signalant que dans le Classeur joint,
je n'ai pas mis de barrière aux clics malencontreux ni épluché certaines imperfections comme un item ajouté par erreur.
+ Soigné la convivialité, enregistrement ou non et fermeture car je ne l'ai fait, au départ, que pour moi.

Bonne route à tous et belles réussites dans vos bidouilles.
Yves
Fichiers joints
TRI_SAUVEGARDES.xlsm Vous n'avez pas la permission de télécharger les fichiers joints.(68 Ko) Téléchargé 7 fois


Dernière édition par IFFIC le Mer 22 Mar - 15:28, édité 1 fois
avatar
grisan29
Modérateur
Modérateur
Localisation : BRETAGNE Nord 29
Messages : 838
Date d'inscription : 25/07/2013
http://pascalcuisines.fr

Re: TRI DOSSIERS ET ASTUCES

le Sam 18 Mar - 5:37
bonjour IFFIC
bienvenue à toi  depuis le temps Very Happy
merci pour cette exemple de recherche de fichiers Very Happy
très fonctionnel et reconnaissable grâce a ta signature comme a ton habitude  Cool

Merci pour le partage

_________________
Pascal
http://vbaddict.altervista.org/Fichier_upload/grisan29/13.php

Comment mettre votre sujet en résolu.
 
Dans votre message d'origine

cliquer sur le bouton



Ensuite tout en bas sur 
Modifier le titre du sujet 
cliquer sur le bouton 

Résolu !!!

avatar
IFFIC
Step_Three_VBA
Step_Three_VBA
Localisation : Sud Breizh ar mor
Messages : 443
Date d'inscription : 25/05/2013

Re: TRI DOSSIERS ET ASTUCES

le Sam 18 Mar - 15:19
Bonjour à tous, et Merci Pascal d'avoir regardé.  => Il me rassure que cela puisse servir à quelqu'un.
Pour ma part, je ne regrette pas de m'être fait cet outil, car il est aussi rapide que la recherche Windows et bien plus précis.
En ce qui concerne la rapidité, il y a mieux à faire dans la visualisation globale des fichiers.
Bouton 4 "VOIR TOUS LES FICHIERS" de l'USF "ACCUEIL"

Remplacer:
Code:
Private Sub CommandButton4_Click() 'VOIR TOUS LES FICHIERS
COL = 1
TRI_ALPHA_PAGE
USF_RECHERCHES.ListBox1.List() = ActiveSheet.Range(Cells(1, 1), Cells(NBR, 4)).Value
For i = 1 To NBR
With USF_RECHERCHES.ListBox1
     .AddItem ActiveSheet.Cells(i, 1).Value 'Le nom du Fichier
     .List(.ListCount - 1, 1) = ActiveSheet.Cells(i, 2).Value ' Le nom du Dossier
     .List(.ListCount - 1, 2) = Format(ActiveSheet.Cells(i, 3).Value, "dddd dd mmmm yyyy") 'Pour rendre lisible la date
     .List(.ListCount - 1, 3) = ActiveSheet.Cells(i, 4).Value ' Le poids du Fichier
End With
Next i
USF_RECHERCHES.Show
End Sub
Par:
Code:
Private Sub CommandButton4_Click() 'VOIR TOUS LES FICHIERS
COL = 1
TRI_ALPHA_PAGE
USF_RECHERCHES.ListBox1.List() = ActiveSheet.Range(Cells(1, 1), Cells(NBR, 4)).Value
USF_RECHERCHES.Show
End Sub


A noter aussi que j'utilise les "Cells" pour déterminer la plage, car le truc du genre "Range("A1:Cx")"
est trop sclérosant puisque l'on ne connait pas encore le nombre "x" de lignes.

Le seul défaut est que l'on ne pourra pas supprimer des items, mais l'on n'en a pas besoin ici.

J'étais donc dans l'ordre de 40 secondes pour un test sur 24020 fichiers multiplié par 2 en raison de cette écriture inappropriée
=> 1 minute 20 est ramené à 40 + 1 seconde…. CQFD

(Pour ce qui est de la lecture plus parlante de la date, il suffirait de l'obliger dans la Feuille "GLOBAL"
+ On peut aussi ressortir l'heure si l'on est vachement curieux)

J'ai aussi constaté qu'il me serait utile de repérer les doublons (Noms + Poids des Fichiers)
et de les afficher dans un autre USF du même tonneau que celui des recherches.

Cette appli peut être élaborée avec une foultitude de possibilités, comme l'ouverture des Fichiers, les supprimer, les renommer. Et c….
(Bien que j'ai privilégié le fait qu'on puisse le faire après ouverture du Dossier Parent.

Si un visiteur ou un membre pense que cet outil puisse lui être utile, je suis disposé à le peaufiner sur mesures.

Amicalement, comme il est évident,
Yves
Contenu sponsorisé

Re: TRI DOSSIERS ET ASTUCES

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum