Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Explication d'une ligne de code

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 !

cathodique

XLDnaute Barbatruc
Bonjour,

Je fais appelle à vos compétences pour me donner la signification de la ligne de code repérée ***. C'est un code de Boisgontier pour alimenter un combobox sans doublon
Code:
Private Sub UserForm_Initialize()
  Set f = Sheets("BD")
  Set mondico = CreateObject("Scripting.Dictionary")
  a = f.Range("A2:A" & f.[A65000].End(xlUp).Row) ' tableau a(n,1) pour rapidité
  For i = LBound(a) To UBound(a)
    If a(i, 1) <> "" Then mondico(a(i, 1)) = "" '***
  Next i
  Me.ComboBox1.List = MonDico.keys
End Sub
J'ai bien compris que si le tableau a(i,1) n'est pas vide alors mondico(a(i,1))="" c'est ce que je n'ai pas compris.
Je n'ai pas compris cette notation (=""). En vous remerciant.
 
Re : Explication d'une ligne de code

bonjour cathodique

If a(i, 1) <> "" then

tout simplement... pour eviter d'avoir un blanc dans ta liste un dico considere un vide comme un item

mondico(a(i, 1)) = ""

c'est une simplication de mondico(a(i, 1)) = mondico(a(i, 1)) + 1 de plus un peu plus rapide

on peut egalement utiliser add
 
Re : Explication d'une ligne de code

Bonjour à tous

Un dictionnaire est comme un tableau à 2 colonnes : colonne 1 les clés , colonne 2 la donnée correspondant (item)

Quand on insert une clé on doit insérer un item également . Dans le cas présent comme seule la clé nous intéresse, on donne comme valeur à l'item la valeur 'vide'.

mondico(a(i, 1)) = "" signifie qu'on insère la valeur du tableau a(i,1) dans la colonne clé et la valeur "" dans la colonne item

Si on tente d'écrire plusieurs fois la même clé dans un dictionnaire, seule la première est prise en compte. C'est pour ça qu'on l'utilise pour obtenir une liste sans doublon ( pour alimenter une combobox par exemple)

A+
 
Re : Explication d'une ligne de code

Bonjour.
Le dictionnaire se construit en une seule instruction en utilisant ma fonction DictionnArbo.
N'a besoin que du module ordinaire MDictionnArbo, du module de classe TableIndex et de la référence Micosoft Scripting Runtime.
Les clés y sont classées et les items sont les listes de numéros de lignes dans la plage source portant leurs valeurs de clés.
Vous avez déjà les modules nécessaires depuis cette discussion.
 
[RESOLU] : Explication d'une ligne de code

Bonjour,

je vous remercie beaucoup. Vos explications m'aident à mieux comprendre le dictionnaire. Je n'avais pas fait le rapprochement avec des valeurs vides. C'est plus clair maintenant.

@Dranreb: je sais que j'ai tous les modules nécessaires, j'ai voulu mieux comprendre la chose. Maintenant que tu me fais rappeler cette discussion, ton code fonctionne très bien mais j'avoue que je n'ai pas compris grand chose. Je ne suis qu'un bidouilleur du dimanche. J'ai mis ton fichier en lieu sûr, j'espère atteindre ton niveau pour comprendre ton code. Merci beaucoup.

Bonne fin de journée à tous.

Cordialement,

cathodique
 
Dernière édition:
- 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
3
Affichages
629
Réponses
12
Affichages
704
Réponses
40
Affichages
3 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…