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 :

Macro trop lente [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 59
    Par défaut Macro trop lente
    Bonsoir à tous,
    Ma macro est trop lente, pouvez-vous y remédier !


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub Supprimer_Zero()
    Dim i As Long, j As Long, derniere_ligne As Long
    Application.ScreenUpdating = False
    With Sheets(1)
    derniere_ligne = Range("A1" ).End(xlDown).Row 'Dernière ligne de la base de données
    For i = 1 To derniere_ligne
    For j = 1 To 40
    If .Cells(i, j) = 0 And .Cells(i, j).Interior.ColorIndex = xlNone Then .Cells(i, j) = ""
    Next j
    Next i
    End With
    Application.ScreenUpdating = True
    End Sub
    Merci à l'avance et bonne soirée !
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Par défaut
    Bonsoir,

    Non, je ne veux pas y remédier mais je peux proposer quelques pistes:

    1. Vous recherchez tous les 0 dans votre range (par un find) et vous sauvegardez le résultat dans un range
    2. Vous testez ensuite la couleur (Interior.ColorIndex) pour la mettre vide.

    Ceci étant, un tel traitement est toujours pénible ..... Peut-être que la structure de vos données est à corriger.

  3. #3
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, le multipostage sur un autre forum n'encourage pas à répondre.

  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
    Bonjour et un salut à kiki29
    A kiki : pas "un" mais plusieurs (la nouvelle manière de "travailler", probablement).
    et il n'a nulle part reçu de réponse rappelant simplement les règles de base, que je vais personnellement me contenter de lui rappeler (et à lui de "capter") :
    1) préciser la propriété utilisée d'un objet facilite le travail de VBA
    2) vérifier deux conditions à la fois oblige à vérifier les deux. N'en vérifier une que si l'autre est vérifiée fait gagner énormément de temps.
    Le gain de temps sera d'autant plus important que l'on sait mettre en 1ère condition celle qui est "plus probablement" la plus rarement vérifiée.
    Dans certains cas, toutefois, il sera préférable de choisir comme première condition celle qui est la moins lente à vérifier et un développeur, même débutant, sait déterminer cet aspect, en faisant au besoin des petits tests tous simples)

    Le demandeur, même si débutant, n'aura aucune difficulté à comprendre le sens de ce message s'il s'est vraiment quelque peu intéressé au développement autrement qu'en "recherchant" des "soluces".

    EDIT : la "condensation" (diminution du nombre de lignes) d'un code peut donner une impression fausse d' "efficacité accrue". Un code se juge non à sa longueur, mais à sa rapidité d'exécution.

  5. #5
    Membre actif
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 59
    Par défaut
    Bonjour à tous,
    Certes, j'ai fait appel à d'autres forums et vous m'en excuserez !
    Mais, y avait-il une réponse à ma demande ?
    Sur 4 Forums dont celui-ci, un seul m'a donné une bonne solution sans se poser de question !
    Alors, qu'aurai-je dû faire ?
    Attendre la bonne réponse parmi les 3 qui n'ont rien fait ?
    Bonne journée !

  6. #6
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour, bonjour !

    Citation Envoyé par jbchb Voir le message
    Alors, qu'aurai-je dû faire ?
    Le  B-A-BA !   A savoir commencer par lire les règles du forum avant de s'y inscrire et de poster une demande hors cadre ‼

    Voilà, voilà !

    _________________________________________________________________________________________________________
    Je suis Paris, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  7. #7
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour

    Citation Envoyé par unparia Voir le message
    Bonjour et un salut à kiki29

    Un code se juge non à sa longueur, mais à sa rapidité d'exécution.

    Et, utiliser une macro pour remplacer un simple clic dans une case à cocher, il n'y a pas de raison de le dire à toute la planète.
    Un code pour "réinventer l'eau chaude" (salut m@rina) ne sert pas à grand chose.

  8. #8
    Membre actif
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 59
    Par défaut
    Bonsoir à tous,
    Merci Patrick de ton intervention !
    Oui, comme tu le dis pourquoi tant de haine envers ma personne qui reste après tout polie ( désolé de ne pas avoir consulté le statu du forum )!
    Mais bon, j'ai compris, quand on se fait chauffer les oreilles quelque part, on a toute suite compris ce qu'il faut faire par la suite ( le modérateur appréciera)!
    J'avoue que c'est la première fois sur un forum que cela m'arrive !
    Désolé, je ne peux mettre résolu avec de tels arguments et puis, c'est résolu sur un autre forum moins exigeant !
    Bonne nuit !

  9. #9
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    une petite astuce parmi tant d'autre

    appliquer dynamiquement une MF
    puis...
    faire un findformat sur la couleur employée et mettre cette couleur en dur SUR LE FIND TROUVé
    puis suppression de la MF
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Je pense que tu devrais demander de passer modérateur!

    Ainsi tu aurais toutes l' attitude pour censurer le réponses qui ne les coviennent pas!
    Dernière modification par Invité ; 04/03/2017 à 11h38.

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

Discussions similaires

  1. macro trop lente
    Par ilissnmiden92 dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 18/07/2015, 09h55
  2. [XL-2007] Solutions pour macros trop lente
    Par pasterlouis dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/08/2013, 12h04
  3. [XL-2003] macro trop lente
    Par tioch dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/07/2011, 08h48
  4. [XL-2007] Boucles for imbriquées, macro trop lente
    Par Jambonpurée dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/06/2011, 18h25
  5. [XL-2007] macros trop lentes (85 onglets)
    Par dodo28 dans le forum Macros et VBA Excel
    Réponses: 36
    Dernier message: 16/04/2009, 21h20

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