[excel] supprimer 99 lignes sur 100

Résolu
Mélie62 -  
 Mélie62 -
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. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  2. Mabelle60 Messages postés 167 Date d'inscription   Statut Membre Dernière intervention   131
     
    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
  3. Mélie62
     
    Merci beaucoup mais cela reste assez long
    Une macro permettrait peut être de gagner du temps
    0
  4. Mélie62
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Mélie62
     
    C'est génial ça marche super bien et c'est assez rapide !
    Merci beaucoup !
    0