[excel] supprimer 99 lignes sur 100

Résolu
Bonjour,

Dans le cadre de mon stage, je dois traiter des tableaux excel avec plus de 100000 lignes, ce qui est trop et j'aimerai supprimer des valeurs pour l'alléger
J'ai essayé une macro pour supprimer une ligne sur 2 mais c'est beaucoup trop long et en général le logiciel plante
J'aimerai donc pouvoir garder une ligne sur 100 c'est-à-dire supprimer 99 lignes sur 100 mais je suis nulle en informatique, j'ai tenté pleins de macros mais sans succès

Je vous remercie d'avance pour vos réponses

Mélie62
Configuration: Windows XP
Internet Explorer 7.0
Excel 2007

5 réponses

  1. Contributeur
    bonjour,

    essaies cette macro (réalisée sous XL2003):

    Option Explicit
    Const vide As Byte = 99 'nombre de lignes à supprimer par pas
    Const lig_dep As Byte = 7 'ligne de départ
    
    '
    Sub nettoyer()
    Dim lig As Long, nbre As Long, pas As Long, cptr As Long
    
    'initialisation
        lig = lig_dep
        nbre = Application.CountA(Range(Cells(lig, 1), Cells(65536, 1))) ' >65536 si XL2007
        pas = Int(nbre / vide)
        Application.ScreenUpdating = False
    'destruction lignes
        For cptr = 1 To pas
            Rows(lig + 1 & ":" & lig + vide).Delete
        lig = lig + 1
        Next
    End Sub

    1
    1. Bonjour
      Sans macro mais un peu à la barbare
      Insère une colonne à gauche de sorte que cela devienne la colonne A
      Tu met "x" sur la première ligne souhaitée
      Tu selectionnes 100 celulles "x" compris
      Tu tires vers le bas jusque ta dernière ligne
      Tu ajoutes des filtres auto
      Tu filtres su "vide" en colonne A
      Tu selectionnes tes lignes
      Tu supprimes les lignes
      Tu supprimes ta colonne A
      A toi de voir si tu préfères attendre une réponse plus conventionnelle
      0
      1. Merci beaucoup mais cela reste assez long
        Une macro permettrait peut être de gagner du temps
        0
        1. Je suis en train de faire une macro de ce genre :

          Selection.Delete Shift:=xlUp
          Range("A13:E111").Select
          Selection.Delete Shift:=xlUp
          Range("A14:E112").Select
          Selection.Delete Shift:=xlUp
          Range("A15:E113").Select
          Selection.Delete Shift:=xlUp
          Range("A16:E114").Select
          Selection.Delete Shift:=xlUp
          Range("A17:E115").Select
          Selection.Delete Shift:=xlUp
          Range("A18:E116").Select
          Selection.Delete Shift:=xlUp
          Range("A19:E117").Select
          Selection.Delete Shift:=xlUp
          Range("A20:E118").Select
          Selection.Delete Shift:=xlUp ....

          cela me prend un temps fou pour la faire, sachant que au bout de 30 minutes je ne suis même pas arrivée à la moitié de mes valeurs ...
          je ne sais plus quoi faire
          0
          1. C'est génial ça marche super bien et c'est assez rapide !
            Merci beaucoup !
            0