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
Bonjour
Ranges n'est pas un objet, mais une collection d'objets (objets range)
On type donc une plage de cellules comme un objet Range et non la collection Ranges
Bonjour jmfmarques
Ok donc je comprends un peu mieux l'incompatibilité, mais quelle serait l'implication de Ranges, aurais-tu un petit exemple ? (pour ma culture générale)
Merci
Sub Macro1()
Dim truc As Range
Set truc = Union(Range("A1:A2"), Range("C1:C2"))
'MsgBox Union(Range("A1:A2,C1:C2")).Areas.Count
MsgBox truc.Areas.Count
MsgBox truc.Count
End Sub
Bjr Laurent950
Merci, pour l'objet Range j'ai bien compris, mais je bute vraiment sur la collection Ranges et ce qu'elle permet de réaliser, si quelqu'un a un exemple même basique je le remercie par avance
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.
par analogie, ça t'éclairairera peut-être sur la philosophie des collections d'objets.
Worksheets est la collection des objets Worksheet (sans s).
eric
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.
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.