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

Limiter l'usage d'une macro

16 réponses
Avatar
Christian de BXL
Bonjour,
Est-il possible de limiter l'usage d'une macro à une certaine plage de
cellules variable. J'entend par variable comprises entre deux cellules
nommées.
Je m'explique:je voudrais qu'une macro ne soit exécutable que dans les
cellules Axx à Ayy . Cette plage de cellules serait limitées par deux
cellules que je pourrais nommer, mais le nombre de cellules concernées serait
variable?
Mes explications sont-elles claires?
En vous remerciant
Christian

10 réponses

1 2
Avatar
isabelle
bonjour Christian,

oui,

If intecsect(ActiveCell, Range("A" & Range("xx").Column & ":A" & Range("yy").Column)) Then

isabelle


Bonjour,
Est-il possible de limiter l'usage d'une macro à une certaine plage de
cellules variable. J'entend par variable comprises entre deux cellules
nommées.
Je m'explique:je voudrais qu'une macro ne soit exécutable que dans les
cellules Axx à Ayy . Cette plage de cellules serait limitées par deux
cellules que je pourrais nommer, mais le nombre de cellules concernées serait
variable?
Mes explications sont-elles claires?
En vous remerciant
Christian


Avatar
JB
Bonsoir,

Pourquoi ne pas nommer le champ directement plutôt que de nommer une
cellule de début et une cellule de fin?

Set ChampReel = Intersect(Range("champAutorise"),
Range("champDemande"))
If Not ChampReel Is Nothing Then ChampReel.Select


JB
On 26 fév, 19:31, Christian de BXL
wrote:
Bonjour,
Est-il possible de limiter l'usage d'une macro à une certaine plage de
cellules variable. J'entend par variable comprises entre deux cellules
nommées.
Je m'explique:je voudrais qu'une macro ne soit exécutable que dans les
cellules Axx à Ayy . Cette plage de cellules serait limitées par deux
cellules que je pourrais nommer, mais le nombre de cellules concernées serait
variable?
Mes explications sont-elles claires?
En vous remerciant
Christian


Avatar
Christian de BXL
Merci Isabelle,
J'ai copier ta ligne au début d'une macro de test.Cela ne va pas. Cela
bloque sur "intecsect"
J'ai remplacé xx et yy par les noms des deux cellules limite
J'ai fait (ou pas fait )qlq chose?
Christian
Avatar
Christian de BXL
Bonsoir JB,
Comment définir ces "champReel" et "champAutorise"
Cordialement
Christian
Avatar
JB
Avec Insertion/Nom/Définir

http://cjoint.com/?cAvfCl8RgC


JB



On 26 fév, 20:51, Christian de BXL
wrote:
Bonsoir JB,
Comment définir ces "champReel" et "champAutorise"
Cordialement
Christian


Avatar
Christian de BXL
JB,
Excuse moi,mais je ne vois pas l'usage que je pourrais faire de ton exemple.
Ma plage des cellules concernées n'est pas fixe.
Ma macro ne devrais être utilisable que de A1 à A10 dans un cas,mais de A1 à
A20 dans un autre par exemple. Je pensais qu'en nommant les deux cellules
exrtrèmes j'arriverais à indiquer "simplement" les limites de la plage
peut-être en utilisant la fonction "Range".
Merci à toi
Christian
Avatar
isabelle
bonjour Christian,

si tu exécute cette commande, est que la réponse représente bien ta plage de cellule ?

msgbox Range("A" & Range("xx").Column & ":A" & Range("yy").Column).Address

isabelle

JB,
Excuse moi,mais je ne vois pas l'usage que je pourrais faire de ton exemple.
Ma plage des cellules concernées n'est pas fixe.
Ma macro ne devrais être utilisable que de A1 à A10 dans un cas,mais de A1 à
A20 dans un autre par exemple. Je pensais qu'en nommant les deux cellules
exrtrèmes j'arriverais à indiquer "simplement" les limites de la plage
peut-être en utilisant la fonction "Range".
Merci à toi
Christian


Avatar
Christian de BXL
Bonsoir Isabelle?
Le messageBox indique $A$1


bonjour Christian,

si tu exécute cette commande, est que la réponse représente bien ta plage de cellule ?

msgbox Range("A" & Range("xx").Column & ":A" & Range("yy").Column).Address

isabelle


Avatar
Christian de BXL
JB,
Je vais finir par m'habituer à tes réponses,mais je vais banir le mot
"simplicité" de mon vocabulaire.
Ton aide précédente m'en avait déjà donné un avant goût,mais le résultat
était parfait.
Je suis arrivé à nommer les deux plages, leur intersection représente bien
la plage dans laquelle devrais fonctionner ma macro.
Comment fais-je écrire l'instruction limitant son usage à cet intersection.

Ma macro d'essai est celle-ci :
Sub EssaiLimite()

ActiveCell.FormulaR1C1 = "Essai Limite"
ActiveCell.Offset(0, 8).Range("A1").Select
With Selection.Interior
.ColorIndex = 9
.Pattern = xlSolid
End With
ActiveCell.Offset(1, -8).Range("A1").Select
End Sub


Bonsoir,

Pourquoi ne pas nommer le champ directement plutôt que de nommer une
cellule de début et une cellule de fin?

Set ChampReel = Intersect(Range("champAutorise"),
Range("champDemande"))
If Not ChampReel Is Nothing Then ChampReel.Select


Avatar
JB
Version avec Début et Fin

Set ChampReel = Intersect(Range([début], [fin]),
Range("champDemande"))
If Not ChampReel Is Nothing Then ChampReel.Select

JB


On 26 fév, 21:28, Christian de BXL
wrote:
JB,
Excuse moi,mais je ne vois pas l'usage que je pourrais faire de ton exemp le.
Ma plage des cellules concernées n'est pas fixe.
Ma macro ne devrais être utilisable que de A1 à A10 dans un cas,mais de A1 à
A20 dans un autre par exemple. Je pensais qu'en nommant les deux cellules
exrtrèmes j'arriverais à indiquer "simplement" les limites de la plage
peut-être en utilisant la fonction "Range".
Merci à toi
Christian


1 2