Boucle dans plusieurs plages

2 réponses
Avatar
rmillerlcxl
Bonjour,

Par exemple j'ai 65 plages qui sont des Range. Je souhaite ex=C3=A9cuter le=
m=C3=AAme code pour les 15 range.

Est-ce possible alors de faire comme pour des cellules =E2=80=A6 For each c=
ell in Range.cells

For each zones in ...Array(???

Ou quelque chose du genre?

Merci =C3=A0 l'avance.

2 réponses

Avatar
MichD
Le 2019-03-30 à 12:05, a écrit :
Bonjour,
Par exemple j'ai 65 plages qui sont des Range. Je souhaite exécuter le même code pour les 15 range.
Est-ce possible alors de faire comme pour des cellules … For each cell in Range.cells
For each zones in ...Array(???
Ou quelque chose du genre?
Merci à l'avance.

Bonjour,
Eh oui, c'est possible.
Exemple : 65 plages de cellules, c'est-à-dire des plages de cellules qui
n'ont pas de cellules en commun
'-----------------------------------------------
Sub test()
Dim DerLig As Long, DerCol As Long, X As String
Dim Rg As Range, Are As Range, C As Range
'Adapte le nom de l'onglet de la feuille
With Worksheets("Feuil1")
'Dernière ligne de la feuille
DerLig = Cells.Find("*", LookIn:=xlFormulas, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
'Dernière colonne de la feuille
DerCol = Cells.Find("*", LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
'L'étendue de toutes les cellules de toute les plages
'occupées dans la feuille
Set Rg = .Range("A1", .Cells(DerLig,
DerCol)).SpecialCells(xlCellTypeConstants, 23)
'Le 23 c'est la somme de la valeur numérique du type de données les
valeurs de type :
'xlerrors = 16
'xlogical = 4
'Xlnumbers = 1
'xltextvalues = 2
'pour chaque plage distincte
For Each Are In Rg.Areas
'pour chaque cellule de chacune des plages distinctes
For Each C In Are.Cells
'ton code
X = C.Address
Next
Next
End With
End Sub
'-----------------------------------------------
MichD
Avatar
MichD
Tu t'es sûrement rendu compte qu'il manquait un "." (point) devant les 2
"Cells"
DerLig = .Cells.Find("*", LookIn:=xlFormulas, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
'Dernière colonne de la feuille
DerCol = .Cells.Find("*", LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
MichD