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

adresses cellules d'une plage dans array

2 réponses
Avatar
-=lolol=-
Bonjour à tous,

Je souhaite affecter à un tableau (array) les adresses des cellules contenu
dans un range ... j'ai cherché sur excelabo et chez frédéric sans succés :-(
Voilà ou j'en suis :

Dim EnsVisibles As Range
Dim EnteteEnsVisibles As Range
Dim TabloAdresseEns 'As String

Set EnsVisibles = [Ensembles!A1].CurrentRegion.Offset(1,
0).Resize([Ensembles!A1].CurrentRegion.Rows.Count -
1).SpecialCells(xlVisible)

Set EnteteEnsVisibles = EnsVisibles.Resize(EnsVisibles.Rows.Count, 1)

ReDim TabloAdresseEns(1 To EnteteEnsVisibles.Count)

TabloAdresseEns = EnteteEnsVisibles.Address

Avec ça, TabloAdresseEns contient "$A$2:$A$4" alors que je voudrais
TabloAdresseEns (1) = $A$2
TabloAdresseEns (2) = $A$3
TabloAdresseEns (3) = $A$4

Comment faire ?
Suis je obligé de boucler sur la plage pour affecter les adresses des
cellules les unes après les autres ?

Merci pour votre aide
@+lolo

2 réponses

Avatar
PMO
Bonjour,

Une piste avec votre code modifié.

'**********
Sub a()
Dim EnsVisibles As Range
Dim EnteteEnsVisibles As Range
Dim TabloAdresseEns() As String
Dim C As Range
Dim i&
Set EnsVisibles = [Ensembles!A1].CurrentRegion _
.Offset(1, 0).Resize([Ensembles!A1] _
.CurrentRegion.Rows.Count - 1) _
.SpecialCells(xlVisible)
Set EnteteEnsVisibles = EnsVisibles _
.Resize(EnsVisibles.Rows.Count, 1)

For Each C In EnteteEnsVisibles
i& = i& + 1
ReDim Preserve TabloAdresseEns(1 To i&)
TabloAdresseEns(i&) = C.Address
Next C
End Sub
'**********

Cordialement.
--
PMO
Patrick Morange



Bonjour à tous,

Je souhaite affecter à un tableau (array) les adresses des cellules contenu
dans un range ... j'ai cherché sur excelabo et chez frédéric sans succés :-(
Voilà ou j'en suis :

Dim EnsVisibles As Range
Dim EnteteEnsVisibles As Range
Dim TabloAdresseEns 'As String

Set EnsVisibles = [Ensembles!A1].CurrentRegion.Offset(1,
0).Resize([Ensembles!A1].CurrentRegion.Rows.Count -
1).SpecialCells(xlVisible)

Set EnteteEnsVisibles = EnsVisibles.Resize(EnsVisibles.Rows.Count, 1)

ReDim TabloAdresseEns(1 To EnteteEnsVisibles.Count)

TabloAdresseEns = EnteteEnsVisibles.Address

Avec ça, TabloAdresseEns contient "$A$2:$A$4" alors que je voudrais
TabloAdresseEns (1) = $A$2
TabloAdresseEns (2) = $A$3
TabloAdresseEns (3) = $A$4

Comment faire ?
Suis je obligé de boucler sur la plage pour affecter les adresses des
cellules les unes après les autres ?

Merci pour votre aide
@+lolo




Avatar
-=lolol=-
Bonjour PMO,

... je suis donc obligé de boucler :-(
adepte de l'économie de la nanoseconde j'eus préféré m'en passer
mébon (comme dirait l'autre) :-)

mille mercis pour ton aide
@+lolo