C
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 !
bonjour tout le monde,
je besoins d'aide pour faire le suivant fichier avec les doublons...s'il vous plait aide moi.
Bonjour,
ce n'est pas un fichier XL ça mais un pdf, on ne sait pas faire grand chose avec...
Un fichier anonymisé serait bienvenu 🙂
P.
ici mon VB..il 'y avez des erreurs mais je suis nulle...Bonjour,
ce n'est pas un fichier XL ça mais un pdf, on ne sait pas faire grand chose avec...
Un fichier anonymisé serait bienvenu 🙂
P.
Bonjour,
Code:Sub RegroupeSansDoublons() Set mondico = CreateObject("Scripting.Dictionary") For Each c In Range("a2", [a65000].End(xlUp)) If Not mondico.exists(c.Value) Then mondico(c.Value) = c.Offset(, 1).Value Else mondico(c.Value) = mondico(c.Value) & "," & c.Offset(, 1).Value End If Next c [D2].Resize(mondico.Count, 1) = Application.Transpose(mondico.keys) [E2].Resize(mondico.Count, 1) = Application.Transpose(mondico.items) End Sub
BISSON
Option Explicit
Sub EnColonne()
Dim d1, d2, d3, c
Set d1 = CreateObject("Scripting.Dictionary")
Set d2 = CreateObject("Scripting.Dictionary")
Set d3 = CreateObject("Scripting.Dictionary")
For Each c In Range("a1", [a65000].End(xlUp))
If Not d1.Exists(c.Value) Then
d1(c.Value) = c.Offset(0, 1) ' ajout dans dictionnaire
Else
d1(c.Value) = d1(c.Value) & "," & c.Offset(0, 1) ' 1 colonne après la première
End If
If Not d2.Exists(c.Value) Then
d2(c.Value) = c.Offset(0, 2)
Else
d2(c.Value) = d2(c.Value) & "," & c.Offset(0, 2) ' 2e colonne après la première
End If
If Not d3.Exists(c.Value) Then
d3(c.Value) = c.Offset(0, 3)
Else
d3(c.Value) = d3(c.Value) & "," & c.Offset(0, 3) '3e colonne après la première
End If
Next c
If d1.Count = 0 Then Exit Sub
[f2].Resize(d1.Count) = Application.Transpose(d1.keys)
[g2].Resize(d1.Count) = Application.Transpose(d1.items)
[h2].Resize(d2.Count) = Application.Transpose(d2.items)
[i2].Resize(d3.Count) = Application.Transpose(d3.items)
End Sub
re,
sur base du fichier que tu as déposé 🙂
P.
Edit: pas vue le message précédant de Nicole 🙁
VB:Option Explicit Sub EnColonne() Dim d1, d2, d3, c Set d1 = CreateObject("Scripting.Dictionary") Set d2 = CreateObject("Scripting.Dictionary") Set d3 = CreateObject("Scripting.Dictionary") For Each c In Range("a1", [a65000].End(xlUp)) If Not d1.Exists(c.Value) Then d1(c.Value) = c.Offset(0, 1) ' ajout dans dictionnaire Else d1(c.Value) = d1(c.Value) & "," & c.Offset(0, 1) ' 1 colonne après la première End If If Not d2.Exists(c.Value) Then d2(c.Value) = c.Offset(0, 2) Else d2(c.Value) = d2(c.Value) & "," & c.Offset(0, 2) ' 2e colonne après la première End If If Not d3.Exists(c.Value) Then d3(c.Value) = c.Offset(0, 3) Else d3(c.Value) = d3(c.Value) & "," & c.Offset(0, 3) '3e colonne après la première End If Next c If d1.Count = 0 Then Exit Sub [f2].Resize(d1.Count) = Application.Transpose(d1.keys) [g2].Resize(d1.Count) = Application.Transpose(d1.items) [h2].Resize(d2.Count) = Application.Transpose(d2.items) [i2].Resize(d3.Count) = Application.Transpose(d3.items) End Sub
Ha bon...merci, mais ca ne marche pas 🙁
ici avec ton fichier j'ai le résultat correct mais je dis bien avec le fichier que tu as envoyé ; si le bon fichier n'a pas la même structure ou est situé ailleurs que en A1
Ah au temps pour moi, je pensais que justement comme le sujet était plus ou moins le même il ne fallait pas re- créer de post et s'insérer dans celui-ci.Bonjour @Shou ,
il est préférable de faire un nouveau post et de ne pas s'insérer dans un existant 🙂
P.
Re : FUSIONNER / CONCATENER des DOUBLONS
Bonsoir CTRL-ALT-SUP, ninbihan et le forum,
En effet une solution par macro avec ce code et classeur joint.
Bon test.Code:Sub Concatener() Dim Ligne As Long, I As Long, J As Byte, Mémoire As String, Mot As String For I = 1 To Range("A65536").End(xlUp).Row + 1 If Left(Cells(I, 1), 8) <> Mémoire Then Mémoire = Left(Cells(I, 1), 8) If Ligne > 0 Then Cells(Ligne, 2) = Mot Ligne = Ligne + 1 Mot = "" Mot = Cells(I, 1) Else J = Len(Cells(I, 1)) While Mid$(Cells(I, 1), J, 1) <> "_" J = J - 1 Wend Mot = Mot & " / " & Mid$(Cells(I, 1), J + 1, Len(Cells(I, 1)) - J + 1) End If Next I End Sub
bonsoir Jean Yves,Re : FUSIONNER / CONCATENER des DOUBLONS
Bonsoir CTRL-ALT-SUP, ninbihan et le forum,
En effet une solution par macro avec ce code et classeur joint.
Bon test.Code:Sub Concatener() Dim Ligne As Long, I As Long, J As Byte, Mémoire As String, Mot As String For I = 1 To Range("A65536").End(xlUp).Row + 1 If Left(Cells(I, 1), 8) <> Mémoire Then Mémoire = Left(Cells(I, 1), 8) If Ligne > 0 Then Cells(Ligne, 2) = Mot Ligne = Ligne + 1 Mot = "" Mot = Cells(I, 1) Else J = Len(Cells(I, 1)) While Mid$(Cells(I, 1), J, 1) <> "_" J = J - 1 Wend Mot = Mot & " / " & Mid$(Cells(I, 1), J + 1, Len(Cells(I, 1)) - J + 1) End If Next I End Sub
We use cookies and similar technologies for the following purposes:
Est ce que vous acceptez les cookies et ces technologies?
We use cookies and similar technologies for the following purposes:
Est ce que vous acceptez les cookies et ces technologies?