VBA: Création et traitement de doublons

Mv_camelia

XLDnaute Nouveau
Bonjour tout le monde,
Tout d'abord je tiens à préciser que je vais régulièrement sur ce forum pour trouver des solutions à mes problèmes, et que j'ai trouvé de très nombreuses fois la réponse à mes questions! Pour cela je tiens à remercier tous les intervenants.

Aujourd'hui mon problème est plus précis et c'est pourquoi j'ai passé le cap de l'inscription sur le site.

Vous trouverez ci-joint un fichier où j'ai réalisé un bout de macro qu'il faudrait compléter...
Je m'explique à partir d'un fichier, où j'ai pour chaque individu son activité indiquée selon le mois de l'année ,je voudrais pouvoir réaliser un TCD m'indiquant si l'individu est présent ou non (valeur 1 ou 0).
Pour cela j'ai créer un premier tableau, qui me créé des doublons si l'individu change d'activité en cours d'année, sauf si c'est un cas de "départ" ou "IVD". Ce doublon est notifié par une étoile devant son nom.
1) La macro que j'ai réalisé fonctionne mais me créé des doublons si l'activité mentionné est départ et IVD. Des idées pour inclure cet élément?
2) Je souhaiterai que ma macro aille plus loin: sur les individus qui ont deux ou plus d'activités sur l'année, je souhaiterais que sur la ligne initiale, la macro efface les activités futures et sur les lignes doublons, la macro efface les activités passées.

Voila pour etre plus claire je vous joins le fichier, avec le tableau de base dans l'onglet "Tableau initial" et le tableau que je souhaiterais obtenir dans "Tableau". Je vous joins également les autres onglets et la macro suivante qui fonctionne et qui me permet d'actualiser le TCD, cela vous permettra de mieux comprendre l'object de ma demande et la finalité de cette macro.

Je vous remercie par avance pour vos conseils et astuces et le temps passé à regarder ma demande.

Marie
 

Pièces jointes

  • Classeur1.xls
    50.5 KB · Affichages: 92
  • Classeur1.xls
    50.5 KB · Affichages: 98
  • Classeur1.xls
    50.5 KB · Affichages: 100

Robert

XLDnaute Barbatruc
Repose en paix
Re : VBA: Création et traitement de doublons

Bonsoir Marie et Bienvenue, bonsoir le forum,

Pas évident de comprendre car dans l'onglet Tableau où tu as mis le résultat que tu souhaiterais obtenir, certaines cellules des colonnes A et B sont différentes de celles de l'onglet Tableau initial... Mais bon, j'ai pensé que c'était une erreur de ta part...
Donc, si j'ai bien compris ta requête je te propose la macro ci-dessous :
Code:
Sub ex2()
'Dans onglet "Tableau", compare ligne par ligne, si colonne D,E,F et G différentes _
de la précédente. Si c'est le cas, la macro me crée un doublon avec un étoile _
devant le nom.
Dim i, j, k As Integer
Dim cellule As Range 'déclare la variable Cellule (juste pour économiser de l'espace mémoire)
 
Sheets("Tableau").Activate
For i = Range("A65536").End(xlUp).Row To 2 Step -1 'boucle inversée (il vaut mieux quand on insère des lignes)
    k = 0
    Set cellule = Cells(i, 4) 'définit la variable Cellule (attention toujours en colonne D ?)
    For j = 5 To Range("IV1").End(xlToLeft).Column
        If Cells(i, j).Value = "IVD" Or Cells(i, j).Value = "Départ" Then GoTo suite 'évite de traiter ces lignes
        If cellule.Value <> Cells(i, j).Value Then
            k = k + 1
            Exit For 'sort de la boucle
        End If
suite:
    Next
    If k > 0 Then
        Rows(i).Copy
        Rows(i + 1).Insert Shift:=xlDown
        Range("C" & i + 1).Value = "*" & Range("C" & i + 1).Value 'astérisque en colonne C
        Range(Cells(i, j), Cells(i, 256).End(xlToLeft)).ClearContents 'supprime les données futures
        Range(Cells(i + 1, 4), Cells(i + 1, j - 1)).ClearContents 'supprime les données passées
    End If
Next
End Sub

Mais j'ai des remarques à te faire :
• tu dis que la macro compare D avec E, puis E avec F, F avec G, etc... Mais en fait, elle compare D avec E, D avec F, D avec G, etc... Est-ce normal ?
• l'astérisque qui signalait un doublon était en colonne A, je l'ai remis en colonne C comme l'indiquait le tableau des résultats souhaités dans l'onglet Tableau.
 
Dernière édition:

Mv_camelia

XLDnaute Nouveau
Re : VBA: Création et traitement de doublons

Bonjour Robert,

Tu as très bien compris ma demande! Et en effet, en voulant créer un petit fichier pour expliquer l'objet de ma demande, je me suis un peu plantée...
En tout cas un grand merci, tu m'as fait gagné quelque chose comme un jour ou deux! J'adapte la macro sur mon "vrai fichier" qui est plus conséquent.
A bientot.
Marie
 

Statistiques des forums

Discussions
312 496
Messages
2 088 978
Membres
103 996
dernier inscrit
KB4175