[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. C'est génial ça marche super bien et c'est assez rapide !
    Merci beaucoup !
    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. 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. Merci beaucoup mais cela reste assez long
          Une macro permettrait peut être de gagner du temps
          0
          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