[Excel VBA] différents types d'objets 'range'
Zorglub
-
Polux31 Messages postés 6917 Date d'inscription Statut Membre Dernière intervention -
Polux31 Messages postés 6917 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je cherche désespérément à comprendre les subtiles nuances des objets regroupés sous le type 'range'.
En effet, l'aide et l'explorateur d'objets prétendent dans de nombreux cas qu'une collection contient des objets 'range', mais souvent de nombreuses opérations sont interdites sur ces objets.
ex: ActiveSheet.columns(1) est censé renvoyer un objet range, mais de nombreuses propriétés/méthodes des objets range vont produire une erreur
Autre exemple, plus frappant:
Si on essaye de typer des variables as 'Range', de nombreuses opérations sont interdites:
Comment se fait-il qu'un objet de type range ne puisse pas être copié dans un autre ?
D'expérience, il semble que les range de 'sous-type' colonne ou cellule seule soient différents des ranges classiques, mais je ne parviens pas à manipuler ces objets en les typant. Quand ils ne sont pas typés, ou variant, je reste bloqué par des erreurs m'indiquant (plus ou moins clairement) que mon objet range ne me permet pas d'utiliser telle ou telle propriété (genre .value !) ou telle opération (genre copie dans une autre variable)
Quelqu'un comprend-t-il ses nuances de types ?
Je cherche désespérément à comprendre les subtiles nuances des objets regroupés sous le type 'range'.
En effet, l'aide et l'explorateur d'objets prétendent dans de nombreux cas qu'une collection contient des objets 'range', mais souvent de nombreuses opérations sont interdites sur ces objets.
ex: ActiveSheet.columns(1) est censé renvoyer un objet range, mais de nombreuses propriétés/méthodes des objets range vont produire une erreur
Autre exemple, plus frappant:
Si on essaye de typer des variables as 'Range', de nombreuses opérations sont interdites:
Sub testtypes() Dim CellA As Range Dim CellB As Range For Each CellA In Range("A1:C3") CellB = CellA ' <- provoque une erreur !! Next End Sub
Comment se fait-il qu'un objet de type range ne puisse pas être copié dans un autre ?
D'expérience, il semble que les range de 'sous-type' colonne ou cellule seule soient différents des ranges classiques, mais je ne parviens pas à manipuler ces objets en les typant. Quand ils ne sont pas typés, ou variant, je reste bloqué par des erreurs m'indiquant (plus ou moins clairement) que mon objet range ne me permet pas d'utiliser telle ou telle propriété (genre .value !) ou telle opération (genre copie dans une autre variable)
Quelqu'un comprend-t-il ses nuances de types ?
A voir également:
- [Excel VBA] différents types d'objets 'range'
- Site pour vendre des objets d'occasion - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
2 réponses
Bon,
J'ai résolu le problème d'affectation des objets:
Il faut utiliser l'instruction 'Set' pour affecter à un objet la référence d'un autre.
Bon, mais il reste des trucs louches sur les types rangée / colonne...
J'ai résolu le problème d'affectation des objets:
Il faut utiliser l'instruction 'Set' pour affecter à un objet la référence d'un autre.
Set CellB = CellA
Bon, mais il reste des trucs louches sur les types rangée / colonne...