Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Caractéristiques de ma sélection

2 réponses
Avatar
Nicolas B.
Bonjour à tous,

J'ai une macro qui ne fonctionne que pour des sélections particulières, et
j'essaye de la stopper si la sélection n'est pas correcte.

Les conditions d'une plage correcte sont les suivantes :
les plages doivent avoir au moins deux colonnes de large. Jusque là j'y
arrive.
Mais le problème c'est que je voudrais en plus que si la sélection est
complexe (plusieurs plages sélectionnées en maintenant CTRL enfoncée), la
macro ne s'exécute pas.

Quelques exemples :
Je sélectionne A2:A10, la macro s'arrête (qu'une seule colonne de large).
Je sélectionne A2:B10, ça fonctionne.
Je sélectionne simultanément (en enfoncant CTRL) A2:A10 et C2:C10. La macro
est stoppée.
Et le top ce serait, je sélectionne A2:A10 et B2:B10 (avec CTRL),
c'est-à-dire l'union de deux plages côte-à-côte et la macro s'arrête. Mais
bon ce cas là, on peut le négliger si c'est trop compliqué.


Voici où j'en suis dans mon code (condition des deux colonnes de large, qui
renvoie n'importe quoi pour une sélection complexe) :

Sub Toto()
Dim rg As Range
Set rg = Selection

If rg.Item(rg.Count).Column - rg.Item(1).Column = 0 Then Exit Sub

MsgBox "Exécute la macro"
End Sub


Merci
--
Nicolas B.

2 réponses

Avatar
Michel Pierron
Bonjour Nicolas B.;
Teste avec:
If Selection.Areas.Count > 1
MP

"Nicolas B." a écrit dans le message de
news:%
Bonjour à tous,

J'ai une macro qui ne fonctionne que pour des sélections particulières, et
j'essaye de la stopper si la sélection n'est pas correcte.

Les conditions d'une plage correcte sont les suivantes :
les plages doivent avoir au moins deux colonnes de large. Jusque là j'y
arrive.
Mais le problème c'est que je voudrais en plus que si la sélection est
complexe (plusieurs plages sélectionnées en maintenant CTRL enfoncée), la
macro ne s'exécute pas.

Quelques exemples :
Je sélectionne A2:A10, la macro s'arrête (qu'une seule colonne de large).
Je sélectionne A2:B10, ça fonctionne.
Je sélectionne simultanément (en enfoncant CTRL) A2:A10 et C2:C10. La macro
est stoppée.
Et le top ce serait, je sélectionne A2:A10 et B2:B10 (avec CTRL),
c'est-à-dire l'union de deux plages côte-à-côte et la macro s'arrête. Mais
bon ce cas là, on peut le négliger si c'est trop compliqué.


Voici où j'en suis dans mon code (condition des deux colonnes de large, qui
renvoie n'importe quoi pour une sélection complexe) :

Sub Toto()
Dim rg As Range
Set rg = Selection

If rg.Item(rg.Count).Column - rg.Item(1).Column = 0 Then Exit Sub

MsgBox "Exécute la macro"
End Sub


Merci
--
Nicolas B.




Avatar
Nicolas B.
Salut,

Magnifique :-) c'est exactement ce qu'il me fallait.

Merci à toi
--
Nicolas B.


Bonjour Nicolas B.;
Teste avec:
If Selection.Areas.Count > 1
MP

"Nicolas B." a écrit dans le
message de news:%
Bonjour à tous,

J'ai une macro qui ne fonctionne que pour des sélections
particulières, et j'essaye de la stopper si la sélection n'est pas
correcte.

Les conditions d'une plage correcte sont les suivantes :
les plages doivent avoir au moins deux colonnes de large. Jusque là
j'y arrive.
Mais le problème c'est que je voudrais en plus que si la sélection
est complexe (plusieurs plages sélectionnées en maintenant CTRL
enfoncée), la macro ne s'exécute pas.

Quelques exemples :
Je sélectionne A2:A10, la macro s'arrête (qu'une seule colonne de
large). Je sélectionne A2:B10, ça fonctionne.
Je sélectionne simultanément (en enfoncant CTRL) A2:A10 et C2:C10.
La macro est stoppée.
Et le top ce serait, je sélectionne A2:A10 et B2:B10 (avec CTRL),
c'est-à-dire l'union de deux plages côte-à-côte et la macro
s'arrête. Mais bon ce cas là, on peut le négliger si c'est trop
compliqué.


Voici où j'en suis dans mon code (condition des deux colonnes de
large, qui renvoie n'importe quoi pour une sélection complexe) :

Sub Toto()
Dim rg As Range
Set rg = Selection

If rg.Item(rg.Count).Column - rg.Item(1).Column = 0 Then Exit Sub

MsgBox "Exécute la macro"
End Sub


Merci
--
Nicolas B.