Selection de plages multiples
Résolu/Fermé
A voir également:
- Selection de plages multiples
- Image de manchots sur une image de plage - Forum Musique / Radio / Clip
- Image ? ✓ - Forum Graphisme
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
- Variable workbook : l'indice n'appartient pas à la sélection ✓ - Forum Excel
- Nb.si plusieurs plages ✓ - Forum Excel
3 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 13/05/2013 à 09:26
Modifié par michel_m le 13/05/2013 à 09:26
Bonjour,
1/Normal, tu boucles juste sur une selection de plage: tes next i et next j doivent être à la fin de ton code ci dessus
2/d'autre part pour encadrer tes plages
Range(Cells(10, i), Cells(502, j)).borders.weight=xlthin
on évite au maximum les select-selection très lents
3/ je ne comprend pas l'idée d'une fusion de ta plage de départ et les suivantes successives...
pourquoi ne pas parcourir uniquement que ces plages successivement car actuellement tu vas encadrer N fois la plage de départ
4/ afin d'éviter des clignotements de l'écran et aller + vite(env. 20x), mets en début de macro la ligne suivante qui fige le défilement de l'écran
application.screenupdating=false
5/"...Comme j'ai pu déjà le lire, "Excel fais toujours ce qu'on lui demande et rarement ce que l'on souhaite"....
Si tu pars avec cette croyance en cette phrase stupide d'un looser, arrête tout de suite d'utiliser Excel :o)
Michel
1/Normal, tu boucles juste sur une selection de plage: tes next i et next j doivent être à la fin de ton code ci dessus
2/d'autre part pour encadrer tes plages
Range(Cells(10, i), Cells(502, j)).borders.weight=xlthin
on évite au maximum les select-selection très lents
3/ je ne comprend pas l'idée d'une fusion de ta plage de départ et les suivantes successives...
pourquoi ne pas parcourir uniquement que ces plages successivement car actuellement tu vas encadrer N fois la plage de départ
4/ afin d'éviter des clignotements de l'écran et aller + vite(env. 20x), mets en début de macro la ligne suivante qui fige le défilement de l'écran
application.screenupdating=false
5/"...Comme j'ai pu déjà le lire, "Excel fais toujours ce qu'on lui demande et rarement ce que l'on souhaite"....
Si tu pars avec cette croyance en cette phrase stupide d'un looser, arrête tout de suite d'utiliser Excel :o)
Michel
Bonjour
je pense que faire 2 boucle ca serat plus rapide
Sub Test()
I = 4
Dlig = 11
Flig = 502
Application.ScreenUpdating = False
For j = 11 To (14 * 83) Step 83
Range(Cells(Dlig, I), Cells(Flig, j)).BorderAround LineStyle:=xlContinuous
Next
For I = 4 To (14 * 83) Step 83
Range(Cells(Dlig, I), Cells(Flig, j)).BorderAround LineStyle:=xlContinuous
Next
Application.ScreenUpdating = False
End Sub
A tester sur ton Mico
A+
Maurice
je pense que faire 2 boucle ca serat plus rapide
Sub Test()
I = 4
Dlig = 11
Flig = 502
Application.ScreenUpdating = False
For j = 11 To (14 * 83) Step 83
Range(Cells(Dlig, I), Cells(Flig, j)).BorderAround LineStyle:=xlContinuous
Next
For I = 4 To (14 * 83) Step 83
Range(Cells(Dlig, I), Cells(Flig, j)).BorderAround LineStyle:=xlContinuous
Next
Application.ScreenUpdating = False
End Sub
A tester sur ton Mico
A+
Maurice
13 mai 2013 à 10:14
1/Normal, tu boucles juste sur une selection de plage: tes next i et next j doivent être à la fin de ton code ci dessus =>Pas bète, c'est même logique quand on le voit écrit
2/d'autre part pour encadrer tes plages
Range(Cells(10, i), Cells(502, j)).borders.weight=xlthin
on évite au maximum les select-selection très lents => Je modifie tout de suite, pourquoi faire compliqué quand on peut faire simple ? j'ai juste utilisé le borderaround pour n'encadrer que le contour de la plage sélectionnée
3/ je ne comprend pas l'idée d'une fusion de ta plage de départ et les suivantes successives...
pourquoi ne pas parcourir uniquement que ces plages successivement car actuellement tu vas encadrer N fois la plage de départ => Cc'était un essais pour voir si je m'y prenait bien
4/ afin d'éviter des clignotements de l'écran et aller + vite(env. 20x), mets en début de macro la ligne suivante qui fige le défilement de l'écran
application.screenupdating=false => Il me semble qu'il est présent, même si je ne savais pas à quoi ça servait, du coup je te remarcie pour éclairer ma lumière
5/"...Comme j'ai pu déjà le lire, "Excel fais toujours ce qu'on lui demande et rarement ce que l'on souhaite"....
Si tu pars avec cette croyance en cette phrase stupide d'un looser, arrête tout de suite d'utiliser Excel :o) => Mais non, je suis plutôt dans le genre persévérent!
Du coup pour ce qui est de l'évolution de mon problème, voila ce que donne mon code maintenant :
Sub FrameTheRange()
'
'
Application.ScreenUpdating = False
For i = 4 To (14 * 83) Step 84
For j = 12 To (14 * 83) Step 84
Range(Cells(11, i), Cells(502, j)).BorderAround LineStyle:=xlContinuous
Next j
Next i
End Sub
J'ai toutefois un petit problème qui subsiste, mes sélections se chevauchent j'ai l'impression, je n'en comprend pas la cause.
Pour imager, ça me donne quelque chose comme ca :
l_l___l_l___________ l_l___ l_l___________ l_l___l_l ...
Alors que je souhaite :
l___l___________l___l__________l___l...
Je sais, c'est pas trés imagé, mais je ne sais pas comment poster un fivhier joint.
Merci encore pour votre aide !
13 mai 2013 à 11:37
mettre le classeur sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse
13 mai 2013 à 11:41
voici le lien : http://cjoint.com/?CEnlPcKYgSD