Si selection plage de cellule A1:E21 alors "exit sub"

Résolu
thibaultanguy Messages postés 45 Date d'inscription jeudi 3 juillet 2008 Statut Membre Dernière intervention 16 novembre 2012 - 28 déc. 2010 à 18:35
jordane45 Messages postés 36609 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 8 décembre 2022 - 29 déc. 2010 à 09:21
Bonsoir à tous,
Je cherche un petit morceau de code qui pourrait arrêter ma macro.
En effet, ma macro consiste, a l'aide d'un bouton, d'inscrire une valeur dans une cellule. Cela fonctionne bien, mais je souhaiterais que la macro s'arrête si je sélectionne une cellule de la plage A1:E21.
Merci de m'aider à réaliser ce projet
Bonne fêtes à tous.

eric

6 réponses

jordane45 Messages postés 36609 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 8 décembre 2022 342
28 déc. 2010 à 20:11
Bonjour,
voili voilou.. ^^


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ligne = Target.Row
colonne = Target.Column

If ligne > 1 And ligne < 22 And colonne > 1 And colonne < 5 Then
    Exit Sub
Else
    MsgBox "je ne suis pas dans la plage demandée..."
End If

End Sub



Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
3
jordane45 Messages postés 36609 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 8 décembre 2022 342
28 déc. 2010 à 22:25
Bonjour,

si tu utilises Private Sub CommandButtonboni_Click() c'est que ton utilisateur ne "clique" pas sur une cellule....
ou alors.. c'est qu'il l'a selectionné avant de cliquer sur ton bouton.
Dans ce cas, tu récupères les coordonnées de ta cellule active (activecell) et tu remplaces le Target de la fonction.

Ligne = ActiveCell.row 'ligne de la cellule active
Colonne = Activecell.column 'colonne de la cellule active.


Exemple:
l'utilisateur sélectionne la cellule A5 puis clique sur le bouton: tu obtiendras bien ligne5 et colonne 1

ps: dans le code que je t'ai donné il faut utiliser => (supérieur ou égal) à 1 (ou sinon supérieur à 0
>>> A corriger dans le code sinon ca ne fonctionnera que pour la plage B2 à E21.



Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
3
thibaultanguy Messages postés 45 Date d'inscription jeudi 3 juillet 2008 Statut Membre Dernière intervention 16 novembre 2012
28 déc. 2010 à 20:19
Merci Jordane,
J'avais essayé avec Range, Cells, Select, If, Then....
Je me sentais pour finir...ridicule...
Merci, grand merci d'avoir sauvé mon honneur !


Un développeur en herbe > eric
0
thibaultanguy Messages postés 45 Date d'inscription jeudi 3 juillet 2008 Statut Membre Dernière intervention 16 novembre 2012
28 déc. 2010 à 20:32
Jordane,
Je me suis réjouis un peut vite.
En effet, je pars avec ce type de code :

Private Sub CommandButtonboni_Click()
Target As Range
ligne = Target.Row
colonne = Target.Column

If ligne > 1 And ligne < 22 And colonne > 1 And colonne < 5 Then
Exit Sub
Else
MsgBox "je ne suis pas dans la plage demandée..."
End If

Application.ScreenUpdating = False
Call Efface
Call placer
Call Formecellule
Selection.Value = "Congé"

With Selection.Font
.Color = -16776961
.TintAndShade = 0
End With
Unload userform1
ActiveCell.Offset(RowOffset:=0, ColumnOffSet:=2).End(xlUp).Activate
Application.ScreenUpdating = True
End Sub

Hormis les appels Call qui ne te diront rien, peux-tu me corriger ce code pour qu'il fonctionne ?
sincères remerciements
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
thibaultanguy Messages postés 45 Date d'inscription jeudi 3 juillet 2008 Statut Membre Dernière intervention 16 novembre 2012
29 déc. 2010 à 07:36
Merci Jordane,
En plus de la correction, les explications sont claires et précises.
Très sincères remerciements

eric
0
jordane45 Messages postés 36609 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 8 décembre 2022 342
29 déc. 2010 à 09:21
je t'en prie.

N'hésites pas si tu as un souci ou d'autres questions.

Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
0