Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Element neutre

1 réponse
Avatar
manu
Bonjour,
Je me demande s'il existe un element neutre pour une variable de type
Range.
Pour quoi faire ? Par exemple
Merci.

Dim Plage As Range
Set Plage=ElementNeutre

Do

Set Plage=Union(Plage,Range(...))

Loop While Not Fin

1 réponse

Avatar
Michel41
Bonsoir

J'ai essayé ce bout de programme à exécuter en pas à pas :
Il montre que comme union a tendance a simplifier les choses,
si B est déclaré 2 fois de suite, B ne sera compté qu'une fois
Il suffit donc de donner à un objet range qui a la valeur NoThing
la valeur d'un autre objet Range dont la valeur n'est jamais NoThing
Si le décompte d'aires est faux, la sortie se fait par On Error
Voilà une piste sans plus

Mais pourtant @+
M41


Sub X()
'
Dim A As Range, B As Range, C As Object
Dim D As Object, U As Range
Dim i As Integer, j As Integer, K As Boolean, W As Range
'
On Error GoTo Y
Set D = Nothing
Set A = Range("A1")
Set B = Range("B1")
'
Set C = A: K = C Is B
If K Then Debug.Print "idem" Else Debug.Print "?"
Set C = B: K = C Is B
If K Then Debug.Print "idem" Else Debug.Print "?"
Set C = D: K = C Is B
If K Then Debug.Print "idem" Else Debug.Print "?"
'
Set U = Union(A, B)
i = U.Count: Debug.Print i
Set W = Nothing
Set U = Union(A, W, B)
i = U.Count: Debug.Print i
On Error GoTo Z
For j = 1 To i
Debug.Print U.Areas(j).Address
Next j
'
Exit Sub
Y:
Set W = B
Resume
Z:
End Sub



"manu" a écrit dans le message de news:

Bonjour,
Je me demande s'il existe un element neutre pour une variable de type
Range.
Pour quoi faire ? Par exemple
Merci.

Dim Plage As Range
Set Plage=ElementNeutre

Do

Set Plage=Union(Plage,Range(...))

Loop While Not Fin