Modif sur macro, pr copier sur une ligne et sans doublon

Christian0258

XLDnaute Accro
Bonsoir à tout le forum,

Je souhaiterais votre aide afin de modifier cette macro, pour copier les données, sans doublon, sur une ligne (et non en colonne).

voir fichier...

Je vous remercie pour le temps que vous voudrez bien m'accorder.

Bien amicalement,
Christian
 

Pièces jointes

  • Coller en ligne, sans doublon.xls
    26.5 KB · Affichages: 62

Banzai64

XLDnaute Accro
Re : Modif sur macro, pr copier sur une ligne et sans doublon

Bonjour

Très peu de changement

VB:
Sub SuppDoublons2()
Dim coll As Collection

  Application.ScreenUpdating = False
  Range("V2:AK2").ClearContents
  Set coll = New Collection
  tableau = Range("f2:f" & Range("f41").End(xlUp).Row)
  For n = 1 To UBound(tableau, 1)
    On Error Resume Next
    coll.Add Trim(tableau(n, 1)), CStr(Trim(tableau(n, 1)))
    On Error GoTo 0
  Next n
  For n = 1 To coll.Count
   Cells(2, 21 + n) = coll(n)
  Next n
  Application.ScreenUpdating = True

End Sub

Bonne journée
 

kjin

XLDnaute Barbatruc
Re : Modif sur macro, pr copier sur une ligne et sans doublon

Bonsoir,
Code:
Sub SuppDoublons1()
Dim coll As Collection, tableau As Variant
Range("V2:AK1").ClearContents
Set coll = New Collection
tableau = Application.Transpose(Range("f2:f" & Range("f41").End(xlUp).Row).Value)
For n = 1 To UBound(tableau)
    On Error Resume Next
    coll.Add Trim(tableau(n)), CStr(Trim(tableau(n)))
    On Error GoTo 0
Next n
ReDim tableau(1 To coll.Count)
For i = 1 To coll.Count
    tableau(i) = coll(i)
Next i
Range("V2").Resize(1, UBound(tableau)) = tableau
End Sub

Edit : Est-ce toujours en V2 ?

A+
kjin
 
Dernière édition:

laetitia90

XLDnaute Barbatruc
Re : Modif sur macro, pr copier sur une ligne et sans doublon

bonjour Christian0258 ,Banzai64 , kjin

peut être plus simple en passant par Dictionary ??

Code:
Sub es()
Dim t, x As Variant, m As Object
Set m = CreateObject("Scripting.Dictionary")
[v2:bi2].ClearContents
x = [f2:f41]
For Each t In x: m(t) = t: Next t
[v2].Resize(1, m.Count) = m.keys
Set m = Nothing
End Sub
 

Christian0258

XLDnaute Accro
Re : Modif sur macro, pr copier sur une ligne et sans doublon

Re, le forum, banzai64, kjin, laetitia90

Merci, laetitia, pour ta solution.
Je souhaterais ajouter à vos codes une condition (au traitement ou non);
si T3, différent, de SECTEUR ENTREE et si U3, différent, de MIDI. alors PAS DE TRAITEMENT sinon la macro est lancée.

Merci pour ton aide,
Bien à vous,
Christian
 

laetitia90

XLDnaute Barbatruc
Re : Modif sur macro, pr copier sur une ligne et sans doublon

re,

si T3, différent, de SECTEUR ENTREE et si U3, différent, de MIDI. alors PAS DE TRAITEMENT sinon la macro est lancée.
attention tu mets "et si u3 ect.." donc and si tu mets "ou" c'est or
je prends and corrige si pas cela avec or

Code:
Sub es()
Dim t, x As Variant, m As Object
If [t3] <> "SECTEUR ENTREE" And [u3] <> "MIDI" Then Exit Sub
Set m = CreateObject("Scripting.Dictionary")
[v2:bi2].ClearContents
x = [f2:f41]
For Each t In x: m(t) = t: Next t
[v2].Resize(1, m.Count) = m.keys
Set m = Nothing
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 852
Membres
103 974
dernier inscrit
chmikha