Suprimer les doublons les plus faibles

JPS28

XLDnaute Occasionnel
Bonjour a tous
Je me tourne vers vous car je n'ai rien trouvé dans mes recherches qui puisse m'aider je souhaiterais pouvoir En VBA de préférence pouvoir suprimer les doublons ayant le chiffre le plus faible en colonne B. Voir l'exemple.
Merci.Cordialement.
JPS
 

Pièces jointes

  • Classeur1.xls
    13.5 KB · Affichages: 73
  • Classeur1.xls
    13.5 KB · Affichages: 70
  • Classeur1.xls
    13.5 KB · Affichages: 68

david84

XLDnaute Barbatruc
Re : Suprimer les doublons les plus faibles

Re;
Chez moi, ton fichier bogue mais, ne connaissant pas le VBA, je ne peux t'aider.
Par formule, c'est jouable à condition de travailler avec les 2 fichiers ouverts mais puisque tu es parti sur la macro, je pense que c'est plus simple dans continuer le travail dans cette voie.
J'espère que tu trouveras l'aide qu'il te faut.
Cordialement
 

JPS28

XLDnaute Occasionnel
Re : Suprimer les doublons les plus faibles

Re david84, soenda, job75, le forum.
Voici donc tout le dossier qui fonctionne bien chez moi il y a des choses inutiles mais je préfère tout mettre comme cela je suis sur de rien oubler.
@+

Cijoint.fr - Service gratuit de dépôt de fichiers
 

soenda

XLDnaute Accro
Re : Suprimer les doublons les plus faibles

Re,

Dans la Sub cmdValider_Click()
on a :
Code:
[B][COLOR=green]' Ajouter le cavalier dans formchevalcavalier.xls [U]s'il n'existe pas[/U][/COLOR][/B]
    If txtCavalier.Text <> "" Then
        Call Module3.AjouterCavalierGalop(txtCavalier.Text, Val(txtGalop))
    End If
Donc dans le module 3, Sub AjouterCavalierGalop(...), modifier les lignes entre le With, comme suit :
Code:
   [B][COLOR=green]'Recherche le cavalier dans la feuille cavalier du classeur[/COLOR][/B] [B][COLOR=teal]formcavaliercheval[/COLOR][/B]
    With Workbooks("formcavaliercheval.xls").Sheets("Cavaliers")
        For Each c In .[A2].Resize(.Range("A" & .Rows.Count).End(xlUp).Row)
            If c.Value = NomCavalier Or c.Value = "" Then
                c.Value = NomCavalier
                c.Offset(, 1) = Galop
                Exit For
            End If
        Next
    End With
A plus
 
Dernière édition:

JPS28

XLDnaute Occasionnel
Re : Suprimer les doublons les plus faibles

Bonjour soenda, le forum.
J'ai bien instalé ton code mais j'ai une erreur de compil "variable nom defini"
et je ne peux donc pas voir si ton code fonctionne.

'Recherche le cavalier dans la feuille cavalier du classeur formcavaliercheval
With Workbooks("formcavaliercheval.xls").Sheets("Cavaliers")
For Each c (le "c" est surligné en bleu) In .[A2].Resize(.Range("A" & .Rows.Count).End(xlUp).Row)
If c.Value = NomCavalier Or c.Value = "" Then
c.Value = NomCavalier
c.Offset(, 1) = Galop
Exit For
End If
Next
End With
Je te remercie de ton temps passé et de ta patience.
Cordialement
JPS
 

soenda

XLDnaute Accro
Re : Suprimer les doublons les plus faibles

Re,

JPS28 à dit:
j'ai une erreur de compil "variable nom defini"
C'est normal, tu n'as pas suivi ma recommendation :
soenda à dit:
Donc dans le module 3, Sub AjouterCavalierGalop(...), modifier les lignes entre le With
Autrement dit : seules doivent-être remplacées,les lignes situées entre le With et le End With (de la Sub AjouterCavalierGalop du module 3)

A plus
 

soenda

XLDnaute Accro
Re : Suprimer les doublons les plus faibles

Re,
Ce qui donne
Code:
[B][COLOR=green]' **************[/COLOR][/B]
[B][COLOR=green]' Sub MODIFIEE *[/COLOR][/B]
[B][COLOR=green]' **************[/COLOR][/B]
Public Sub AjouterCavalierGalop(NomCavalier As String, Galop As Integer)
 
    Dim c As Range
 
    [COLOR=green][B]' Verifier si le fichier est ouvert[/B][/COLOR]
    If Not FichierCavalierOuvert Then Exit Sub
 
   [B][COLOR=teal][COLOR=green]' Recherche le cavalier dans la feuille cavalier du classeur formcavaliercheval.xls[/COLOR][/COLOR][/B]
   With Workbooks("formcavaliercheval.xls").Sheets("Cavaliers")
 
[B][COLOR=blue]      For Each c In .[A2].Resize(.Range("A" & .Rows.Count).End(xlUp).Row)[/COLOR][/B]
[B][COLOR=blue]          If c.Value = NomCavalier Or c.Value = "" Then[/COLOR][/B]
[B][COLOR=blue]              c.Value = NomCavalier[/COLOR][/B]
[B][COLOR=blue]              c.Offset(, 1) = Galop[/COLOR][/B]
[B][COLOR=blue]              Exit For[/COLOR][/B]
[B][COLOR=blue]          End If[/COLOR][/B]
[B][COLOR=blue]      Next[/COLOR][/B]
 
    End With
 
End Sub
A plus
 
Dernière édition:

JPS28

XLDnaute Occasionnel
Re : Suprimer les doublons les plus faibles

Re soenda, le forum.
Je te remercie vivement de ce que tu as fais cela fonctionne trés bien je te pris de m'excuser pour l'inssistance mais c'était de ma faute je ne mettais pas ton code au bon endroit en plus je me suis aperçu d'un petit probleme de mon coté. Encore merci. Cordialement.
JPS
 

Discussions similaires

Statistiques des forums

Discussions
312 745
Messages
2 091 586
Membres
105 004
dernier inscrit
Dera