Suppression des doublons sous condition

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
 

Paf

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

sevy1

XLDnaute Occasionnel
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?
 

Discussions similaires

Réponses
12
Affichages
253
Réponses
11
Affichages
298

Statistiques des forums

Discussions
312 322
Messages
2 087 285
Membres
103 507
dernier inscrit
tapis23