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

Suppression des doublons sous condition

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

sevy1

XLDnaute Occasionnel
Bonjour le forum
J'ai un fichier les doublons se trouvent sur la colonne A et je ne veux conserver que la ligne donc la colonne C contient une valeur
NB: seule une ligne contient une valeur au niveau de la colonne C pour les valeurs identiques à la colonne A
Voici un exemple de code masi qui me conserve uniquement la première ligne.
Code:
Sub SupDoublonsColA()
  Application.ScreenUpdating = False
  Set f1 = Sheets("BASE")
  a = f1.Range("A1").CurrentRegion.Value
  Dim c()
  ReDim c(1 To UBound(a, 1), 1 To UBound(a, 2))
  ligne = 1
  Set mondico = CreateObject("Scripting.Dictionary")
  For i = 1 To UBound(a)
    If Not mondico.exists(a(i, 1)) Then
      mondico.Add a(i, 1), 1
      For k = 1 To UBound(a, 2): c(ligne, k) = a(i, k): Next k
      ligne = ligne + 1
    End If
  Next
  Sheets("RE").[A1].Resize(mondico.Count, UBound(a, 2)) = c
End Sub
Merci d'avance pour votre aide
 
Re : Suppression des doublons sous condition

Bonjour,


si j'ai tout compris, on peut se limiter à ne prendre que les lignes pour lesquelles la colonne C est renseignée ( ?)
un classeur exemple aurait été souhaité (voire charte) pour tester:
Code:
Sub SupDoublonsColA()
  Application.ScreenUpdating = False
  Set f1 = Sheets("BASE")
  a = f1.Range("A1").CurrentRegion.Value
  Dim c()
  ligne = 1
  For i = 1 To UBound(a)
    If a(i, 3) <> "" Then
    ReDim Preserve c(1 To UBound(a, 2), 1 To ligne)
      For k = 1 To UBound(a, 2): c(k, ligne) = a(i, k): Next k
      ligne = ligne + 1
    End If
  Next
  Sheets("RE").[A1].Resize(UBound(c, 2), UBound(c, 1)) = Application.Transpose(c)
End Sub

A+

Edit : Je n'ai rien dit au sujet du classeur absent !!
 
Dernière édition:
Re : Suppression des doublons sous condition

Bonjour
Merci ça fonctionne mon seul souci est que la mise en forme n'est pas conservée car dans mon tableau avec doublon la colonne A est la chaine de caractère (TEXTE) alors que dans le tableau sans doublon c'est du numérique. Alors comment faire?
 
Re : Suppression des doublons sous condition

Re,

Pas trouvé d'autre solution que cette ligne à rajouter en fin de code

Code:
 Sheets("RE").[A1].Resize(UBound(c, 2), 1).NumberFormat = "@"

Bonne suite
 
- 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
15
Affichages
650
Réponses
8
Affichages
356
Réponses
8
Affichages
748
Réponses
5
Affichages
837
Réponses
4
Affichages
692
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…