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 :

[E-03] Supprimer certaines lignes d'un fichier


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 71
    Par défaut [E-03] Supprimer certaines lignes d'un fichier
    Bonjour à tous,

    voici mon problème (voir fichier joint pour l'exemple, ce n'est qu'une petite partie du fichier)
    mon fichier répertorie des nombres de trains allant d'une ville vers une autre.
    Dans la première colonne, j'ai ma ville de départ, dans la 2ème la ville d'arrivée et dans la 3ème le nombre de trains.
    Je voudrais pouvoir disposer d'une liste épurée dans laquelle j'ai le nombre total de train circulant sur une ligne donnée. Ex: dans mon fichier,
    Aillevillers --> Bains-les-Bains = 2
    puis
    Bains-les-Bains --> Aillevillers = 3

    Je voudrais avoir en fin de compte :
    Aillevillers --> Bains-les-Bains = 5
    et que la ligne "Bains-les-Bains --> Aillevillers = 3" soit supprimée.
    J'ai réussi en mixant du traitement excel qui teste la présence ou non d'un doublon mais je suis ensuite obligé d'utiliser du code VBA pour supprimer les lignes.
    J'aimerais pouvoir faire le traitement entièrement par macro.

    J'espère avoir été assez clair...

    Merci de votre aide

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Voilà une procédure qui devrait faire quelque chose qui ressemble à ce que tu cherches.
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Sub subCompacte()
    Dim sh As Excel.Worksheet, rng As Range, tabVil() As Variant
    Dim lFin As Long, x As Long, y As Long, z As Long
    Const iVil1 As Integer = 2, iVil2 As Integer = 3, iNombre As Integer = 4, iDeb As Integer = 3
     
    Set sh = Application.ThisWorkbook.Worksheets(1)
    lFin = sh.Cells(Application.Rows.Count, iVil1).End(xlUp).Row
    Set rng = sh.Range(sh.Cells(iDeb, iVil1), sh.Cells(lFin + 1, iNombre))
    tabVil() = rng.Value
    rng.ClearContents
     
    For x = UBound(tabVil, 1) To LBound(tabVil, 1) Step -1
        For y = LBound(tabVil, 1) To x - 1
            If (tabVil(y, 1) = tabVil(x, 2)) And (tabVil(y, 2) = tabVil(x, 1)) Then Exit For
        Next y
        If y < x Then
            tabVil(y, 3) = tabVil(y, 3) + tabVil(x, 3)
            For z = x + 1 To UBound(tabVil, 1)
                tabVil(z - 1, 1) = tabVil(z, 1)
                tabVil(z - 1, 2) = tabVil(z, 2)
                tabVil(z - 1, 3) = tabVil(z, 3)
                If IsNull(tabVil(z, 1)) Then Exit For
            Next z
        End If
    Next x
     
    rng.Value = tabVil()
     
    Set rng = Nothing
    Set sh = Nothing
    Erase tabVil()
     
    End Sub
    Cordialement,

    PGZ

  3. #3
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 71
    Par défaut
    Bonjour pgz,

    merci beaucoup pour ta réponse, c'est exactement le type de procédure que je cherchais.

    je vais pouvoir cliquer sur

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

Discussions similaires

  1. supprimer une certaine ligne d'un fichier
    Par morphemia dans le forum Langage
    Réponses: 1
    Dernier message: 10/11/2011, 20h35
  2. Supprimer certaines lignes d'un fichier texte
    Par kek_net dans le forum Langage
    Réponses: 2
    Dernier message: 10/04/2006, 11h21
  3. Supprimer une ligne dans un fichier
    Par tsing dans le forum Linux
    Réponses: 4
    Dernier message: 06/02/2006, 14h45
  4. Shell pour supprimer des lignes d'un fichier
    Par nelsa dans le forum Autres langages
    Réponses: 2
    Dernier message: 20/09/2004, 12h26
  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