J'ai fait ceci pour quelqu'un qui cherche à sélectionner une ligne sur trois dans un tableau. J'avais fait l'essai sur quelques dizaines de lignes : tout allait bien, mais le problème, c'est qu'au delà d'une certaine longueur de tableau, il y a une erreur 1004. La chaîne adresse se fait bien (environ 16000 car) mais c'est ensuite au Set... que ça coince... Y-aurait-il une limite au nombre de plages non contiguës en VBA? Si oui, une autre idée?
Merci d'avance
Cordialement
Code:
Option Explicit
Sub essai()
Dim PremLi As Long
Dim Pas As Integer
Dim NbLignes As Long
Dim Cpt As Integer
Dim chaine As String
Dim Plage As Range
' --------------- Pour un tableau qui va de A2 à H3744
PremLi = 2
Pas = 3
NbLignes = 3743
For Cpt = PremLi To NbLignes Step Pas
chaine = chaine & "A" & Cpt & ":" & "H" & Cpt & ","
Next Cpt
chaine = Left(chaine, Len(chaine) - 1)
Set Plage = Range(chaine)
Plage.Select
End Sub
sans doute une limite vba dans la longueur de la chaine de caractère, à confirmer, par contre regarde le code cidessous, fonctionne chez moi, excel2003 :
Code:
Sub test()
Dim i As Integer, c As Range
Set c = Range("A2:H2")
For i = 5 To 3744 Step 3
Set c = Union(c, Range(Cells(i, 1), Cells(i, 8)))
Next i
c.Select
End Sub