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 :

Lorsqu'une données apparait plusieurs fois, ne garder que la dernière [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Assistant technique
    Inscrit en
    Février 2007
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Assistant technique
    Secteur : Services à domicile

    Informations forums :
    Inscription : Février 2007
    Messages : 336
    Points : 197
    Points
    197
    Par défaut Lorsqu'une données apparait plusieurs fois, ne garder que la dernière
    Bonjour,

    Je voudrais connaître la ligne de code que je dois intégrer dans ma macro pour ne garder que la dernière ligne de données si elle est présente plusieurs fois

    Par exemple :

    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
    Si :
     
    Colonne A 	| Colonne B
    		| 
    Jean-Michel	| OUI
    		| 
    Cédric		| OUI
    		| 
    Jean-Michel	| NON
    		| 
    Cédric		| NON
     
     
    Alors ça devient :
     
    Colonne A 	| Colonne B
    		| 
    Jean-Michel	| NON
    		| 
    Cédric		| NON
    Merci par avance !!

  2. #2
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 239
    Points : 307
    Points
    307
    Par défaut
    Bonjour,
    Je te propose une solution consistant à mémoriser les différentes références dans un tableau . Si la référence existe , on la met à jour ; Sinon ajoute une entrée au tableau ( j'ai pas testé le code , j'espère qu'il n'y a pas d'erreur de syntaxe)

    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
    41
    42
    43
     
    Sub Garder_Derniere_valeur()
     
    Dim Tab_valeur() As String
    Dim occ_trouve As Boolean
    nb_ligne = ActiveSheet.Range("A2").CurrentRegion.Rows.Count
     
    nb_occur = 0
     
    For ligne = 2 To nb_ligne
     
    occur1 = Cells(ligne, 1).Value
    occur2 = Cells(ligne, 2).Value
     
     occ_trouve = False
     
    If nb_occur > 0 Then  ' on compare avec les différentes valeurs stockées
        For occ = 1 To nb_occur
               If Tab_valeur(1, occ) = occur1 Then
                     Tab_valeur(2, occ) = occur2
                    occ_trouve = True
              Exit For
            End If
     Next
     End If
     
    If occ_trouve = False Then ' on stocke dans le tableau
     nb_occur = nb_occur + 1
        ReDim Preserve Tab_valeur(1 To 2, 1 To nb_occur)
        Tab_valeur(1, nb_occur) = occur1
        Tab_valeur(2, nb_occur) = occur2
    End If
     
    Next
     
    'ensuite on liste le tableau  , j'ai choisi de liste en fin de liste ( sinon on peut effacer avec  range ( "A2:B" & nb_ligne ).clearcontents
     
    for N = 1 to  nb_occur
    cells ( nb_ligne  + 5 + N  , 1) = Tab_valeur(1, N)
    cells ( nb_ligne  + 5 + N  , 2) = Tab_valeur(2, N)
     
     
    next

  3. #3
    Membre habitué
    Homme Profil pro
    Assistant technique
    Inscrit en
    Février 2007
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Assistant technique
    Secteur : Services à domicile

    Informations forums :
    Inscription : Février 2007
    Messages : 336
    Points : 197
    Points
    197
    Par défaut
    C'est nickel !!

    Merci encore !!

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

Discussions similaires

  1. Réponses: 22
    Dernier message: 13/09/2013, 14h20
  2. traiter une grande quantité de données en plusieurs fois
    Par epeichette dans le forum Langage
    Réponses: 0
    Dernier message: 03/08/2010, 09h18
  3. saisir une seule fois une donnée pour plusieurs enregistrements
    Par yulalienor dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 29/06/2010, 18h38
  4. [VBA-E]Methode pour trouver une valeur qui apparait plusieur fois
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 23/05/2006, 13h11
  5. Réponses: 2
    Dernier message: 10/07/2004, 17h14

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