Optimiser macro qui supprime des lignes

Le
garnote
Bonjour,

J'ai un tableau de 15219 lignes et 14 colonnes.
La première ligne contient des en-têtes.
Je veux garder exclusivement les lignes pour
lesquelles la colonne 10 n'est pas vide.
Cette macro me semble correcte mais je la
trouve un peu lente.
Auriez-vous des suggestions à me faire
pour optimiser cette macro ?

Sub Garde_Téléphones()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For i = 15219 To 2 Step -1
If IsEmpty(Cells(i, 10)) Then Cells(i, 1).EntireRow.Delete
Next i
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

Serge
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacky
Le #20454641
Bonjour,

Un truc du genre
'-----------
Range("j2:j15219").SpecialCells(xlCellTypeBlanks).EntireRow.Delete (xlUp)
'-----------------
--
Salutations
JJ


"garnote" urZiz$
Bonjour,

J'ai un tableau de 15219 lignes et 14 colonnes.
La première ligne contient des en-têtes.
Je veux garder exclusivement les lignes pour
lesquelles la colonne 10 n'est pas vide.
Cette macro me semble correcte mais je la
trouve un peu lente.
Auriez-vous des suggestions à me faire
pour optimiser cette macro ?

Sub Garde_Téléphones()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For i = 15219 To 2 Step -1
If IsEmpty(Cells(i, 10)) Then Cells(i, 1).EntireRow.Delete
Next i
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

Serge



michdenis
Le #20454631
Moi, j'essaierais ceci :

Worksheets("NomDelaFeuille").Range("J:J").SpecialCells(xlCellTypeBlanks).EntireRow.Delete



"garnote" urZiz$
Bonjour,

J'ai un tableau de 15219 lignes et 14 colonnes.
La première ligne contient des en-têtes.
Je veux garder exclusivement les lignes pour
lesquelles la colonne 10 n'est pas vide.
Cette macro me semble correcte mais je la
trouve un peu lente.
Auriez-vous des suggestions à me faire
pour optimiser cette macro ?

Sub Garde_Téléphones()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For i = 15219 To 2 Step -1
If IsEmpty(Cells(i, 10)) Then Cells(i, 1).EntireRow.Delete
Next i
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

Serge
LSteph
Le #20454811
Bonjour Serge,

Feuil1.Range(Columns(10), [2:15219]).SpecialCells
(xlCellTypeBlanks).EntireRow.Delete

'lSteph

On 30 oct, 13:53, "garnote"
Bonjour,

J'ai un tableau de 15219 lignes et 14 colonnes.
La première ligne contient des en-têtes.
Je veux garder exclusivement les lignes pour
lesquelles la colonne 10 n'est pas vide.
Cette macro me semble correcte mais je la
trouve un peu lente.
Auriez-vous des suggestions à me faire
pour optimiser cette macro ?

Sub Garde_Téléphones()
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    For i = 15219 To 2 Step -1
        If IsEmpty(Cells(i, 10)) Then Cells(i, 1).EntireRow.Delet e
    Next i
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
End Sub

Serge


JB
Le #20454801
Bonjour,

Avec le filtre élaboré, recopier dans un autre onglet les lignes qui
ne sont pas vides.

ou (si c'est possible) trier sur la colonne

http://boisgontierjacques.free.fr/pages_site/Doublons.htm#Suppression

JB

On 30 oct, 13:53, "garnote"
Bonjour,

J'ai un tableau de 15219 lignes et 14 colonnes.
La première ligne contient des en-têtes.
Je veux garder exclusivement les lignes pour
lesquelles la colonne 10 n'est pas vide.
Cette macro me semble correcte mais je la
trouve un peu lente.
Auriez-vous des suggestions à me faire
pour optimiser cette macro ?

Sub Garde_Téléphones()
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    For i = 15219 To 2 Step -1
        If IsEmpty(Cells(i, 10)) Then Cells(i, 1).EntireRow.Delet e
    Next i
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
End Sub

Serge


garnote
Le #20454991
Merci à tous pour vos suggestions.
Trois fois plus rapide.

Et une autre question pour vous occuper ;-)
Comment détecter par macro si une cellule
contient un motif ?

A+ et Salutations distinguées
Serge
garnote
Le #20455091
ReBonjour,

Voulant détecter un motif en particulier,
j'ai trouvé une solution :

Sub Cellule_Avec_Barres_Verticales()
If ActiveCell.Interior.Pattern = xlLightVertical _
Then MsgBox "Oui" Else MsgBox "Non"
End Sub

Quant à détecter un motf quelconque ???

Bonne fin de semaine, pardon pour les outre-mare,
Bon week-end ;-)

Serge


"garnote" %
Merci à tous pour vos suggestions.
Trois fois plus rapide.

Et une autre question pour vous occuper ;-)
Comment détecter par macro si une cellule
contient un motif ?

A+ et Salutations distinguées
Serge





isabelle
Le #20455371
bonjour Serge,

If Selection.Interior.Pattern <> -4142 Then MsgBox "a un pattern" Else
MsgBox "n'a pas de pattern"

isabelle

garnote a écrit :
ReBonjour,

Voulant détecter un motif en particulier,
j'ai trouvé une solution :

Sub Cellule_Avec_Barres_Verticales()
If ActiveCell.Interior.Pattern = xlLightVertical _
Then MsgBox "Oui" Else MsgBox "Non"
End Sub

Quant à détecter un motf quelconque ???

Bonne fin de semaine, pardon pour les outre-mare,
Bon week-end ;-)

Serge


"garnote" %

Merci à tous pour vos suggestions.
Trois fois plus rapide.

Et une autre question pour vous occuper ;-)
Comment détecter par macro si une cellule
contient un motif ?

A+ et Salutations distinguées
Serge











michdenis
Le #20455781
Une façon de se simplifier la vie,

Petit exemple, si dans la ligne de code suivante
X = xlPatternVertical
Tu effaces le signe "=" et tu le tapes à nouveau, excel va
t'afficher la liste des constantes disponibles

'-----------------------------------
Sub test()
Dim C As Range

Dim X As XlPattern
X = xlPatternVertical

For Each C In Range("A1:A10")
Select Case C.Interior.Pattern
Case X
'Le code à appliquer
MsgBox C.Address
End Select
Next
End Sub
'-----------------------------------



"garnote"
ReBonjour,

Voulant détecter un motif en particulier,
j'ai trouvé une solution :

Sub Cellule_Avec_Barres_Verticales()
If ActiveCell.Interior.Pattern = xlLightVertical _
Then MsgBox "Oui" Else MsgBox "Non"
End Sub

Quant à détecter un motf quelconque ???

Bonne fin de semaine, pardon pour les outre-mare,
Bon week-end ;-)

Serge


"garnote" %
Merci à tous pour vos suggestions.
Trois fois plus rapide.

Et une autre question pour vous occuper ;-)
Comment détecter par macro si une cellule
contient un motif ?

A+ et Salutations distinguées
Serge





isabelle
Le #20455991
re,

la liste est présente dans l'explorateur d'objets sous la classe xlPatters,
il y a les noms à droite et en les sélectionnant tu as leur no. en bas.

isabelle

garnote a écrit :
ReBonjour,

Voulant détecter un motif en particulier,
j'ai trouvé une solution :

Sub Cellule_Avec_Barres_Verticales()
If ActiveCell.Interior.Pattern = xlLightVertical _
Then MsgBox "Oui" Else MsgBox "Non"
End Sub

Quant à détecter un motf quelconque ???

Bonne fin de semaine, pardon pour les outre-mare,
Bon week-end ;-)

Serge


"garnote" %

Merci à tous pour vos suggestions.
Trois fois plus rapide.

Et une autre question pour vous occuper ;-)
Comment détecter par macro si une cellule
contient un motif ?

A+ et Salutations distinguées
Serge











isabelle
Le #20456091
oups remplacer patters par pattern

isabelle

isabelle a écrit :
re,

la liste est présente dans l'explorateur d'objets sous la classe
xlPatters,
il y a les noms à droite et en les sélectionnant tu as leur no. en bas.

isabelle

garnote a écrit :
ReBonjour,

Voulant détecter un motif en particulier,
j'ai trouvé une solution :

Sub Cellule_Avec_Barres_Verticales()
If ActiveCell.Interior.Pattern = xlLightVertical _
Then MsgBox "Oui" Else MsgBox "Non"
End Sub

Quant à détecter un motf quelconque ???

Bonne fin de semaine, pardon pour les outre-mare,
Bon week-end ;-)

Serge


"garnote" %

Merci à tous pour vos suggestions.
Trois fois plus rapide.

Et une autre question pour vous occuper ;-)
Comment détecter par macro si une cellule
contient un motif ?

A+ et Salutations distinguées
Serge













Publicité
Poster une réponse
Anonyme