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 :

[VBA-E] Probleme lenteur suppression ligne vide sur 100 lignes


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Par défaut [VBA-E] Probleme lenteur suppression ligne vide sur 100 lignes
    Bonjour,

    Je voudrais savoir si il y a un moyen d'accéler le temps de calcul d'un code VBA. Le temps de calcul pour supprimer des lignes vides est de plus en plus long à chaque fois que je relance ma création de tableau avec suppression des lignes vides. Pour l'instant je ne traite que sur les 100 premieres lignes mais dans l'avenir je pourrais avoir plus de 100 lignes quand mes utilisateurs auront documentées leurs donnes sur une années.

    J'ai trouvé des choses du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    option explicit , Application.ScreenUpdating = False / true
    J'ai déja essayer avec ce code sans grand résultat

    merci par avance de votre aide

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Regarde sebi78 donne la solution
    Application.ScreenUpdating = False
    n'est pas une déclaration, tu dois le placer dans la sub, avant le code de suppression et le remettre = True après
    A+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Par défaut [VBA-E] Probleme lenteur suppression ligne vide sur 100 lignes
    Bonjour,

    Je n'ai pas ecris le code à la suite si c'est cela qui ta trouble.
    J'ai trouve des choses sur et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = False et Application.ScreenUpdating = True
    sebi78 c'est moi. Cela ne m'avance pas de repondre avec le code que j'utilise deja.

    Je cherche à savoir si il y a autre moyen de gagner du temps.

    A chaque fois que je lance mon tableau recapitulatif + suppression des lignes vides. Il mets de plus en plus de temps.

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Désolé, je n'ai pas fait attention. Dommage, je trouvais ta solution très bien Et en plus je n'avais pas pensé qu'en utilisant WorksheetFunction ton code était ralenti.

    Je repars à zéro.
    Application.Updating n'est pas utile ici puisque tu ne fais pas de sélection

    Correction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub SupprimerLesLignesVides()
    Dim NbLignes As Integer
        NbLignes = Range("A65535").End(xlUp).Row
     
        For i = NbLignes To 3 Step -1
            'supprimer ligne vide
            If Range("IV" & i).End(xlToLeft).Column = 1 And Cells(i, 1) = "" Then _
               Rows(i).Delete
        Next i
    End Sub
    Testé cette fois-ci

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Par défaut [VBA-E] Probleme lenteur suppression ligne vide sur 100 lignes
    merci cela a l'air de fonctionner plus rapidement. Il faut que je test avec mon fichier du boulot. La version que j'ai chez moi est trop ancienne.

    Par contre je n'ai pas compris à quoi correponder "IV".

    J'ai encorre une autre question. J'ai resolu mon 1cas ligne vide à supprimer ( colonne A jusqu'a colonne T vide )

    Je voudrais faire la meme chose supprime des lignes non remplit avec uniquement ma colonne A remplit ( colonne B jusqu'a colonne T vide )

    Aurais-tu une idee de code sur l'exemple précédent.

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    IV est la dernière colonne d'une feuille Excel version 1997 et 2003 (celles que je connais) ou si tu préfère la colonne 256. Jutilise l'équivalent de
    NbLignes = Range("A65535").End(xlUp).Row
    mais pour les colonnes.
    Si la dernière cellule renseignée de la ligne est colonne 1 mais que la cellule (Ligne, 1) est également vide, c'est que la ligne est vide.
    Je me suis inspiré d'une idée de SikyRoad pour vérifier si une feuille est vide.
    Pour adapter, tu utilises le même code en supprimant simplement le test [ And Cells(i, 1) = "" ]
    Tu auras la colonne 1 comme dernière colonne renseignée mais la cellule de la colonne 2 est donc vide. Ta ligne sera effacée.
    Bien sûr, si tu as de données sur la ligne au delà de la colonne V (que tu donnes comme limite) la ligne ne sera pas effacée même si elle est vide de A à V. Mais je pense que tu as maintenant compris.
    A+

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/11/2008, 10h36
  2. [importdata] MATLAB R2008 bloque sur une ligne vide
    Par campofelliz dans le forum MATLAB
    Réponses: 8
    Dernier message: 21/11/2008, 15h32
  3. [vba Excel] Obtenir dernier cellule non vide d'une ligne
    Par cow_boy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/05/2007, 10h07
  4. Réponses: 23
    Dernier message: 02/05/2007, 14h52
  5. [VBA-E] cellules vide sur une ligne
    Par bricereyem dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 12/06/2006, 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