Doublons

lio

XLDnaute Occasionnel
Bonjour le forum,

Sur le fichier ci-joint, je bloque depuis une journée pour éliminer les doublons et avoir un mgx (par ex ' attention doublon'). J'ai cherché dans les pages 'Wiki' mais je n'arrive pas à adapter la macro ... pareil dans le tutorial doublons du site.

Merci pour votre aide.
 

lio

XLDnaute Occasionnel
Re, voici le fichier

Merci. [file name=Test_20051119164252.zip size=31102]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Test_20051119164252.zip[/file]
 

Pièces jointes

  • Test_20051119164252.zip
    30.4 KB · Affichages: 28

Celeda

XLDnaute Barbatruc
Bonsoir,

Bonjour,

oh super lio, l'occasion de revenir sur deux fils avec deux démos de @+Thierry et de retrouver les amis (es) :

(quel fil!! ;) encore)
Lien supprimé


Lien supprimé

Je pense que cela t'instruira pour éliminer les doublons dans ta listbox mais vba n'étant pas ma tasse de thé, je me garderais bien de t'enduire d'horror, alors regarde si tu peux t'en sortir avec ces deux fils et ces démos, sinon reviens.


Celeda
 

lio

XLDnaute Occasionnel
Bonjour Celeda, le forum,

Les liens indiqués sont très intéressants mais je n'arrive pas à trouver la réponse à ma question.

J'aurais eu tendance à mettre un code du genre:

Sub SupprimerLignesDoublons()
Dim Cell As Range
Dim Ligne As Integer, I As Integer
Dim M As Byte, U As Byte, N As Byte
Dim Tableau(), Tableau2()
Dim Resultat As String
Ligne = Range('A65536').End(xlUp).Row ' derniere ligne non vide colonne A M = 1
N = 1
ReDim Preserve Tableau(M) 'tableau valeurs uniques colonne A
ReDim Preserve Tableau2(N) ' tableau pour numero de lignes doublons
Application.ScreenUpdating = False
For Each Cell In Range('A2:A' & Ligne)
U = 0
For I = 1 To M
If Cell = Tableau(I - 1) Then
Tableau2(N - 1) = Cell.Row ' recupere numero de ligne quand un doublon est detecté
N = N + 1
ReDim Preserve Tableau2(N)
U = 1
End If
Next I
If Tableau(M - 1) = '' And U = 0 Then
Tableau(M - 1) = Cell ' remplissage tableau valeurs uniques si pas de doublon détecté
M = M + 1
ReDim Preserve Tableau(M)
End If
Next Cell
For I = N - 1 To 1 Step -1 ' boucle pour supprimer les lignes de doublons
Rows(Tableau2(I - 1)).Delete
Next I
Application.ScreenUpdating = True
End Sub

Mais je n'arrive pas à le faire fonctionner.

1.Où faut-il placer ce code ? (module ou dans USF).
2.Peut on intégrer un message d'avertissement ?.
3.Malgré l'aide, je ne comprends pas cette ligne:Application.ScreenUpdating = True

Merci pour votre aide.
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonsoir Lio, Celeda, bonsoir le forum,

Lio ne m'engueule pas ! J'ai carrément tout changé. Avec ta méthode j'y arrivais pas alors j'ai fait comme si c'était pour moi. Avec mes manies et mes habitudes... Si ça te plaît pas tu jettes.
[file name=testV2_20051120032335.zip size=32348]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/testV2_20051120032335.zip[/file]

Message édité par: Robert, à: 20/11/2005 03:23
 

Pièces jointes

  • testV2_20051120032335.zip
    31.6 KB · Affichages: 24

lio

XLDnaute Occasionnel
Bonjour Robert,

Tout d'abord merci beaucoup pour ta démo.
Quelques remarques:

Avec ton système, je ne peux plus modifier une 'identité'.

Ta recherche de doublon présente un bug selon moi. Essai de saisir un nouveau nom, par ex 'Rob'. Le message doublon apparait ... alort que Rob et Robert sont 2 personnes diférentes !

Pour ma part, j'ai ces lignes de code pour vérifier les doublons:
'ici un Control de Duplication
For X = 2 To L ' L = recherche dernière ligne
If TextBox1 = Worksheet ('fiche').Range('A' & X) Then
Match = Match + 1: i = X
End If
Next X

Mais cette recherche de doublons est aussi 'défectueuse' en quelque sorte. ( Robert, ROBERT, RoBerT, robert n'est pas détecté... pourtant c'est le président ! lol)


Pour info, je viens aussi de voir une astuce sur une démo de Thierry:

Pour éviter les flachs d'écran, notamment pour l'option 'supprimer' de la démo, on peut utiliser : Application.ScreenUpdating

D'autre part, je comprends maintenant , grace à toi, comment revenir sur un bouton. C'est le fameux 'Set Focus'. Bref plein de choses intéressantes.

MeRcI RoBeRt et bon dimanche.
 

Discussions similaires

Réponses
10
Affichages
460
Réponses
26
Affichages
983

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz