explications d'un code

20 réponses
Avatar
Patrick
Bonjour,

J'ai essayé en lisant ici et là de faire un transpose de tableau via VBA
et dictionnaire mais si mon premier résultat est ok, la suite est plus
difficile pour moi surtout qu'il y a plusieurs choses à faire/comprendre.
Vous le verrez , mon premier code fonctionne mais je ne sais pas faire
les 2 autres parties. Présentation différente et commentaires dans les
cellules.
Je veux vraiment faire ça par dictionnaire pour comprendre comment faire
dans un grand fichier et gagner un temps précieux; je comprends plus ou
moins que la clé est l'élément qui deviendra unique mais je ne sais
jamais ce que je dois mettre après cette clé...
Donc, le code commenté m'aidera à comprendre un peu mieux.
Je ne parlerai même pas des tableaux avec des échanges de y(1) = x(a,1)
que je comprends encore moins :) donc je commence par les dico que j'ai
découvert sur le site de J. Boisgontier.

Merci
mon fichier est ici:

https://www.dropbox.com/s/dwcxym9bd5vw72p/mpfe-pat.xlsm?dl=0

---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus

10 réponses

1 2
Avatar
DanielCo
Bonjour,
Qu'est-ce que tu appelles le tableau vert ?
Daniel
Patrick a utilisé son clavier pour écrire :
Bonjour,

J'ai essayé en lisant ici et là de faire un transpose de tableau via VBA et
dictionnaire mais si mon premier résultat est ok, la suite est plus difficile
pour moi surtout qu'il y a plusieurs choses à faire/comprendre.
Vous le verrez , mon premier code fonctionne mais je ne sais pas faire les 2
autres parties. Présentation différente et commentaires dans les cellules.
Je veux vraiment faire ça par dictionnaire pour comprendre comment faire dans
un grand fichier et gagner un temps précieux; je comprends plus ou moins que
la clé est l'élément qui deviendra unique mais je ne sais jamais ce que je
dois mettre après cette clé...
Donc, le code commenté m'aidera à comprendre un peu mieux.
Je ne parlerai même pas des tableaux avec des échanges de y(1) = x(a,1) que
je comprends encore moins :) donc je commence par les dico que j'ai découvert
sur le site de J. Boisgontier.

Merci
mon fichier est ici:

https://www.dropbox.com/s/dwcxym9bd5vw72p/mpfe-pat.xlsm?dl=0

---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel antivirus Avast.
https://www.avast.com/antivirus
Avatar
PatrIck
Oops...
c'est le tableau de gauche dans l'onglet cible...
j'ai retiré la couleur en lançant une dernière fois mon code
(.Clear) de la ligne 4

sorry

Le lundi 9 novembre 2015 17:51:14 UTC+1, DanielCo a écrit :
Bonjour,
Qu'est-ce que tu appelles le tableau vert ?
Daniel
Patrick a utilisé son clavier pour écrire :
> Bonjour,
>
> J'ai essayé en lisant ici et là de faire un transpose de tableau vi a VBA et
> dictionnaire mais si mon premier résultat est ok, la suite est plus d ifficile
> pour moi surtout qu'il y a plusieurs choses à faire/comprendre.
> Vous le verrez , mon premier code fonctionne mais je ne sais pas faire les 2
> autres parties. Présentation différente et commentaires dans les ce llules.
> Je veux vraiment faire ça par dictionnaire pour comprendre comment fa ire dans
> un grand fichier et gagner un temps précieux; je comprends plus ou m oins que
> la clé est l'élément qui deviendra unique mais je ne sais jamais ce que je
> dois mettre après cette clé...
> Donc, le code commenté m'aidera à comprendre un peu mieux.
> Je ne parlerai même pas des tableaux avec des échanges de y(1) = x(a,1) que
> je comprends encore moins :) donc je commence par les dico que j'ai d écouvert
> sur le site de J. Boisgontier.
>
> Merci
> mon fichier est ici:
>
> https://www.dropbox.com/s/dwcxym9bd5vw72p/mpfe-pat.xlsm?dl=0
>
> ---
> L'absence de virus dans ce courrier électronique a été vérifi ée par le
> logiciel antivirus Avast.
> https://www.avast.com/antivirus
Avatar
DanielCo
C'est hyper compliqué. Si on veut travailler uniquement avec des dictionnaires.
J'en suis à 3 dictionnaires pour le tableau bleu. Je finalise quand j'ai un peu
de temps.
Daniel
PatrIck a exposé le 09/11/2015 :
Oops...
c'est le tableau de gauche dans l'onglet cible...
j'ai retiré la couleur en lançant une dernière fois mon code
(.Clear) de la ligne 4

sorry

Le lundi 9 novembre 2015 17:51:14 UTC+1, DanielCo a écrit :
Avatar
MichD
Bonjour Daniel,

A ) Je ne sais pas ce que le demandeur recherche exactement, mais à tout hasard
un petit exemple qui extrait les valeurs uniques en colonne A dans une plage
de cellules qui contient 3 colonnes de A à C et qui recopie le résultat vers une
autre plage de cellules à partir de la colonne K1. Selon le paramètre de la
méthode Resize(), on pourrait au besoin transposer le résultat au besoin.


B ) L'exécution de ce code requiert l'ajout de la bibliothèque :
"Microsoft Scripting Runtime" à partir du menu "Outils / références /
dans la fenêtre de l'éditeur de code VBA.

'-------------------------------------------------------------
Sub test()
Dim Rg As Range, C As Range
Dim A As Long
Dim Dic As Dictionary

With Worksheets("Feuil1")
Set Rg = .Range("A2:A" & .Range("A" & .Rows.Count).End(xlUp).Row)
End With

Set Dic = CreateObject("Scripting.dictionary")

For Each C In Rg
If Not Dic.Exists(C.Value) Then
Dic.Add C.Value, C.Address
End If
Next

With Worksheets("Feuil1")
For Each It In Dic.Items
A = A + 1
.Range("K" & A).Resize(, 3).Value = .Range(It).Resize(, 3).Value
Next
End With
End Sub
'-------------------------------------------------------------





"DanielCo" a écrit dans le message de groupe de discussion : n1sf8f$n08$

C'est hyper compliqué. Si on veut travailler uniquement avec des dictionnaires.
J'en suis à 3 dictionnaires pour le tableau bleu. Je finalise quand j'ai un peu
de temps.
Daniel
PatrIck a exposé le 09/11/2015 :
Oops...
c'est le tableau de gauche dans l'onglet cible...
j'ai retiré la couleur en lançant une dernière fois mon code
(.Clear) de la ligne 4

sorry
Le lundi 9 novembre 2015 17:51:14 UTC+1, DanielCo a écrit :
Avatar
DanielCo
Regarde le classeur avec les commentaires à l'adresse :
https://www.dropbox.com/s/mtuf8pw3gvhilw8/pattrick%20mpfe-pat.xlsm?dl=0
Il y a des commentaires dnas le code de PrésentationColonnes2. Des copies de la
fenêtre des variables locales sur la feuille cible. N'hésite pas à pposer des
questions.
Daniel
PatrIck avait soumis l'idée :
Oops...
c'est le tableau de gauche dans l'onglet cible...
j'ai retiré la couleur en lançant une dernière fois mon code
(.Clear) de la ligne 4
Avatar
Patrick
Hello Daniel :)

ça semble être ça et c'est commenté , merci :)
et ça a du mal à entrer dans ma tête d'où ma question:
puisque on compte bien le nb de rendez vous de chaque vendeur à une date
précise, je me dis que , je pourrais dans la cellule qui contient ce
nombre (à partir de M2 donc) mettre en commentaire le nom du (des)
client(s) avec qui il a rdv...(Marion a rdv avec Client A et B le 2/11)
donc si je fait apparaitre Client A et Client B dans la cellule en
commentaire c'est top :)
Bon, je cherche de mon côté en attendant :) sur une copie de ton code.

Alors , est ce dans Dic3 ou bien il faut un Dic4 pour ce faire ?

Patrick

Le 10/11/2015 14:12, DanielCo a écrit :
Regarde le classeur avec les commentaires à l'adresse :
https://www.dropbox.com/s/mtuf8pw3gvhilw8/pattrick%20mpfe-pat.xlsm?dl=0
Il y a des commentaires dnas le code de PrésentationColonnes2. Des
copies de la fenêtre des variables locales sur la feuille cible.
N'hésite pas à pposer des questions.
Daniel
PatrIck avait soumis l'idée :
Oops...
c'est le tableau de gauche dans l'onglet cible...
j'ai retiré la couleur en lançant une dernière fois mon code
(.Clear) de la ligne 4






---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Avatar
DanielCo
Regarde la macro "Commentaires" (même adresse de classeur)
Daniel
Patrick avait soumis l'idée :
Hello Daniel :)

ça semble être ça et c'est commenté , merci :)
et ça a du mal à entrer dans ma tête d'où ma question:
puisque on compte bien le nb de rendez vous de chaque vendeur à une date
précise, je me dis que , je pourrais dans la cellule qui contient ce nombre
(à partir de M2 donc) mettre en commentaire le nom du (des) client(s) avec
qui il a rdv...(Marion a rdv avec Client A et B le 2/11) donc si je fait
apparaitre Client A et Client B dans la cellule en commentaire c'est top :)
Bon, je cherche de mon côté en attendant :) sur une copie de ton code.

Alors , est ce dans Dic3 ou bien il faut un Dic4 pour ce faire ?

Patrick
Avatar
Patrick
Merci...
je regarde à tout ce bon et beau code :-)

Patrick


Le 10/11/2015 18:57, DanielCo a écrit :
Regarde la macro "Commentaires" (même adresse de classeur)
Daniel
Patrick avait soumis l'idée :
Hello Daniel :)

ça semble être ça et c'est commenté , merci :)
et ça a du mal à entrer dans ma tête d'où ma question:
puisque on compte bien le nb de rendez vous de chaque vendeur à une
date précise, je me dis que , je pourrais dans la cellule qui contient
ce nombre (à partir de M2 donc) mettre en commentaire le nom du (des)
client(s) avec qui il a rdv...(Marion a rdv avec Client A et B le
2/11) donc si je fait apparaitre Client A et Client B dans la cellule
en commentaire c'est top :)
Bon, je cherche de mon côté en attendant :) sur une copie de ton code.

Alors , est ce dans Dic3 ou bien il faut un Dic4 pour ce faire ?

Patrick






---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Avatar
DanielCo
Remarque que, si tu préfères onpeut l'incorporer à la macro précédente avec un
dictionnaire supplémentaire...
Daniel
Patrick avait énoncé :
Merci...
je regarde à tout ce bon et beau code :-)

Patrick
Avatar
Patrick
Je n'osais pas te le demander Daniel... :) :)


je vais tenter , avec tes explications, de comprendre durant la semaine
comment tu as fais avec un dico supplémentaire

Merci encore !!!
Patrick


Le 11/11/2015 12:49, DanielCo a écrit :
Remarque que, si tu préfères onpeut l'incorporer à la macro précédente
avec un dictionnaire supplémentaire...
Daniel
Patrick avait énoncé :
Merci...
je regarde à tout ce bon et beau code :-)

Patrick






---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
1 2