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 :

Question sur la rapidité d'une macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 124
    Par défaut Question sur la rapidité d'une macro
    Bonjour le forum,

    Je souhaite avoir des infos quant à la rapidité d'une macro SVP.

    Celle ci ouvre un fichier CVS dans le classeur 1 puis traite les données sur le classeur 2.
    Par exemple, la colonne A du classeur 2 est égal à la colonne C du classeur 1 * 1000. Je fais cette opération pour les 100 premières cellules et j'utilise une boucle for pour changer de ligne.
    N'est pas plus rapide d'effectuer l'opération que pour la première ligne et de remplir les autres lignes avec la fonction "Autofill"?
    voici un exemple du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Sub reference()    
    Dim OpenReference As String, Dim reference As Workbook, Dim i As Integer
     
    OpenReference = Application.GetOpenFilename(fileFilter:=",*.CSV") 
     
    Set reference = Application.Workbooks.Open(OpenReference) 
     
        With reference.Worksheets(2)
            For i = 2 To CInt(dl)
                .Range("A" & i).Value = Worksheets(1).Range("B" & i) * 1000 / 2
            Next i
        end with
    Dans ce cas, n'est pas plus rapide d'effectuer l'operation pour la case A2, puis de faire AutoFill??

    Merci d'avance,
    Johann

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    t'a k mesuré toi même

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub testtempscode00()
    Dim Debut As Long, fin As Long
     
    Debut = GetTickCount()
    ' Debut du code
    ''Procedure_principale
    'Fin du code
    fin = GetTickCount()
     
    MsgBox "Temps mis en millisecondes : " & fin - Debut
     
     
    End Sub
    Ps: des codes de mesure du temps beaucoup plus complets existent dans la section contribuez;

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 124
    Par défaut
    Bonjour aalex38,

    Merci pour l'info, encore une fonction que je découvre

    Je test ça et me réponds a moi même!!

  4. #4
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Si ensuite tu peux donner l'info, c'est cool
    A+

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 124
    Par défaut
    re aalex,

    J'essaie d'utiliser ta macro,
    mais j'ai une erreur: sub ou fonction non définie

    Apparemment,
    il semble que ca soit le GetTickCount.
    Normal que ca fonctionne chez ttoi et pas chez moi??

  6. #6
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Bonjour,

    J'essaie d'utiliser ta macro,
    mais j'ai une erreur: sub ou fonction non définie
    A coller dans la section déclaration d'un module :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Déclaration de la fonction  GetTickCount (renvoie le nombre de millisecondes écoulées)
    Private Declare Function GetTickCount Lib "kernel32" () As Long
    Domi2

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

Discussions similaires

  1. Question sur l'existence d'une macro
    Par challe1976 dans le forum Macros Access
    Réponses: 16
    Dernier message: 09/04/2015, 16h41
  2. question sur l'utilité d'une macro
    Par skeleton18 dans le forum C++
    Réponses: 9
    Dernier message: 10/06/2011, 13h34
  3. Question sur la rapidité d'une requete
    Par barok dans le forum Requêtes
    Réponses: 3
    Dernier message: 12/07/2006, 09h25
  4. Réponses: 5
    Dernier message: 13/10/2005, 12h46
  5. question sur la creation d'une base
    Par vbcasimir dans le forum Débuter
    Réponses: 4
    Dernier message: 27/05/2005, 11h17

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