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

simplification selection plages discontinues

  • Initiateur de la discussion Initiateur de la discussion antiphot
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

antiphot

XLDnaute Occasionnel
Bonjour à toutes et à tous

Actuellement je sélectionne plusieurs plages discontinues de la manière suivante:

Union(Range("B12:K50"), Range("B69:K107"),..jusquà..... ,Range("B2976:K3014")).Select
cela fait 53 plages de 8 colonnes et 39 lignes séparées entre elles d'un saut de 57 lignes.

Sachant que la taille des plages est identique, que les colonnes sont identiques et que l'intervalle séparant ces plages est constant, il doit y avoir moyen de simplifier tout cela.

Merci d'avance pour vos propositions
Philippe
 
Re : simplification selection plages discontinues

Bonjour antiphot,

un truc comme ça peut-être ?

Code:
Dim Plage As Range, i As Long
    Set Plage = Range("B12:K50")
    For i = 1 To 52
        Set Plage = Application.Union(Plage, Range("B" & 12 + i * 57 & ":K" & 50 + i * 57))
    Next i
    Plage.Select
 
Re : simplification selection plages discontinues

bonjour antiphot,

essaye avec ce code :
Code:
Set zone = Range("B12:K50")
For i = 1 To 52
    Set zone = Application.Union(Range("B" & (i * 57) + 12 & ":K" & (i * 57) + 50), zone)
Next i
a+


edit: bonjour tototiti2008
 
Re : simplification selection plages discontinues

Bonjour Antiphot, bonjour le forum,

Essaie comme ça :
Code:
Dim pl As Range
Set pl = Range("B12:K50")
For x = 69 To 2976 Step 57
    Set pl = Application.Union(pl, Range(Cells(x, 2), Cells(x + 38, 10)))
Next x

Édition :

Ooops à la bourre !!!! Bonjour Tototiti, MRomain
 
Dernière édition:
Re : simplification selection plages discontinues

Bonjour à tous

une autre solution :

Code:
Sub test()
Dim i As Integer, c As Range
Set c = Range("B12:K50")
For i = 69 To 2976 Step 57
    Set c = Union(c, Cells(i, 2).Resize(39, 10))
Next i
End Sub

bon après midi
@+
 
Re : simplification selection plages discontinues

Merci à tous pour ce florilège de solutions différentes. Je n'ai que l'embarras du choix !!
Allez on va dire sans vouloir vexer personne que la solution de Pierrot93 me plait bien.
Mais je garde toutes les autres au chaud comme exemple.

Merci à tous
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…