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

cp4

XLDnaute Impliqué
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.
 

Fichiers joints

job75

XLDnaute Barbatruc
Bonsoir cp4, Pierre,

C'est exactement le problème de ce fil.

Comme on le voit je l'ai résolu en utilisant la commande Convertir.

A+
 

cp4

XLDnaute Impliqué
Bonjour cp4

A tester
Bonsoir Pierrejean,;)

Merci beaucoup pour ton fichier.
En fait, je voulais avoir les données séparées dans un array pour y effectuer des calculs
et ensuite transférer sur la feuille.
Merci quand même pour ton fichier qui me servira j'en suis sûr.

Bonne soirée.:)
 

cp4

XLDnaute Impliqué
Re

Version permettant la création d'un tableau(tabsort)
Pierrejean:D:cool::cool::cool:,

C'est parfait, exactement le résultat escompté.
Je viens d'apprendre que l'on peut utiliser split avec un array.
Encore merci, je n'ai plus qu' à modifier la 2ème dimension pour ajouter
mes petits calculs.

Toute ma gratitude.

Bon dimanche.;)
 

mapomme

XLDnaute Barbatruc
Supporter XLD
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
 
  • J'aime
Reactions: cp4

cp4

XLDnaute Impliqué
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.
 

laetitia90

XLDnaute Barbatruc
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):):)
 
  • J'aime
Reactions: cp4

cp4

XLDnaute Impliqué
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.:):):)
 

Discussions similaires


Haut Bas