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 :

[VBA-E]Effacer ligne si une autre ligne est identique


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 92
    Points : 42
    Points
    42
    Par défaut [VBA-E]Effacer ligne si une autre ligne est identique
    Bonjour

    J'ai une petite erreur lors du lancement de ma macro.
    Voila, j'ai a l'aide d'un effacement de doublon, déterminer ma liste d'avion en conflict

    Voila, sur cette liste sa tombe juste, il n'y a pas de cas particulier, coup de chance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    BAG42V	GWI284
    SAS1592	DAT72E
    HLX3122	UAL740
    DLH4AF	DLH3PR
    Il n'y a pas de donnée sur le ligne1

    Se que je voudrais, c'est faire une analyse de ligne, qui efface la ligne, si on l'a déja

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    FW.Activate
        For p = Range("A65536").End(xlUp).Row To 2 Step -1
            If Rows(p - 1).Value = Rows(p).Value Then
                Rows(p).Delete Shift:=xlUp
            End If
        Next p
    Voila mon code, mais il ne fonctionne pas.

    Un peu d'aide SVP
    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut
    Hello,

    oublie pas de metter le tag [VBA-E] dans ton titre.

    pourrais tu montrer un exemple où ca ne tombe pas juste?

    tu met un avant / apres car là je comprend pas bien ce que tu veux faire

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 92
    Points : 42
    Points
    42
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    BAG42V	GWI284
    SAS1592	DAT72E
    HLX3122	UAL740
    DLH4AF	DLH3PR
    SAS1592	DAT72E
    HLX3122	UAL740
    Voila un petit exemple; j'ai ajouter 2 lignes, ces lignes existe déja, je veu les supprimer

    Donc se que je veu, c'est supprimer les doublons de lignes

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut
    ok

    regardes ici

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 92
    Points : 42
    Points
    42
    Par défaut
    Sa coince, j'utilisai déja une macro du meme type, meme elle fonctione sur une seul colonne, il me le faut sur les 2 en meme temps

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    BAG42V	GWI284
    BAG42V	FL410
    car si j'ai se code, il me supprime la seconde ligne

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 92
    Points : 42
    Points
    42
    Par défaut
    Autre chose, je doit créer un nombre depage corrspondant au nombre de conflit différents

    Sur ma colonne j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    1
    1
    1
    1
    2
    2
    2
    3
    3
    4
    4
    4
    4
    Je doit donc en extraire la dernière valeur.
    Mais comment, avec Derlig, enfin je détermine la dernière ligne, et j'en extrait la valeur de la cellule correpondante

    La seule chose que je sache faire avec, c'est déterminer le nombre de ligne

    Merci

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Points : 448
    Points
    448
    Par défaut
    Hop,

    j'ai fait un ptit truc qui a l'air de marcher

    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
    34
    35
    36
    37
    38
    39
    40
    Sub SupprDoublon()
     
        Dim NombreCol As Integer
        Dim NbLigne As Long
        Dim LigneDeb As Long
        Dim Fini As Boolean
        Dim NbLignesVirees As Long
        NombreCol = 2
     
        'on parcourt les colonnes
        For i = 1 To NombreCol
            'on regarde combien il y a de lignes dans la colonne
            NbLigne = Cells(1, i).End(xlDown).Row
     
            'on commence ligne 1
            LigneDeb = 1
            Fini = False
            NbLignesVirees = 0
     
            Do While Fini = False
                For j = LigneDeb + 1 To NbLigne
                    'si on trouve la meme valeur
                    If Cells(LigneDeb, i) = Cells(j, i) Then
                    'on decale tout d'une ligne vers le haut (on ecrase la meme valeur)
                        Range(Cells(j + 1, i), Cells(NbLigne, i)).Cut Destination:=Range(Cells(j, i), Cells(NbLigne - 1, i))
                        'on a une ligne de moins
                        NbLignesVirees = NbLignesVirees + 1
                        'on va recomparer la vlaeur de la meme ligne car elle
                        j = j - 1
                    End If
                Next
                NbLigne = NbLigne - NbLignesVirees
                NbLignesVirees = 0
                LigneDeb = LigneDeb + 1
                If LigneDeb = NbLigne Then Fini = True
            Loop
     
        Next
     
    End Sub
    dans le colonnes A et B j'ai ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    AZ	AA
    DE	DD
    AZ	CCC
    DR	DD
    DE	CCC
    TR	VF
    FG	XSZ
    DE	AA
    	AA
    Apres execution du code j'ai plus de doublons

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    AZ	AA
    DE	DD
    DR	CCC
    TR	VF
    FG	XSZ
    Adaptes à ton cas

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 12/09/2014, 15h02
  2. Remplacement d'une ligne par une autre ligne
    Par thisistheend dans le forum VBScript
    Réponses: 2
    Dernier message: 15/07/2011, 17h30
  3. Réponses: 82
    Dernier message: 05/02/2011, 14h34
  4. Retourner une ligne si une autre ligne est présente
    Par sousoudu31 dans le forum MySQL
    Réponses: 2
    Dernier message: 08/04/2010, 12h05
  5. Pour chaque ligne supprimée, copier cette ligne dans une autre feuille
    Par athos7776 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/10/2008, 03h35

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