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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
Bonjour Nicolas B.;
Teste avec:
If Selection.Areas.Count > 1
MP
"Nicolas B." <nicolas.bruot@adresse.bidon.com> a écrit dans le message de
news:%23RK9905IEHA.3240@TK2MSFTNGP12.phx.gbl...
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
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.
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.
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." <nicolas.bruot@adresse.bidon.com> a écrit dans le
message de news:%23RK9905IEHA.3240@TK2MSFTNGP12.phx.gbl...
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
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