Un truc que je ne comprends pas (parmi des tas d'autres !!!) :
Pourquoi ceci
With Feuil1
Plage = .Range("Matricules")
Me.Matricules.List = Plage
End With
fonctionne, et pas
Me.Matricules.List = Feuil1.Range("Matricules")
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichD
Le 28/04/22 Í 09:14, ThierryP a écrit :
Bonjour le forum et Denis ! Un truc que je ne comprends pas (parmi des tas d'autres !!!) : Pourquoi ceci With Feuil1 Plage = .Range("Matricules") Me.Matricules.List = Plage End With fonctionne, et pas Me.Matricules.List = Feuil1.Range("Matricules") Merci d'avance pour l'explication ! ThierryP
Bonjour, plage = Range("Matricules") Me.ComboBox1.List = plage Écrit de cette manière plage devient un tableau (array) de type variant. La propriété "List" n'a aucun problème avec le contenu d'un tableau (array) Msgbox TypeName(plage) '=Variant() Dans ce qui suit, "Range("Matricules")" est un "Range" et non un tableau. Me.ComboBox1.List = Range("Matricules") Par contre, ceci fonctionne très bien : Me.ComboBox1.List = Range("Matricules").value Tu fais alors référence au contenu des cellules de la page et non au "Range" La propriété par défaut d'un "Range" est value lorsqu'elle n'est pas mentionnée. Cependant dans certaines circonstances cela ne fonctionne pas sans explicitement stipuler la propriété de l'objet range doit retournée. C'est une bonne habitude de spécifier la propriété de l'objet bien que ce soit plus long Í écrire! ;-) MichD
Le 28/04/22 Í 09:14, ThierryP a écrit :
Bonjour le forum et Denis !
Un truc que je ne comprends pas (parmi des tas d'autres !!!) :
Pourquoi ceci
With Feuil1
Plage = .Range("Matricules")
Me.Matricules.List = Plage
End With
fonctionne, et pas
Me.Matricules.List = Feuil1.Range("Matricules")
Écrit de cette manière plage devient un tableau (array) de type variant.
La propriété "List" n'a aucun problème avec le contenu d'un tableau (array)
Msgbox TypeName(plage) '=Variant()
Dans ce qui suit, "Range("Matricules")" est un "Range" et non un tableau.
Me.ComboBox1.List = Range("Matricules")
Par contre, ceci fonctionne très bien :
Me.ComboBox1.List = Range("Matricules").value
Tu fais alors référence au contenu des cellules de la page et non au "Range"
La propriété par défaut d'un "Range" est value lorsqu'elle n'est pas
mentionnée. Cependant dans certaines circonstances cela ne fonctionne
pas sans explicitement stipuler la propriété de l'objet range doit
retournée.
C'est une bonne habitude de spécifier la propriété de l'objet bien que
ce soit plus long Í écrire! ;-)
Bonjour le forum et Denis ! Un truc que je ne comprends pas (parmi des tas d'autres !!!) : Pourquoi ceci With Feuil1 Plage = .Range("Matricules") Me.Matricules.List = Plage End With fonctionne, et pas Me.Matricules.List = Feuil1.Range("Matricules") Merci d'avance pour l'explication ! ThierryP
Bonjour, plage = Range("Matricules") Me.ComboBox1.List = plage Écrit de cette manière plage devient un tableau (array) de type variant. La propriété "List" n'a aucun problème avec le contenu d'un tableau (array) Msgbox TypeName(plage) '=Variant() Dans ce qui suit, "Range("Matricules")" est un "Range" et non un tableau. Me.ComboBox1.List = Range("Matricules") Par contre, ceci fonctionne très bien : Me.ComboBox1.List = Range("Matricules").value Tu fais alors référence au contenu des cellules de la page et non au "Range" La propriété par défaut d'un "Range" est value lorsqu'elle n'est pas mentionnée. Cependant dans certaines circonstances cela ne fonctionne pas sans explicitement stipuler la propriété de l'objet range doit retournée. C'est une bonne habitude de spécifier la propriété de l'objet bien que ce soit plus long Í écrire! ;-) MichD
ThierryP
Bonjour Denis, Comme d'habitude...... Clair et pédagogique !! Merci pour tes explications :-) ThierryP
Bonjour Denis,
Comme d'habitude...... Clair et pédagogique !!
Merci pour tes explications :-)