XL 2016 Différence entre Areas et objet Ranges

tontonexcel

XLDnaute Occasionnel
Bonjour à tous,

On m'a posé une question notamment sur l'exploitation de l'objet Ranges et je ne connaissait même pas cet objet, est-ce qu'il remplit le rôle de la propriété Areas de l'objet Range ?

En allant consulter aide de Microsoft Ranges = collection de Range
Voici le code que j'ai essayé :
VB:
Sub Macro1()

Dim truc As Ranges

' Ok
MsgBox Range("A1:A2,C1:C2").Areas.Count

Set truc = Range("A1:A2,C1:C2")

' Plantage incompatibilité
MsgBox truc.Count

End Sub
Merci pour vos réponses
 

jmfmarques

XLDnaute Accro
Collection d'objets Range qui représente les feuilles de calcul d'un classeur.
Tout objet range fait partie de la collection Ranges, utilisée en interne par Excel. Tu n'as en principe pas à l'utiliser toi-même (tu l'utilises en fait de toutes manières en écrivant, par exemple, Range("A1:B4"))

Il en va différemment de la collection Areas, dont chaque élément est un objet Range d'une plage discontinue.
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Je ne conaissais pas non plus Ranges. Je suppose qu'on ne peut pas plus en construire une qu'une collection Areas, c'est de l'objet qui la possède en propriété qu'on peut seulement en extraire une. Un objet Range a une propriété Areas, un objet WorkbookConnection a une propriété Ranges. Je doute même que ce soit une collection d'objets Range. Enfin c'est un partie d'Excel que je ne connais pas du tout.
Cela dit vous pouvez toujours faire ce que vous voulez avec un objet Collection tout simplement. Vous y mettez ce que vous voulez avec des Add.
 
Dernière édition:

laurent950

XLDnaute Accro
Dim truc As Ranges
Cela n'existe pas sous cette forme
C'est comme
dim Sh as worksheets (cela n'existe pas sous cette forme)
idem
dim wk as workbooks (Cela n'existe pas sous cette forme)
Car
Set Sh = worksheet("Feuille1") cela n'existe pas non plus
Set Wk = worksBook("Classeur1") cela n'existe pas non plus
C'est le modéle object de microsoft et le paramétrage de leurs modéles de classes (dont nous avons pas accés)
alors
si dim Sh as worksheet
et donc
Set Sh = worksheets("Feuille1")

Alors justement comme le dit Dranreb Méga expert VBA je ne connaissais pas non plus sous cette forme comme expliqué plus haut.
 
Dernière édition:

Statistiques des forums

Discussions
312 078
Messages
2 085 106
Membres
102 779
dernier inscrit
wrond