Affecter un dictionnaire à une colonne d'un tableau

Bonjour à tous,

J'ai essayé d'affecter un dictionnaire à une colonne d'un tableau mais ça me génère une erreur d’exécution :

Application.Index(Res, , 1) = MonDico.Keys

Merci d'avance.

Bonjour

Pour avoir en colonne les éléments d'un objet dictionnaire, il faut utiliser la transposition

 =  Application.Transpose(Mondico.Keys)

En plus il faut indiquer le nombre de ligne pour la transposition

Comme je ne me rends pas compte de ce que doit faire ton instruction je ne peux pas t'aider plus sans ton fichier

Quelqu'un sait peut-être

Bonjour Banzai64,

Voila un exemple en PJ.

191dicocolonnetab.xlsm (25.53 Ko)

Bonjour,

Si j'ai compris l'objectif: créer une liste sans doublons des éléments colonne B en colonne A.

Option Explicit
Public Sub test()
Dim MonDico
Dim c As Range
    Set MonDico = CreateObject("Scripting.dictionary")
    For Each c In [B1:B10]
        If Not MonDico.Exists(c.Value) Then
           MonDico(c.Value) = ""
        End If
    Next c
    [A1].Resize(MonDico.Count, 1) = Application.Transpose(MonDico.keys)
    Set MonDico = Nothing
End Sub

Bonjour

J'ai presque compris la même chose, mais la recopie doit se faire dans la 1ère colonne de la zone nommée "res"

Dans ce cas c'est bien la colonne A, mais si la zone "res" est déplacée la colonne va changer (cqfd)

A tester donc

Sub test()
Dim MonDico As Object
Dim Cel As Range

  Set MonDico = CreateObject("Scripting.dictionary")
  For Each Cel In [B1:B10]
    MonDico(Cel.Value) = ""
  Next Cel

  Range("Res").Range("A1").Resize(MonDico.Count) = Application.Transpose(MonDico.Keys)
End Sub

Bonjoue Jean-Eric, Banzai64,

Res est une variable de type tableau.

Et j'aimerais remplir mon tableau avec 5 dictionnaires que je venais d'avoir.

Chaque colonne de la variable tableau Res devra contenir les clés ou les valeurs d’un dictionnaire.

Redim Preserve Res (1 To MonDico.Count, 1 To 5)

Application.Index(Res, , 1) = MonDico.Keys
Application.Index(Res, , 2) = MonDico2.Items
Application.Index(Res, , 3) = MonDico3.Items
Application.Index(Res, , 4) = MonDico4.Items
Application.Index(Res, , 5) = MonDico.Items

Res, devra contenir plusieurs resultats de

Re,

Peux-tu nous envoyer un exemple concret de ce que tu souhaites.

apt a écrit :

Res est une variable de type tableau.

Et j'aimerais remplir mon tableau avec 5 dictionnaires que je venais d'avoir.

Chaque colonne de la variable tableau Res devra contenir les clés ou les valeurs d’un dictionnaire.

Ce n'est pas avec ton fichier initial que l'on peut travailler

Cdlt.

Bonjour Jean-Eric, Banzai64,

Un exemple en pj.

Bonjour,

Ma vision des choses

(Tableau & TCD+outil camera pour synthèse et sans VBA pour cet exemple)

A te relire

Cdlt

Bonsoir Jean-Eric,

C'est bien présenté, mais le groupe "TRS" avec ces trois colonnes["Type","Eqm","Suprt"] ainsi que les deux colonnes "Secours GE" et "OBS" ne sont pas renseignées .....

Alors, ce je souhaiterais faire, c'est extraire trois états à imprimer selon la nature de l’arrêt.

Les données qui apparaitront dans l’état en cas de :

1) EVR :

  • Nom du site
  • Etat du secours GE (depuis la feuille GE)
  • Nombre de coupures
  • Durée totale des coupures par site
  • Observation (depuis la feuille GE)

2) COM :

  • Nom du site
  • Nombre de coupures
  • Durée totale des coupures par site
  • Observation (depuis la feuille COM)

3) TRS :

  • Nom du site
  • Type (depuis la feuille TRS)
  • Eqm : Nombre de coupures par eqm
  • Suprt : Nombre de coupures par suprt
  • Nombre de coupures
  • Durée totale des coupures par site
  • Observation (depuis la feuille TRS)

Merci d'avance.

Re,

Okay, mais précises les choses par des exemples concrets.

Cdlt.

Bonjour Jean-Eric, le forum,

Dans le classeur en PJ, il y a trois feuilles qui représente chacune un état à ressortir.

Les trois états sont : eCOM, eEVR, eTRS

26etats-v1-1.xlsm (82.08 Ko)

Bonjour,

Voir commentaires en feuille "Calculs".

Cdlt

Bonjour,

On obtient le calcul du nombre de coupure par Eqm et par Suprt depuis la dernière colonne F de la BDD à savoir "Cause de perturbation".

Si on est dans le cas "TRS" on teste le texte saisi dans cette colonne F.

Si elle contient le mot "BLOCAGE" on incrémente le nombre de coupure dans "Eqm".

Sinon on l’incrémente dans "Suprt".

Dans ton exemple joint cette colonne est omise.

Re,

Tu n'as l'impression de ne pas donner toutes les infos pour que l'on puisse te réponde favorablement.

Ce post peut durer éternellement.

Je pense que tu as assez d'éléments maintenant, pour avancer un peu tout seul.

Reviens vers moi quand tu auras intégré ce que je t'ai envoyé et ceci dans ton fichier.

A te relire

Cdlt.

Bonjour Jean-Eric,

J'ai vérifié le dernier fichier avec les exemples des états voulus, et il y a bien une colonne F renseignée !

Rechercher des sujets similaires à "affecter dictionnaire colonne tableau"