Comparaison avec Is

17 réponses
Avatar
GL
Bonjour,

Je me demande à quoi peut bien servir Is avec les objets Range :

Set A = Selection ' un range quelconque
Set B = A.Cells
If A Is B Then Debug.Print "Egal"

Où l'on voit que "A Is Not B"... Donc très utile...

Bonne nuit.

10 réponses

1 2
Avatar
Jacky
Bonjour,

Set B=A

--
Salutations
JJ


"GL" a écrit dans le message de news: 53891738$0$2394$
Bonjour,

Je me demande à quoi peut bien servir Is avec les objets Range :

Set A = Selection ' un range quelconque
Set B = A.Cells
If A Is B Then Debug.Print "Egal"

Où l'on voit que "A Is Not B"... Donc très utile...

Bonne nuit.
Avatar
DanielCo
Bonjour,
Reporte-toi à l'aide VBA avant de poster.
Daniel


Bonjour,

Je me demande à quoi peut bien servir Is avec les objets Range :

Set A = Selection ' un range quelconque
Set B = A.Cells
If A Is B Then Debug.Print "Egal"

Où l'on voit que "A Is Not B"... Donc très utile...

Bonne nuit.
Avatar
GL
Le 31/05/2014 09:54, DanielCo a écrit :
Bonjour,
Reporte-toi à l'aide VBA avant de poster.
Daniel



Ouais. C'est le genre d'aide qui vous explique
au kilomètre les limitations du programme. Lever
ce genre de limitations aurait été évidemment
plus rapide et facile que de les expliquer dans
"l'aide".
Avatar
DanielCo
Le 31/05/2014 09:54, DanielCo a écrit :
Bonjour,
Reporte-toi à l'aide VBA avant de poster.
Daniel



Ouais. C'est le genre d'aide qui vous explique
au kilomètre les limitations du programme. Lever
ce genre de limitations aurait été évidemment
plus rapide et facile que de les expliquer dans
"l'aide".



Effectivement, ça serait super de lever toutes les limitations; autant
de lignes et de colonnes qu'on veut, autant de décimales que
nécessaire... Mais on est pas là pour refaire le monde. On est là pour
vivre avec l'existant. Si l'utilisation de "Is" ne te convient pas dans
ce cas précis (encore que je ne vois pas son utilité dans la vraie
vie...), utilise autre chose. Voici un exemple de "Is" qui fonctioonne
parfaitement :

Set F = Sheets(1)
For Each sh In Worksheets
If Not sh Is F Then
MsgBox sh.Name
End If
Next

Daniel
Avatar
isabelle
Is est un opérateur de comparaison de références d'objets. Il ne compare pas des
objets ou leur valeur,
mais vérifie si deux références d'objet sont associées au même objet

Set C = Selection
Set A = C
Set B = C
If A Is B Then Debug.Print "Egal"

isabelle

Le 2014-05-30 19:41, GL a écrit :
Bonjour,

Je me demande à quoi peut bien servir Is avec les objets Range :

Set A = Selection ' un range quelconque
Set B = A.Cells
If A Is B Then Debug.Print "Egal"

Où l'on voit que "A Is Not B"... Donc très utile...

Bonne nuit.
Avatar
GL
Le 31/05/2014 13:14, DanielCo a écrit :
Le 31/05/2014 09:54, DanielCo a écrit :
Bonjour,
Reporte-toi à l'aide VBA avant de poster.
Daniel



Ouais. C'est le genre d'aide qui vous explique
au kilomètre les limitations du programme. Lever
ce genre de limitations aurait été évidemment
plus rapide et facile que de les expliquer dans
"l'aide".



Effectivement, ça serait super de lever toutes les limitations; autant
de lignes et de colonnes qu'on veut, autant de décimales que
nécessaire... Mais on est pas là pour refaire le monde. On est là pour
vivre avec l'existant. Si l'utilisation de "Is" ne te convient pas dans
ce cas précis (encore que je ne vois pas son utilité dans la vraie
vie...), utilise autre chose. Voici un exemple de "Is" qui fonctioonne
parfaitement :

Set F = Sheets(1)
For Each sh In Worksheets
If Not sh Is F Then
MsgBox sh.Name
End If
Next

Daniel



Oui bon exemple.
Du coup entre A et B(=A.Cells) on voit que c'est la même collection
d'objets physiques (les cellules) avec les mêmes zones dans le même
ordre, et que A et B sont du même type. Donc affirmer que "A Is Not B"
doit faire référence à un truc caché à l'utilisateur et inutilisable
pour lui. Très utile au final...

Cordialement.
Avatar
DanielCo
Oui bon exemple.
Du coup entre A et B(=A.Cells) on voit que c'est la même collection
d'objets physiques (les cellules) avec les mêmes zones dans le même
ordre, et que A et B sont du même type. Donc affirmer que "A Is Not B"
doit faire référence à un truc caché à l'utilisateur et inutilisable
pour lui. Très utile au final...

Cordialement.



Voir la réponse d'Isabelle.
Daniel
Avatar
GL
Le 31/05/2014 14:46, isabelle a écrit :
Is est un opérateur de comparaison de références d'objets. Il ne compare
pas des objets ou leur valeur,
mais vérifie si deux références d'objet sont associées au même objet



Non puisque:
1) A et B (=A.cells) sont deux références associées au même
objet (la collection des cellules formant un objet de type Range).
2) Not A Is B est Vrai
3) Dans toute situation, A et B sont non discernables (on peut
indifféremment les interchanger)

Bon weekend.


Set C = Selection
Set A = C
Set B = C
If A Is B Then Debug.Print "Egal"

isabelle

Le 2014-05-30 19:41, GL a écrit :
Bonjour,

Je me demande à quoi peut bien servir Is avec les objets Range :

Set A = Selection ' un range quelconque
Set B = A.Cells
If A Is B Then Debug.Print "Egal"

Où l'on voit que "A Is Not B"... Donc très utile...

Bonne nuit.
Avatar
DanielCo
Le 31/05/2014 14:46, isabelle a écrit :
Is est un opérateur de comparaison de références d'objets. Il ne compare
pas des objets ou leur valeur,
mais vérifie si deux références d'objet sont associées au même objet



Non puisque:
1) A et B (=A.cells) sont deux références associées au même
objet (la collection des cellules formant un objet de type Range).
2) Not A Is B est Vrai
3) Dans toute situation, A et B sont non discernables (on peut
indifféremment les interchanger)

Bon weekend.



Il s'agit de deux objets équivalents ayant les mêmes propriétés. L'aide
VBA sur Range.Cells indique :
"Returns a Range object that represents the cells in the specified
range.". Concrètement, je t'accorde que tu ppeux utiliser l'un ou
l'autre; ça ne signifie pas qu'il s'agit du même objet.
Daniel
Avatar
isabelle
ce qu'il faut retenir est :
Il ne compare pas des objets ou leur valeur,
mais vérifie si deux références d'objet sont associées au même objet.

isabelle

Le 2014-05-31 09:00, GL a écrit :
Le 31/05/2014 14:46, isabelle a écrit :
Is est un opérateur de comparaison de références d'objets. Il ne compare
pas des objets ou leur valeur,
mais vérifie si deux références d'objet sont associées au même objet



Non puisque:
1) A et B (=A.cells) sont deux références associées au même
objet (la collection des cellules formant un objet de type Range).
2) Not A Is B est Vrai
3) Dans toute situation, A et B sont non discernables (on peut
indifféremment les interchanger)
1 2