Si selection plage de cellule A1:E21 alors "exit sub" [Résolu]

Signaler
Messages postés
45
Date d'inscription
jeudi 3 juillet 2008
Statut
Membre
Dernière intervention
16 novembre 2012
-
jordane45
Messages postés
28088
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 avril 2020
-
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

Messages postés
28088
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 avril 2020
325
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
Messages postés
28088
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 avril 2020
325
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
Messages postés
45
Date d'inscription
jeudi 3 juillet 2008
Statut
Membre
Dernière intervention
16 novembre 2012

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
Messages postés
45
Date d'inscription
jeudi 3 juillet 2008
Statut
Membre
Dernière intervention
16 novembre 2012

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
Messages postés
45
Date d'inscription
jeudi 3 juillet 2008
Statut
Membre
Dernière intervention
16 novembre 2012

Merci Jordane,
En plus de la correction, les explications sont claires et précises.
Très sincères remerciements

eric
Messages postés
28088
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
7 avril 2020
325
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