une cellule est-elle dans une plage de cellules ?

  • Initiateur de la discussion Debo
  • Date de début
D

Debo

Guest
Bonjour à tous et à toutes

est-il possible de savoir si l'adresse d'une cellule (ex : A6) est contenue dans une plage de cellules (ex : A1:A100) en VBA sans utiliser une boucle (pour que ce soit le + rapide possible).

sinon, est-il possible d'empêcher de sortir d'une feuille (changer d'onglet) si certaines conditions ne sont pas respectées ?

Merci beaucoup pour votre aide
 
R

Robert

Guest
Salut Debo, Salut le forum,

J'ai adapté ça de l'aide VBA, pour savoir si la cellule appartient à une plage.

Public Sub plage()
Dim cel As Range, rg As Range, iset As Range
Set cel = Cells(ActiveCell.Row, ActiveCell.Column)
Set rg = Range("A1:A100")
Set isect = Application.Intersect(cel, rg)
If isect Is Nothing Then
MsgBox "Cellule hors plage"
Else
MsgBox "Cellule dans plage"
End If
End Sub

Pour ton deuxième problème, je pense qu'il est possible de masquer les autres feuilles de ton classeur et de ne les réafficher que lorsque tes conditions sont respectées. Les codes pour cela sont relativement simples mais reste à savoir où tu vas les placer. Peut-être que dans la procédure "Change" de ta feuille (objet "Worksheet" ). Pour être plus précis il faudrait avoir une idée des tes "conditions".

À plus,

Robert
 
D

Debo

Guest
re-bonjour le forum !

merci beaucoup Robert pour ton aide !! J'avais palié au pb de façon non dynamique. Et je ne me rappelai plus de la fonction "intersect" qui me sera bien utile.

J'ai laissé tombé mon 2è pb. Ce que j'ai simplement fait, c'est si les conditions (données saisies existantes dans une autre feuille) ne sont pas respectées lorsque je change de feuille, j'affiche un message d'erreur pour prévenir l'utilisateur.
 

Discussions similaires

Statistiques des forums

Discussions
312 330
Messages
2 087 347
Membres
103 526
dernier inscrit
HEC