Conserver sélections multiples dans macro

  • Initiateur de la discussion Initiateur de la discussion Samuel
  • 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 !

S

Samuel

Guest
Bonsoir à tous,
J'ai fait une macro pour sélectionner certaines plages de cellules espacées régulièrement dans la colonne A d'une feuille Excel:

Sub Macro1()

For i = 0 To 72
a = 189 + i * 73
b = 224 + i * 73

Set rr = Range(Cells(a, 1), Cells(b, 1))

rr.Select

Next i

End Sub


Malheureusement, les plages de cellules ne sont pas conservées, et à la fin de la Macro, je me retrouve avec uniquement la dernière plage de la boucle sélectionnée. Comment faire pour garder toutes ces plages de cellules (équivalent de la touche Ctrl lors d'une sélection directe dans la feuille, quoi).
D'avance merci beaucoup,

Samuel
 
Re : Conserver sélections multiples dans macro

Bonjour Samuel,

Tu as essayé avec l'enregistreur de macro?

Code:
Sub Macro1()

    Range("B10:B13,D13:D17,F19:F23").Select

End Sub

Testé ci-dessus, et ça fonctionne! Il n'y a plus qu'à l'adapter à ton cas!

Bonne soirée
 
Re : Conserver sélections multiples dans macro

Bonsoir Samuel
Quelque chose comme ça ?
Code:
Sub Macro1()
Dim i As Long, a As Long, b As Long, c As Long
Dim rr As Range
    a = 189: b = 224: c = 73
    Set rr = Range(Cells(a, 1), Cells(b, 1))
    For i = 1 To 72
        Set rr = Union(rr, Range(Cells(a + i * c, 1), Cells(b + i * c, 1)))
    Next i
    rr.Select
End Sub
Bonne nuit !
ROGER2327
 
Re : Conserver sélections multiples dans macro

Youpiii !
Choup bidoup badap ouaiis !
.
.
.
Ca marche
.
.
.
Un grand
🙂MERCI🙂
A vous.
Veuillez agréer, Madame, Monsieur, l'expression de mes sentiments distingués.

Samuel
 
Re : Conserver sélections multiples dans macro

Bonsoir Samuel,
Bonsoir à toutes et à tous.
Salut Excel-lent,
Salut ROGER2327.

Ma lecture du présent poste m'a permis de constater que, deux macros ont été proposées, mais avec deux méthodes différentes, dont une, celle de notre ami Excel-lent, pourra être crée par l'enregistreur; et, c'est ce qui a été fait par moi même et avec un nettoyage du code enregistré.

Et là; je bloque entièrement avec celle proposée par notre ami ROGER2327, mais, je pense belle et bien que c'est l'étape de l'utilisation des variables.

Il est utile à vous informer que, je suis qu'un débutant en la matiére.

En attente, une de vos éclaircissements lumineux, veuillez agréer mes salutations distinguées.

Bcharef
 

Pièces jointes

Dernière édition:
Re : Conserver sélections multiples dans macro

Bonsoir bcharef,
Je vais tenter d'expliquer ma procédure, mais il faut d'abord noter que la procédure de Excel-lent et la mienne ne font pas exactement la même chose ; celle de Excel-lent sélectionne une seule plage dans chaque colonne B, D et F, la mienne sélectionne plusieurs plage dans la seule colonne A.
Code:
Sub Macro1()
Dim i As Long, a As Long, b As Long, c As Long                              '1
Dim rr As Range                                                             '2
    a = 189: b = 224: c = 73                                                '3
    Set rr = Range(Cells(a, 1), Cells(b, 1))                                '4
    For i = 1 To 72                                                         '5
        Set rr = Union(rr, Range(Cells(a + i * c, 1), Cells(b + i * c, 1))) '6
    Next i                                                                  '7
    rr.Select                                                               '8
End Sub
  • Les lignes 1 et 2 définissent les variables dont j'ai besoin.
  • Ligne 3, j'initialise les variables qui définissent la taille des plages à sélectionner et leur emplacement dans la colonne A. Je pose 189 et 224 pour a et b parce que la première plage à sélectionner est A129:A224. Je pose 73 pour c car on veut sélectionner des plages de même dimension que la première de 73 en 73 lignes.
  • Ligne 4, je définis rr comme étant la plage A129:A224.
  • Lignes 5 à 7, je crée une boucle à exécuter 72 fois.
  • La ligne 6 sera donc exécutée 72 fois, avec la variable i prenant successivement les valeurs 1, 2, 3, ..., 71 , 72. La signification de la ligne 6 est la suivante :
    Modifier la valeur de rr en la remplaçant par la réunion sa valeur actuelle et de la plage
    Range(Cells(a + i * c, 1), Cells(b + i * c, 1))
    La première fois, rr est la plage A129:A224. Comme i vaut 1,
    Range(Cells(a + i * c, 1), Cells(b + i * c, 1))
    signifie Range(Cells(189 + 1 * 73, 1), Cells(224 + 1 * 73, 1)), c'est à dire A262:A297.
    Par conséquent, après la première exécution de la ligne 6, rr représente les plages A129:A224 et A262:A297
    À chaque exécution de la ligne 6, une nouvelle plage sera ajoutée à rr puisque i augmente d'une unité à chaque passage.
  • La ligne 8 est exécutée après la soixante-douzième exécution de la boucle Elle sélectionne, dans la feuille active, les 73 plages de cellules que représente rr.
Voilà ! Bon courage et bonne nuit !​
ROGER2327
 
Re : Conserver sélections multiples dans macro

Bonjour ROGER2327,

Je vous remercie infiniment de votre explication lumineuse.

Mais comment réaliser le code :

  • Pour la sélection pour une colonne B au lieu de la colonne A;
  • Pour la sélection de ligne tel que ligne n° 3;
  • Et, en fin pour une matrice tel que B2:10.

Est-il possible de crée la boucle pour qu'elle soit exécuter n fois en fonction de la cellule A1, c'est à dire, si A1=7, elle s'exécutera 7 fois.

Je vous remercie encor une fois.

Cordialement.

Bcharef
 
Dernière édition:
Re : Conserver sélections multiples dans macro

Bonsoir bcharef,
Pour ce qui est de
Pour la sélection pour une colonne B au lieu de la colonne A
il faut remplacer les "1" des lignes 4 et 6 de la procédure par le n° de la colonne souhaitée (2 pour colonne B, 3 pour colonne C, etc.).
Pour le reste, excusez-moi : je ne comprends pas bien la demande.​
Cordialement,
ROGER2327
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
743
Réponses
0
Affichages
661
Réponses
5
Affichages
548
Réponses
2
Affichages
1 K
A
  • Question Question
Réponses
8
Affichages
953
D
  • Résolu(e)
Réponses
3
Affichages
714
débutantplus
D
Réponses
4
Affichages
1 K
Réponses
8
Affichages
1 K
H
Réponses
7
Affichages
1 K
hyperion13
H
Retour