IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Petite Macro a revoir longue a s'éxécuter [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut Petite Macro a revoir longue a s'éxécuter
    Bonjour a tous, forum bonjour

    Excel 2007 et Windows 7 32 bits

    Le code ci-dessous a pour rôle de m'afficher dans une colonne (C) (feuil1) la durée de mes fichiers, elle
    fonctionne très bien SAUF qu'elle est un peu trop longue, ce code mets 2Mn 20s pour 2010 fichiers.

    Mon PC est équiper correctement.

    Je pense qu'il doit être possible d'améliorer le code, j'ai du sans doute mal faire, ca me parait bizarre
    que ce soit aussi long a s'afficher. 2010 fichiers c'est pas beaucoup pour un ordi.

    Merci a vous et si votre temps le permets de bien vouloir regarder le code.

    Bonne journée a tous

    Cdlt Ray

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    '### AFFICHE LA (DUREE) DES FICHIERS
     
    Public Sub Listing_Affiche_la_Durée()
    Application.EnableEvents = False
                Range("C1:C4000").ClearContents                   'Efface colonne C
     
       Set objShell = CreateObject("Shell.Application")
       Set objFolder = objShell.Namespace("H:\")                'Adapter le chemin du Disque dur
     
             R = 1
    For Each strFileName In objFolder.Items                       'Boucle sur les fichiers "avi" du répertoire
     
          If Right(objFolder.GetDetailsOf(strFileName, 0), 4) = ".avi" Then _
             Cells(R, 3) = objFolder.GetDetailsOf(strFileName, 27)   'Durée
     
             R = R + 1
    Next
             MsgBox "terminer"    'Cells(3, 6) = "Terminer"      'Fin de chargement(Durée)
    Application.EnableEvents = True
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour

    Ce qui est "gourmand", dans ton code, c'est cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each strFileName In objFolder.Items
    qui parcourt de toutes manières la totalité des fichiers et dossiers de ton volume.
    Et tu n'y peux rien, ce parcours étant nécessaire, sauf probablement en utilisant la fonction Dir (mais de manière moins confortable) pour parcourir le volume. Mais tout ton code actuel s'en trouverait complètement "chamboulé" (à reprendre alors complètement).

  3. #3
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut
    Salut unparia,

    Merci pour ta réponse, c'est sympa.

    Ok bien compris, je ne savais pas que c'était cette ligne qui était en cause.

    J'ai chercher sur le net une autre façon d'afficher la durée mais sans succès.

    Sinon svp tu voudrais bien me créer cette macro Sub qui me ferait ça plus rapidement.

    l'affichage est afficher dans la colonne (C) a ce format 01:22:13


    Merci a toi et bonne journée.

    Cdlt Ray

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Sinon svp tu voudrais bien me créer cette macro Sub qui me ferait ça plus rapidement.
    Désolé, mais je n'en ai pas le temps.
    Ce n'est par ailleurs pas là la vocation d'un forum.
    Je suis par contre sur le point de terminer puis déposer un outil utilisant la fonction Dir. Tu pourras t'y intéresser et l'utiliser, mais il nécessitera de ta part un certain niveau de connaissances et du travail pour l'adapter à ton cas

    Maintenant : si tu ne dois parcourir que les fichiers d'un seul dossier (sans donc parcourir également tous ses sous-dossiers éventuels), les "choses" sont alors plus simples.
    Qu'en est-il très exactement à ce propos ?

  5. #5
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2008
    Messages
    704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2008
    Messages : 704
    Par défaut
    Salut unparia

    Merci pour ta réponse,

    Sur mon D-D (H:\) il ni a que et uniquement des fichiers (.AVI) pas de répertoire ni sous répertoire non plus
    et je souhaite juste afficher en colonne (C) la durée de mes vidéos.

    j'avais réussi a trouver avec le code joint mais pas prévu que ce serai si long a éxécuter.

    De la a refaire un code avec (DIR) je ne sais pas, alors si tu veux bien, merci a toi

    si tu n'a pas le temps hé bien tant pis, c'est pas grave.


    Cdlt ray

  6. #6
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Bonjour.

    Un exemple avec Dir

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Macro beaucoup trop longue
    Par Orhleil dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 03/08/2011, 18h02
  2. [WD-2003] petite macro liste déroulante
    Par muratet dans le forum VBA Word
    Réponses: 3
    Dernier message: 08/06/2010, 11h52
  3. Petite macro Word
    Par Rosalyne dans le forum VBA Word
    Réponses: 4
    Dernier message: 16/04/2008, 23h39
  4. [OpenOffice][Tableur] Cherche petite macro word
    Par lakavezo dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 18/09/2007, 18h30
  5. petite macro sur excel...
    Par manu13009 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/12/2005, 11h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo