Comparer deux listes

  • Initiateur de la discussion Initiateur de la discussion Jx7
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

Jx7

Guest
Bonjour!

Je suis en train d'essayer d'aider plusieurs universités qui gèrent des listes d'étudiants et malheureusement ils ne conaissent VRAIMENT PAS Excel donc je m'suis dit "fais ta B.A." 😛

Bref... voilà le topo (j'pense pas que ce sera trop dur pour vous):

ils ont régulièrement des listes d'étudiants qui leur arrivent et ils doivent intégrer ces nouvelles listes à une liste à eux. Heureusement pour nous, les listes ton toutes le même format.

En gros c'est une colonne nom, une colonne prénom, adresse, etc...

rien de bien compliqué.

le problème c'est qu'ils ont souvent des doublons.

Ma question est donc: Comment créer une macro qui ouvrirait le fichier souhaité et qui intègrerait les étudiants qui ne sont pas déjà présents dans la liste existante?
J'ai déjà fait la partie qui liste les fichiers présents dans le répertoire ; y'a plus qu'à choisir lequel intégrer à la liste existante.

dit + simplement: j'ai une liste A et je reçois régulièrement d'autres listes (B, C, D, etc...)

comment intégrer une liste (la C par exemple) à ma liste A en évitant les doublons?

Merci par avance 🙂
 
Re : Comparer deux listes

bon et bien cette fois j'ai le droit a un nouveau message d'erreur...

je crois que je vais abandonner... ce serait des erreurs "normales" je continuerais mais là ça me sort par les yeux... c'est complètement incohérent... Excel fait lui meme des erreurs c'est du grand n'importe quoi...
 
Re : Comparer deux listes

Re,
remplace ta macro de traitement par celle-ci (doublons supprimés + tri effectué):

Code:
Private Sub CommandButton__traiter_fichiers_Click()
' ================================================================================================ '
' TRAITE LES FICHIERS DE LA LISTBOX                                                                '
' ================================================================================================ '

mon_Fichier = ActiveWorkbook.Name

For i = 1 To ListBox__nom_fichiers.ListCount
With ThisWorkbook

    Set Destination = .Sheets("doublons").Range("a65536").End(xlUp).Offset(1, 0)
End With
 Workbooks.Open Filename:=mon_Path + mon_Tableau(i)
 With Sheets(Mid(mon_Tableau(i), 1, Len(mon_Tableau(i)) - 4))
  .Range(.Range("A2"), .Range("A2").End(xlDown).Offset(0, 9)).Copy Destination
 End With
 
Next
With ThisWorkbook.Sheets("doublons")
    nbre = .Range(.Range("b2"), .Range("b2").End(xlDown)).Count
    n = 1
     For i = nbre + 1 To 2 Step -1
        On Error Resume Next
        liste.Add .Cells(i, 2).Value, CStr(.Cells(i, 2).Value)
         Debug.Print Err.Number
        If Err.Number <> 0 Then
            .Cells(i, 2).EntireRow.Delete
        End If
        n = n + 1
     Next
On Error GoTo 0
For n = 1 To liste.Count
    liste.Remove 1
Next
.Range("A2").Name = "clé"
[B].Range(.Range("A2"), .Range("A2").End(xlDown).Offset(0, 9))[/B].Sort Key1:="clé", Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal

End With

End Sub

voili voilou

skoobi
edit: petite rectification faite en gras
 
Dernière édition:
Re : Comparer deux listes

re,
"select" est à éviter le plus possible voir à proscrire.
Celà alourdi ta macro et ralenti son execution.Ca ne se voit pas sur de petit traitement mais quand tu as beaucoup de données là c'est long.
De plus,dès que tu passes d'un fichier à un autre ou d'une feuille à une autre, "select" n'est plus fiable. Utilise plutôt "with... end with" (tu auras remarqué au passage que je n'ai à aucun moment utilisé "select" pour ta macro mais with... endwith).
 
Re : Comparer deux listes

re,
"select" est à éviter le plus possible voir à proscrire.
Celà alourdi ta macro et ralenti son execution.Ca ne se voit pas sur de petit traitement mais quand tu as beaucoup de données là c'est long.
De plus,dès que tu passes d'un fichier à un autre ou d'une feuille à une autre, "select" n'est plus fiable. Utilise plutôt "with... end with" (tu auras remarqué au passage que je n'ai à aucun moment utilisé "select" pour ta macro mais with... endwith).

oui j'ai remarqué. je savais pas que le "select" était à ce point problématique. c'est noté ^^

mais même entre un "with" et un "end with" j'ai eu des erreurs...

comment se positionne t-on sur une cellule sans le "select" dans ce cas?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

M
Réponses
1
Affichages
565
Matprobexcel
M
M
Réponses
6
Affichages
1 K
I
Réponses
1
Affichages
851
I
L
Réponses
4
Affichages
2 K
Luke91
L
G
  • Question Question
Réponses
6
Affichages
899
G
Réponses
5
Affichages
2 K
Gabriel7
G
Retour