Caractéristiques de ma sélection

Le
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.
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Michel Pierron
Le #1250514
Bonjour Nicolas B.;
Teste avec:
If Selection.Areas.Count > 1
MP

"Nicolas B." 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.




Nicolas B.
Le #1250513
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." 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.




Publicité
Poster une réponse
Anonyme