Selection multizone en VBA

mécano41

XLDnaute Accro
Bonjour,

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
 

Pierrot93

XLDnaute Barbatruc
Re : Selection multizone en VBA

Bonjour Mecano

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

bon après midi
@+
 

Statistiques des forums

Discussions
312 113
Messages
2 085 420
Membres
102 886
dernier inscrit
eurlece