Séparer éléments dictionnaire dans Array[RESOLU]

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

cp4

XLDnaute Barbatruc
Bonjour,

J'ai collecté dans un dictionnaire la concaténation de 2 colonnes séparées par le caractère "|".
Je voudrais passer à un tableau en séparant les données du dictionnaire.
Puis envoyer le tableau sur la feuille2.
ci-joint fichier.
 

Pièces jointes

Bonsoir @cp4, à tous,

Un autre code ?:
VB:
Sub doublon()
'tRes est le tableau résultat
Dim tSource, tRes, dico, i&, n&, k&, clef
   tSource = Sheets("Feuil1").Range("a1:b" & Sheets("Feuil1").Cells(Rows.Count, "a").End(xlUp).Row)
   Set dico = CreateObject("Scripting.Dictionary")
   For i = 2 To UBound(tSource): dico(tSource(i, 1) & tSource(i, 2)) = i: Next i
   ReDim tRes(1 To dico.Count, 1 To 2)
   For Each clef In dico
      n = n + 1: k = dico(clef)
      tRes(n, 1) = tSource(k, 1): tRes(n, 2) = tSource(k, 2)
   Next clef
End Sub
 
Bonsoir @cp4, à tous,

Un autre code ?:
VB:
Sub doublon()
'tRes est le tableau résultat
Dim tSource, tRes, dico, i&, n&, k&, clef
   tSource = Sheets("Feuil1").Range("a1:b" & Sheets("Feuil1").Cells(Rows.Count, "a").End(xlUp).Row)
   Set dico = CreateObject("Scripting.Dictionary")
   For i = 2 To UBound(tSource): dico(tSource(i, 1) & tSource(i, 2)) = i: Next i
   ReDim tRes(1 To dico.Count, 1 To 2)
   For Each clef In dico
      n = n + 1: k = dico(clef)
      tRes(n, 1) = tSource(k, 1): tRes(n, 2) = tSource(k, 2)
   Next clef
End Sub
Merci beaucoup @mapomme , ça fonctionne aussi bien que le code de Pierrejean (que je salue).
Bonne journée.
 
bonjour les amis 🙂🙂🙂🙂🙂
un autre code manipulant Add
VB:
Sub es()
Dim t(), m As Object, z, x As Long, i As Long
t = Feuil1.Range("a2:b" & Feuil1.Cells(Rows.Count, 1).End(3).Row)
Set m = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(t)
z = t(i, 1) & t(i, 2)
If Not m.Exists(z) Then
m.Add z, z: x = x + 1
t(x, 1) = t(i, 1): t(x, 2) = t(i, 2)
End If: Next i
Feuil2.[a2].Resize(x, 2) = t
End Sub

pas trop présente depuis quelques mois
maman depuis peu eh!!!oui
gros bisous a tous (e)🙂🙂
 
bonjour les amis 🙂🙂🙂🙂🙂
un autre code manipulant Add
VB:
Sub es()
Dim t(), m As Object, z, x As Long, i As Long
t = Feuil1.Range("a2:b" & Feuil1.Cells(Rows.Count, 1).End(3).Row)
Set m = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(t)
z = t(i, 1) & t(i, 2)
If Not m.Exists(z) Then
m.Add z, z: x = x + 1
t(x, 1) = t(i, 1): t(x, 2) = t(i, 2)
End If: Next i
Feuil2.[a2].Resize(x, 2) = t
End Sub

pas trop présente depuis quelques mois
maman depuis peu eh!!!oui
gros bisous a tous (e)🙂🙂
C'est parfait.
Du fond du cœur, mes félicitations.
Longue vie pleine de réussite, de bonheur et prospérité au bébé, au papa et à notre Laetitia préférée😉.
J'avoue que les Sub es() nous manquées. Merci pour ton retour.
Tendres bises au bébé et sa maman.🙂🙂🙂
 
- 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
22
Affichages
2 K
Réponses
4
Affichages
180
Réponses
7
Affichages
251
Réponses
17
Affichages
419
Retour