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

Macros et VBA Excel Discussion :

Macro de tri & effacement des lignes inutiles


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Par défaut Macro de tri & effacement des lignes inutiles
    Bonsoir,

    Je me tourne vers vous car je me prends la tête depuis deux
    jour pour trouver une macro satisfaisante !

    Je m'explique, Je dois épurer un fichier (une feuille)
    Le plus gros est fait, mais il me reste à effacer les lignes
    des courses inutiles.
    Ce que je souhaiterai, c'est supprimer les lignes qui ne sont
    pas des courses de Plat.

    Voici un exemple des données dans la feuille Excel :
    La première ligne contient si la course est du plat ou pas
    Les lignes suivantes, sont les 3 premiers chevaux arrivés
    et ainsi de suite...
    1 Course 1 : Plat - HANDICAP DIVISE - 2400 mètres
    2 7
    3 1
    4 8
    5 Course 2 : Handicap - 1900 mètres
    6 5
    7 1
    8 3
    9 Course 3 : Plat - HANDICAP DIVISE - 2800 mètres
    10 7
    11 2
    12 8

    Le Numéro devant chaque ligne, est le N° de ligne de la feuille
    Donc, pour résumer, il faudrait supprimer les lignes de 5 à 8

    Mais, il peut y avoir jusqu'a 9 courses dont 3 ou 4 à supprimer.

    J'espère avoir été suffisamment explicite dans mes explications
    pour que vous puissiez m'aider !

    En espérant que l'un d'entre vous après décodage de ma demande
    puisse me mettre sur la bonne voie !!!

    D'avance MERCI

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = Range("A65535").end(xlup).row to 1 step -1
         If instr(cells(i,1), "Plat") = 0 then Range(cells(i - 3), cells(i)).entirerow.delete
    Next
    Pas testé
    Bonne soirée

  3. #3
    Expert confirmé

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Par défaut
    En partant du principe que tu as ces colonnes dans la colone A...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Cleaner()
        Dim lngPos As Long
     
        For lngPos = Range("A65536").End(xlUp).Row To 1 Step -4
            If InStr(1, Cells(lngPos - 3, 1).Value, "Plat", vbTextCompare) = 0 Then
                Range(Cells(lngPos, 1), Cells(lngPos - 3, 1)).EntireRow.Delete
            End If
        Next
    End Sub

  4. #4
    Expert confirmé

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Par défaut
    mouarf ousk...
    Tu es alléplus vite que moi !
    Mais, je pense qu'un -4 est malgré tout préférable

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Par défaut
    Bonsoir,

    Merci a vous deux

    Mais la Macro de Maxence tourne super

    Je la garde, mais, autant pour moi et cela va
    certainement compliquer le chimblick

    J'ai oublié de dire dans mon explication que :
    pour chaque course, il peut y avoir 3 ou 4 ou 5 ou 6
    ou 7 chevaux arrivés.

    Je suis déjà très satisfait du résultat obtenu et je
    suis content d'avoir bien (ou presque exposé mon soucis)

    Si la macro est adaptable, je vais enfin passer
    une bonne nuit !!!!!

    Encore merci à vous

  6. #6
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    bonsoir,

    pour avoir un code plus simple je te propose de parcourir ta liste du 1° au dernier élément et tu copie les lignes vers une feuille Plat ou Handicap...

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Par défaut
    Bonsoir JackOuYA,

    Merci pour ta réponce
    Mais le but c'est d'automatiser autant
    que faire ce peut dans une seule Macro
    le traîtement d'une fois !

    Mais j'ai déjà beaucoup avancé grace a vous

    A vous lire

  8. #8
    Expert confirmé

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Par défaut
    Citation Envoyé par malabarbe Voir le message
    Si la macro est adaptable, je vais enfin passer
    une bonne nuit !!!!!
    C'est adaptable !












    Euh ... tu veux la solution ?

    A dans quelques minutes !

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Par défaut
    Bonsoir Maxence,

    A genoux, je te la demande

    (ce n'est pas une promesse mais une prière)

    A te lire

  10. #10
    Expert confirmé

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Par défaut
    Voilà !

    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 CLeaner2()
        Dim lngStart        As Long
        Dim lngCurrent      As Long
     
        lngStart = Range("A65536").End(xlUp).Row
        For lngCurrent = lngStart To 1 Step -1
            If IsNumeric(Cells(lngCurrent, 1).Value) Then
                'rien à faire
            ElseIf InStr(1, Cells(lngCurrent, 1).Value, "Plat", vbTextCompare) = 0 Then
                Range(Cells(lngStart, 1), Cells(lngCurrent, 1)).EntireRow.Delete
                lngStart = lngCurrent - 1
            Else
                lngStart = lngCurrent - 1
            End If
        Next
    End Sub

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Par défaut
    Ouah !

    Mieux que mieux, il n'y a pas !!!!!!!!!!!!!!!!!!!!!

    Ta Macro, tourne admirablement super bien

    Tu a sauvé ma nuit.

    J'aurais d'autres questions, mais je ne
    sais pas si tu a encore du temps a me consacrer

    Mème si on en reste la, je m'estime super comblé.

    A te lire

  12. #12
    Expert confirmé

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Par défaut
    Citation Envoyé par malabarbe Voir le message
    J'aurais d'autres questions, mais je ne
    sais pas si tu a encore du temps a me consacrer

    Mème si on en reste la, je m'estime super comblé.

    Le mieux, c'est :
    - quand tu as fini avec une questino, tu cliques sur le bouton résolu
    - quand tu as une autre question, tu la poses sur le forum
    Il y aura bien un 'inactif' prêt à t'aider dans le coin

    ++

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 684
    Par défaut
    Bonsoir Maxence,

    Ok, je vais faire comme ça

    Mais comme tu connais mon post,
    j'espère retomber sur toi pour un
    complément.

    En tout cas, super merci.

    Post RESOLU avec brio !!!!!

    Bonsoir a tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/09/2008, 13h11
  2. effacer des lignes orphelines
    Par cyrille37 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 24/10/2007, 17h08
  3. [Debutant]Effacer des lignes dans un fichier
    Par smutmutant2003 dans le forum Linux
    Réponses: 13
    Dernier message: 10/10/2007, 22h49
  4. comment je peux effacer des lignes
    Par aliwassem dans le forum Composants VCL
    Réponses: 1
    Dernier message: 07/03/2006, 20h05
  5. Probleme pour effacer des lignes
    Par Thargor dans le forum Oracle
    Réponses: 7
    Dernier message: 12/10/2005, 15h58

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