Comparaison avec Is

Le
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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacky
Le #26165592
Bonjour,

Set B=A

--
Salutations
JJ


"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.
DanielCo
Le #26166012
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.
GL
Le #26166172
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".
DanielCo
Le #26166722
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
isabelle
Le #26167162
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.
GL
Le #26167222
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.
DanielCo
Le #26167212
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
GL
Le #26167202
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.
DanielCo
Le #26167252
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
isabelle
Le #26167372
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)
Publicité
Poster une réponse
Anonyme