IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Supprimer mauvaise ligne


Sujet :

Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 31
    Points : 12
    Points
    12
    Par défaut Supprimer mauvaise ligne
    Bonjour,

    Je me permet de m'adresser à vous car je ne connais absolument pas la programmation Excel.

    Je possède un fichier contenant 32000 lignes. Le problème, c'est que parfois, des lignes mauvaises s'intercalent comme des sauts de lignes ou encore des chiffres.

    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $,178.00,T* 2009-08-19 02:38:51 81
    11
    $,178.00,T* 2009-08-19 02:38:51 181
    11
    $,178.00,T* 2009-08-19 02:38:51 282
    1
    $,178.00,T* 2009-08-19 02:38:51 382
     
    $,178.00,T* 2009-08-19 02:38:51 785
    et je souhaiterais supprimer les mauvaises lignes, à savoir les lignes vides ou les lignes avec les "11" ou "1" pour obtenir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $,178.00,T* 2009-08-19 02:38:51 81
    $,178.00,T* 2009-08-19 02:38:51 181
    $,178.00,T* 2009-08-19 02:38:51 282
    $,178.00,T* 2009-08-19 02:38:51 382
    $,178.00,T* 2009-08-19 02:38:51 785
    Quelqu'un aurait-il une idée?

    Merci d'avance!

  2. #2
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 56
    Points : 46
    Points
    46
    Par défaut
    Bonjour,

    Toutes tes valeurs sont-elles rentrés dans la même colonne et es-tu sûr que les mauvaise valeurs sont toujours 1 ou 11 ou une ligne vide ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 31
    Points : 12
    Points
    12
    Par défaut
    Oui toutes les valeurs sont dans la même colonne et effectivement, les mauvaises valeurs sont uniquement 1,11 ou une ligne vide (je ne sais pas pourquoi d'ailleurs...)

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 56
    Points : 46
    Points
    46
    Par défaut
    tu peux alors exécuter une requête de ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Sub SupprMauvaiseValeur()
     
    Dim Cell As Range 'cellule mobile pour tester la valeur dans ta colonne
     
    'For Each Cell In ThisWorkbook.Worksheets("NOM DE LA FEUILLE").Range("LETTRE LA COLONNE:LETTRE DE LA COLONNE")
    For Each Cell In ThisWorkbook.Worksheets("Feuil1").Range("A:A")
        If Cell.Value = 1 Or Cell.Value = 11 Or IsEmpty(Cell) = True Then
            Cell.EntireRow.Delete
        End If
    Next
     
    End Sub
    Tu copie ça dans dans le code de la page concernée puis tu exécute

    ps: n'oublies pas de faire une sauvegarde avant d'exécuter, on ne sait jamais...

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    660
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 660
    Points : 782
    Points
    782
    Par défaut
    Bonjour,

    C'est possible par macro ou par formule.

    Une proposition par formule.
    Les données en colonne A
    Insérer une colonne, par exemple A, les données se déplaçant en colonne B.
    En A1 la formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(GAUCHE(B1)="$";"";"x")
    Copier la formule vers le bas
    Filtrer la colonne A sur "x"
    Touche clavier F5 - Cellules - Cellules visibles seulement - OK
    Menu Edition - Supprimer - Lignes entières - OK
    Supprimer la colonne A

  6. #6
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 56
    Points : 46
    Points
    46
    Par défaut
    ullan....c'est pour ça que t'es un membre éclairé...

    theory23, bin le mieux effectivement c'est par la formule si tu ne connais pas vba ; comme ça au moins tu peux comprendre et maîtriser ce que tu fais avec les formules.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 31
    Points : 12
    Points
    12
    Par défaut
    Super merci, je vais essayer les deux solutions!

    Je viens de lancer l'éxécution de la macro, pour l'instant ça mouline, 31000 lignes à traiter, ça prend du temps...

    Merci en tout cas de votre aide, si je n'y arrive pas, je vous ferais signe.

  8. #8
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 56
    Points : 46
    Points
    46
    Par défaut
    Oups.... dans le doute
    Arrêtes la macro avec Ctrl + Pause...
    et modifie la partie du code suivant

    par

    en mettant la ligne de début et la ligne de fin...

    c'est possible que ça tourne pour rien là... ma faute !

    EDIT : Mon code comporte une erreur ; si deux lignes à la suite sont mauvaises il ne les efface pas (il faut refaire tourner la macro ou la modifier un peu)

  9. #9
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Bonjour à tous,
    Je me permet d'intervenir car dans le cas où on supprime des lignes (et surtout si on supprime des lignes si vide) il faut mieux utiliser un "for to" avec step négatif.

    Donc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub SupprMauvaiseValeur()
     
    Dim i As Long 'Variable pour la boucle
    Dim DerLig As Long 'Variable qui récupèrera le numéro de la dernière ligne remplie
     
    DerLig = Cells(Columns(1).Cells.Count, 1).End(xlUp).Row 'Récupère la dernière ligne remplie de la colonne A
     
    For i = DerLig To 2 Step -1 'Boucle de la dernière ligne remplie en A jusque la ligne 2 (j'imagine qu'il y a une ligne de titre sinon "to 1")
     
        'If pour tester les valeurs à supprimer
         If Sheets("TaFeuille").Cells(i, 1).Value = 1 Or Sheets("TaFeuille").Cells(i, 1).Value = 11 Or IsEmpty(Sheets("TaFeuille").Cells(i, 1).Value) = True Then
            Rows(i).Delete 'Supprime la ligne
        End If
    Next
     
    End Sub
    Il reste à changer le nom TaFeuille par le nom réel de ta feuille et de tester (je l'ai pas fait )

    A+
    N'oubliez pas le si votre problème est solutionné.

Discussions similaires

  1. [JTable] Supprimer une ligne d'un jtable
    Par Orionmel dans le forum Composants
    Réponses: 5
    Dernier message: 05/11/2004, 22h29
  2. Shell pour supprimer des lignes d'un fichier
    Par nelsa dans le forum Autres langages
    Réponses: 2
    Dernier message: 20/09/2004, 12h26
  3. [C#] Comment supprimer une ligne dans DataGrid ?
    Par BAUDIER dans le forum ASP.NET
    Réponses: 2
    Dernier message: 20/07/2004, 16h03
  4. supprimer une ligne avec cle etrangere
    Par BaBas dans le forum Langage SQL
    Réponses: 4
    Dernier message: 15/07/2003, 11h24
  5. Supprimer une ligne dans un fichier
    Par sbeu dans le forum Langage
    Réponses: 3
    Dernier message: 13/05/2003, 10h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo