Sélectionner une plage de cellules sur deux

Micke-31

XLDnaute Occasionnel
Bonjour à tous,

J’ai ce code pour sélectionner des plages de cellules. Dans mon exemple de la colonne B à D et une plage sur deux de la ligne 2 à la ligne 20.

Le problème est que la première ligne est entièrement sélectionnée,

Sub Selection_1_sur_2()
Dim i As Long
Dim rng As Range

Const Min As Long = 2 ' Première ligne
Const Max As Long = 20 ' Dernière ligne

Set rng = Range(Min & ":" & Min)
For i = Min To Max Step 2
Set rng = Union(rng, Range("B" & i, "D" & i)) 'de la colonne B à la D
Next i
rng.Select
End Sub

J’espère qu’un pro pourra me dire ce qui ne va pas, et vous en remercie d’avance
 

Micke-31

XLDnaute Occasionnel
Re : Sélectionner une plage de cellules sur deux

Salut Pierrot93,

Merci d'avoir répondu, ce que je souhaite, c'est sélectionner des plages de cellules par exemple de B2 à D2 et une plage sur deux jusqu'a la ligne 20 soit B2 à D2 B4 à D4 etc ...
mon problème est que la première ligne se sélectionne entièrement alors qu'il faudrai B2 à D2

A+
 

Raja

XLDnaute Accro
Re : Sélectionner une plage de cellules sur deux

Bonjour,

Remplace la ligne de ton code suivant :
Code:
Set rng = Range(Min & ":" & Min)
par ce code :
Code:
Set rng = Range(Cells(Min, 2), Cells(Min, 4))
ou bien par :
Code:
Set rng = Range("B2:D2")
Dans ce cas tu peux supprimer cette partie suivante :
Code:
Const Min As Long = 2 ' Première ligne
Const Max As Long = 20 ' Dernière ligne
ou bien le plus simple :

Code:
Sub Selection_1_sur_2()
Dim i As Byte
  For i = 2 To 20 Step 2
    Union(Selection, Range("B" & i, "D" & i)).Select
  Next i
End Sub
 
Dernière édition:

Micke-31

XLDnaute Occasionnel
Re : Sélectionner une plage de cellules sur deux

Salut Raja,

Et un grand merci, je tournais en rond et ne voyais pas l'erreur.
Pour t'expliquer, en réalité Step 2, fait référence à une cellule ce qui me permet de moduler mes plage sélectionnées.

Au final je voudrai dans deux cellules saisir les caractéristiques de ma plage à sélectionner, ce qui me permettrai une grande souplesse d'utilisation.
 

Micke-31

XLDnaute Occasionnel
Re : Sélectionner une plage de cellules sur deux

Alors là merci infiniment Raja, d’une pierre deux coup, code épuré souplesse d’utilisation pour l’équipe.
Avec quelques cellules je vais piloter mes sélections, mes mise en forme et calculs.
J’adore Excel et il me surprendra toujours, les possibilités sont sans limite.

Encore merci à tous et longue vie à ce Forum
 

Micke-31

XLDnaute Occasionnel
Re : Sélectionner une plage de cellules sur deux

Avec le concours de Raja et pour tous ceux à qui ça peut intéresser, en réservant la cellule B1 et C1 pour déterminer la plage à traiter, dans lesquelles on saisira le n° de ligne de début et fin de plage
En D1 le saut de sélection si on souhaite sélectionner une ligne sur deux saisir 2
en E1 Et F1 la plage à sélectionner
B1 saisir 1
C1 25
D1 2
E1 C
F1 H

ce code entièrement modulable depuis les cellules

Sub Selection_1_sur_X()
Dim i As Integer
For i = Range("B1") To Range("C1") Step Range("D1")
Union(selection, Range(Range("E1") & i, Range("F1") & i)).Select
Next i
End Sub
 
Dernière édition:

Raja

XLDnaute Accro
Re : Sélectionner une plage de cellules sur deux

Re,

Pour avoir une bonne marge, merci de transformer cette ligne :
Code:
Dim i As Byte
par :
Code:
Dim i As Integer
Car, le code initial a été préconisé à une situation précise.
édit : A modifier aussi la cellule qui doit contenir le pas(step) D2 en D1
 
Dernière édition:

Discussions similaires

Réponses
0
Affichages
158
Réponses
1
Affichages
178

Membres actuellement en ligne

Statistiques des forums

Discussions
312 361
Messages
2 087 626
Membres
103 609
dernier inscrit
AmineAB33