Sélectionner un range espacé de plusieurs lignes

Bonjour à tous,

Depuis ce matin je galère à trouver un code qui me sélectionne tous les ranges ci dessous espacés de 4 lignes par exemple:

For i =4 to derlgn step 4

.Range ( cells(i,3),cells(i,dercol)).select

Next

J'ai essayé avec une boucle, mais pas concluant

J'ai aussi essayé avec un filtre, pas concluant non plus

Sheets("Feuil1").Range("B1").AutoFilter Field:=2, Criteria1:="Echange"
Set tbl = ActiveCell.CurrentRegion.SpecialCells(xlCellTypeVisible)
numRows = tbl.Rows.Count
numColumns = tbl.Columns.Count
tbl.Resize(numRows - 1, numColumns - 2).Select
Selection.Name = "LstFC"
ActiveSheet.AutoFilterMode = False

Je voudrais avoir en sélection ce range : " .Range ( cells(i,3),cells(i,dercol)).select" toutes les 4 lignes et à partir de la ligne 4 jusqu'à derlgn. Pour par la suite nommer cette sélection.

Dans mon 2eme essai, j'ai fait un filtre car mon critère "Echange" apparait toutes les 4 lignes ( 4,8,12,16,20...)

Est que quelqu'un à une idée ?

Merci à vous

Bonjour,

Deux possibilités s'offrent à toi, la première est limitée par le nombre de caractères maxi que peut prendre une adresse pour un Range (255 caractères), 123 plages dans mon test :

Sub Test1()

    'ici, la chaine ne peut pas dépasser 255 caractères

    Dim I As Long
    Dim Chaine As String

    For I = 4 To 123 Step 4

        Chaine = Chaine & Range(Cells(I, 3), Cells(I, 10)).Address(0, 0) & ","

    Next

    Chaine = Left(Chaine, Len(Chaine) - 1)

    'Range(Chaine).Select'<--- soit avant...

    ThisWorkbook.Names.Add "MaPlageAMoi", Range(Chaine)

    Range("MaPlageAMoi").Select '<--- soit après

End Sub

La seconde, qui permet un bien plus grand nombre de plages (jai testé jusqu'à 10000) mais qui oblige 'dinitialiser la première plage avant la boucle :

Sub Test2()

    'ici, j'ai testé jusqu'à 10000

    Dim Plage As Range
    Dim I As Long
    Dim Chaine As String

    'il faut initialiser une première plage...
    Set Plage = Range(Cells(4, 3), Cells(4, 10))

    'et commencer à 8
    For I = 8 To 1000 Step 4

        Set Plage = Union(Plage, Range(Cells(I, 3), Cells(I, 10)))

    Next

    'Plage.Select '<--- soit avant...

    ThisWorkbook.Names.Add "MaPlageAMoi", Plage

    Range("MaPlageAMoi").Select '<--- soit après

End Sub

Dans les deux proc, j'ai nommé la plage "MaPlageAMoi", adaptes. Tu doit aussi adapter les variables !

Super, merci à toi je vais réussir à l'adapter.

Bonne journée

Rechercher des sujets similaires à "selectionner range espace lignes"