Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
@+
 

mécano41

XLDnaute Accro
Re : Selection multizone en VBA

Bonjour,

Merci à tous. J'étais justement en train d'essayer avec "Union", vous me confirmez que ce doit être la solution.

Encore merci et bonne soirée.

Cordialement
 

Discussions similaires

Réponses
4
Affichages
332
Réponses
12
Affichages
377
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…