supprimer une ligne sur deux

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

laurent999

XLDnaute Occasionnel
Bonsoir a toutes et a tous,

J'ai besoin dans un tableau de 10000 ligne de supprimer une ligne sur 2 en commencant par la ligne 3.
le faire manuellemnt est trop long.
si quelqu'un a une idé elle serait la bienvenue.
merci.
 
Re : supprimer une ligne sur deux

Bonsoir, laurent999 :

Placez le code ci-dessous dans la feuille à traiter et exécutez-le une fois.

Code:
Option Explicit

Sub Macro1()
'
' Macro1 Macro
' Macro créée le 01/11/2008 par ROGER2327
'

'
Dim i As Long
    Application.ScreenUpdating = False
    For i = 3 To (3 + Me.Cells(1, 1).CurrentRegion.Rows.Count) \ 2
        Me.Rows(i).Delete
    Next i
    Application.ScreenUpdating = True
End Sub
Les lignes impaires, à compter de la troisième, seront supprimées, jusqu'à la première ligne vide de la feuille.
Si le résultat est satisfaisant, enregistrez le classeur.

Conseil : L'opération étant irréversible, testez la macro sur une copie du classeur.

Salut !
 
Dernière édition:
Re : supprimer une ligne sur deux

Réponse à laurent999

Je suppose que vous avez recopié le code dans un module ; si c'est le cas, l'erreur est normale.

Ce code est prévu pour opérer dans la feuille où il a été placé, conformément aux indications qui l'accompagnaient.

J'ai procédé ainsi car je trouve dangereux d'écrire une procédure supprimant une ligne sur deux d'une feuille pour n'importe quelle feuille d'un classeur.

A propos du mot clef me, je cite l'aide d'Excel© :
« (...) Lorsqu'une classe peut comporter plusieurs instances, le mot clé Me offre la possibilité de faire référence à l'instance de la classe dans laquelle le code est exécuté. (...) »
Chaque feuille d'un classeur étant une instance de la classe Sheets, vous avez l'explication de l'«erreur». (J'en profite pour corriger la ligne Rows(i).Delete en Me.Rows(i).Delete, plus logique...)

Si, le code étant placé dans une feuille, l'«erreur» persiste, veuillez me le faire savoir.

A plus tard,
ROGER2327
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
231
  • Question Question
Microsoft 365 problème d'index
Réponses
19
Affichages
501
R
  • Question Question
Réponses
3
Affichages
115
regis6460
R
Réponses
19
Affichages
708
Retour