Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Suprimer les doublons les plus faibles

  • Initiateur de la discussion Initiateur de la discussion JPS28
  • 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 !

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

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
 
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
 
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:
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
 
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
 
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:
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
 
- 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

Discussions similaires

Réponses
5
Affichages
402
E
Réponses
3
Affichages
794
ExcelBeginner
E
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…