[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. 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. 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. C'est génial ça marche super bien et c'est assez rapide !
            Merci beaucoup !
            0