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.:):):)
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas