Sub Resultat()
Application.ScreenUpdating = False
Range("C2:D" & Rows.Count).ClearContents 'RAZ
With [A1].CurrentRegion
If .Rows.Count = 1 Then Exit Sub
With .Rows(2).Resize(.Rows.Count - 1)
.Columns(4) = .Columns(1).Value
.Columns(4).Offset(.Columns(4).Rows.Count) = .Columns(2).Value
With .Columns(4).Resize(2 * .Columns(4).Rows.Count)
.RemoveDuplicates 1, Header:=xlNo 'supprime les doublons
.Replace "a", "", xlPart 'supprime les "a"
.Sort .Cells(1), xlAscending, Header:=xlNo 'tri
With .Resize(Application.CountA(.Cells))
.Columns(0) = "=RC[1]&""a""" 'rajoute les "a"
.Value = .Columns(0).Value 'copie les valeurs
.Columns(0).ClearContents 'RAZ
End With
End With
.Columns(3).FormulaR1C1 = "=REPT(RC1,RC1=RC2)"
.Columns(3) = .Columns(3).Value 'supprime les formules
End With
End With
End Sub
Bsr,
Je cherche a avoir in macro ou formule pour
Avoir ce resultat s'il vous plait,
Salutation
Id1 id2 resultat1 Result2 1a 1a 1a 1a 2a 2a 2a 2a 57a 5a 5a 85a 57a 57a 86a 86a 86a 85a 87a 87a 87a 86a 87a
Bonjour,Bonjour à tous,
Par macro :
Sauf que 57a vient avant 5a...VB:Sub test() Dim Dico As Object, C As Range, I As Long Set Dico = CreateObject("Scripting.Dictionary") For Each C In Range("A2", Cells(Rows.Count, 2).End(xlUp)) If Not Dico.exists(C.Value) Then Dico.Add C.Value, C.Value End If Next C For Each Item In Dico.keys I = I + 1 [D1].Offset(I) = Item Next Item End Sub
Elle est bien cette fonction REPT,je la comprend comment l'utiliser ,sauf qué c'est tout le temps qué c'est aligne,CA se passe Avec CE piece joint ci?je suis coince?Bonsoir MAHARO,
Pour resultat1, en C2 =REPT(A2;A2=B2)
Pour Result2 demandez à votre voyante extra lucide.
A+