Délimiter une zone avec la fonction BeforeRigthClick

W

Willy

Guest
Bonsoir à tous,
Je suis nouveau sur le forum et je n'ai pas trouvé les usages du forum. Veuillez m'en excuser si mon message n'est pas conforme à la charte.
Tout d'abord je rencontre un problème avec le téléchargement des fichiers d'exemples joints que nombre d'entre vous mettent à disposition. Le téléchargement ne s'effectue pas. D'après quelques posts, il semblerai que cela arrive également à quelques membres du forum.
Avez vous une astuce ?

Mon problème en Vba :
Dans ma feuille, un userForm est ouvert avec la fonction BeforeRigthClik. Cette action se produit dans n'importe quelle cellule. Je souhaiterai que cette action se produise dans une zone précise uniquement, par exemple dans les cellules A1 à A10.
Est ce possible .
Si oui, pouvez vous m'orienter sur la procédure ?

Je vous en remercie
Willy
 
V

Vériland

Guest
Bonsoir Willy à toi,

Alors effectivement il y a des soucis de téléchargement de fichiers sur le forum actuellement...pour y remédier il y a une solution qui te permettra ensuite de les charger...il te suffit d'installer Download Express sur ton ordi...

Pour cela voici le lien pour acquérirCe lien n'existe plus
...ensuite tous les fichiers sont à nouveau dispos'...lol

pour comprendre lis ce FIL...

Ensuite pour ton problème VBA je vais essayer de te satisfaire par...


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Address() = "$A$1" Then
MsgBox "j'ai cliqué dans la CELLULE A1"
End If
If ActiveCell.Address() = "$A$2" Then
MsgBox "j'ai cliqué dans la CELLULE A2"
End If
If ActiveCell.Address() = "$A$3" Then
MsgBox "j'ai cliqué dans la CELLULE A3"
End If
If ActiveCell.Address() = "$A$4" Then
MsgBox "j'ai cliqué dans la CELLULE A4"
End If
If ActiveCell.Address() = "$A$5" Then
MsgBox "j'ai cliqué dans la CELLULE A5"
End If
End Sub


qui lorsque tu cliques dans la zone A1:A5 un message apparait (je n'ai pas voulu aller jusque 10)...macro à placer dans la feuille active de VBA...mais y'a p'têt plus simple...lol

A+ Vériland
 
C

Celeda

Guest
Bonsoir,

Willy : pour quelqu'un qui ne connaît pas les us et coutumes tu es extra.
Tu te comportes vraiment très bien. J'espere que ton post donnera des leçons à certains.
Si on avait un hit parade, tu devrais te placer dans les premieres classes pour un nouveau.
Alors bienvenue chez XLD Forum. Fais attention, parfois nous nous faisons des jokes - gentilles - alors il faut avoir de l'humour et de l'amour à partager !! d'Excel et de VBA et de Formules, bien entendu !!!Cela fait partie de notre chartre.


Celeda
 
W

Willy

Guest
Bonsoir Veriland et merci pour ta réponse rapide.
Je vais de ce pas télécharger Download Express

Concernant le code Vba, ton code devrait suffire sauf que
et c'est ma faute j'ai pris l'exemple de sélection de cellule A1 à A10 mais en fait ce serait plutôt A1 à AX ( je ne peut prévoir le nombre de ligne que l'utilisateur va créer )
Mais je vais creuser dans le sens de ton code
merci
Willy
 
W

Willy

Guest
Bonsoir Celeda
Waou tu me flatte !!!!! Lol-)
Non en fait je suis inscrit sur quelques forums qui ont des chartes assez strictes dans le contenu et l'entête des messages si tu veux avoir une réponse, donc je suis au pli !!!!!!
Concernant la déconnade, j'aime ca aussi
@+ Willy
 
J

Jean-Marie

Guest
Bonjour Willy

Remplace le début de la macro proposé Vériland
par :

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then
Ligne = ActiveCell.Row
If Ligne < Range("A1") Then

Il faudra que tu trouves la valeur et la mettre dans la cellule A1 de la feuille,

Des fonctions peuvent te la renvoyer.
NBVAL();LIGNE()

@+Jean-Marie
 
@

@+Thierry

Guest
Bonjour Willy, Vériland, Celeda et Jean-Marie and of course The Forum !

D'abord Very Welcome Willy !

Ensuite il semble que tout le monde ait glissé sur le sujet de ton message "BeforeRightClick"...

Donc il faut plutôt une instruction comme ceci :

Option Explicit

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim L As Integer
If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then
L = Sheets(1).Range("A65536").End(xlUp).Row
If ActiveCell.Row > L Then Exit Sub
Cancel = True
MsgBox "Le UserForm de Willy arrivera maintenant !"
End If
End Sub

Cette macro analyse où se situe la dernière ligne da la colonne A et supprimera temporairement le menu contextul du click droit pour un MsgBox à la place si le Right Click est fait dans la Zone A1 à Ax

Bonne Journée, et je répète Willy soies le Bienvenu dans XLD

Youpie TGF !!!

@+Thierry

Thanx God its Friday !!!
 

Discussions similaires

Réponses
16
Affichages
581

Statistiques des forums

Discussions
314 647
Messages
2 111 533
Membres
111 197
dernier inscrit
john49