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

Autorisation de saisie

4 réponses
Avatar
JulieH
Bonjour,

Comme je vois qu'aujourd'hui, mon accès au forum semble fonctionner, je
reviens sur une de mes questions précédentes. En effet, certains de mes
mails (nouvelle question suite à réponse) n'apparaissent même pas dans
les archives de Google. Excusez-moi si ce n'est pas la première fois que
vous voyez ce problème.

Ce que je souhaitais faire :
- Feuill1 => Liste autorisée.
- Feuill2 => Saisie.

La solution qui m'intéresse m'a été fournie par JB et correspond au
code suivant :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 And Target <> "" Then
If IsError(Application.Match(Target, [maliste], 0)) Then
MsgBox "Erreur"
Application.EnableEvents = False
Target = Empty
Application.EnableEvents = True
End If
End If
End Sub

Malgré tous mes essais, je n'arrive pas exactement au résultat
souhaité. Ce que je souhaite améliorer :
- La liste de saisie doit être sensible à la casse et refuser si les
initiales saisies sont en minuscules alors que celles autorisées sont en
majuscules (ou vice versa - parfois même il peut y avoir majuscule et
minuscule mélangées).

Merci de me dire même si c'est impossible.

Julie

4 réponses

Avatar
JB
ReBonjour,

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 And Target <> "" Then
témoin = False
For Each c In [maliste]
If Target = c Then témoin = True
Next c
If Not témoin Then
MsgBox "Erreur"
Application.EnableEvents = False
Target = Empty
Application.EnableEvents = True
Target.Select
End If
End If
End Sub

JB

On 1 août, 14:26, JulieH wrote:
Bonjour,

Comme je vois qu'aujourd'hui, mon accès au forum semble fonctio nner, je
reviens sur une de mes questions précédentes. En effet, certains de m es
mails (nouvelle question suite à réponse) n'apparaissent même pas d ans
les archives de Google. Excusez-moi si ce n'est pas la première fois que
vous voyez ce problème.

Ce que je souhaitais faire :
- Feuill1 => Liste autorisée.
- Feuill2 => Saisie.

La solution qui m'intéresse m'a été fournie par JB et corre spond au
code suivant :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 And Target <> "" Then
If IsError(Application.Match(Target, [maliste], 0)) Then
MsgBox "Erreur"
Application.EnableEvents = False
Target = Empty
Application.EnableEvents = True
End If
End If
End Sub

Malgré tous mes essais, je n'arrive pas exactement au résultat
souhaité. Ce que je souhaite améliorer :
- La liste de saisie doit être sensible à la casse et refuser si les
initiales saisies sont en minuscules alors que celles autorisées sont en
majuscules (ou vice versa - parfois même il peut y avoir majuscule et
minuscule mélangées).

Merci de me dire même si c'est impossible.

Julie


Avatar
JulieH
Merci, cela fonctionne parfaitement.

Si tu peux m'expliquer d'où sort ce "témoin" et comment cela fonctionne ?

Julie

ReBonjour,

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 And Target <> "" Then
témoin = False
For Each c In [maliste]
If Target = c Then témoin = True
Next c
If Not témoin Then
MsgBox "Erreur"
Application.EnableEvents = False
Target = Empty
Application.EnableEvents = True
Target.Select
End If
End If
End Sub

JB

On 1 août, 14:26, JulieH wrote:
Bonjour,

Comme je vois qu'aujourd'hui, mon accès au forum semble fonctionner, je
reviens sur une de mes questions précédentes. En effet, certains de mes
mails (nouvelle question suite à réponse) n'apparaissent même pas dans
les archives de Google. Excusez-moi si ce n'est pas la première fois que
vous voyez ce problème.

Ce que je souhaitais faire :
- Feuill1 => Liste autorisée.
- Feuill2 => Saisie.

La solution qui m'intéresse m'a été fournie par JB et correspond au
code suivant :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 And Target <> "" Then
If IsError(Application.Match(Target, [maliste], 0)) Then
MsgBox "Erreur"
Application.EnableEvents = False
Target = Empty
Application.EnableEvents = True
End If
End If
End Sub

Malgré tous mes essais, je n'arrive pas exactement au résultat
souhaité. Ce que je souhaite améliorer :
- La liste de saisie doit être sensible à la casse et refuser si les
initiales saisies sont en minuscules alors que celles autorisées sont en
majuscules (ou vice versa - parfois même il peut y avoir majuscule et
minuscule mélangées).

Merci de me dire même si c'est impossible.

Julie






Avatar
JB
-On compare chaque élément de [maliste] avec la valeur frappée.
-S'il y a égalité, on affecte à témoin la valeur True.
-Si aucun élément n'est égal a Target, témoin sera égal à False

témoin = False
For Each c In [maliste]
If Target = c Then témoin = True
Next c
If témoinúlse Then
Msgbox "Erreur"
End if

JB

On 1 août, 16:35, JulieH wrote:
Merci, cela fonctionne parfaitement.

Si tu peux m'expliquer d'où sort ce "témoin" et comment cela fonction ne ?

Julie




ReBonjour,

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 And Target <> "" Then
témoin = False
For Each c In [maliste]
If Target = c Then témoin = True
Next c
If Not témoin Then
MsgBox "Erreur"
Application.EnableEvents = False
Target = Empty
Application.EnableEvents = True
Target.Select
End If
End If
End Sub

JB

On 1 août, 14:26, JulieH wrote:
Bonjour,

Comme je vois qu'aujourd'hui, mon accès au forum semble fonc tionner, je
reviens sur une de mes questions précédentes. En effet, certains d e mes
mails (nouvelle question suite à réponse) n'apparaissent même pa s dans
les archives de Google. Excusez-moi si ce n'est pas la première fois que
vous voyez ce problème.

Ce que je souhaitais faire :
- Feuill1 => Liste autorisée.
- Feuill2 => Saisie.

La solution qui m'intéresse m'a été fournie par JB et co rrespond au
code suivant :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 And Target <> "" Then
If IsError(Application.Match(Target, [maliste], 0)) Then
MsgBox "Erreur"
Application.EnableEvents = False
Target = Empty
Application.EnableEvents = True
End If
End If
End Sub

Malgré tous mes essais, je n'arrive pas exactement au résu ltat
souhaité. Ce que je souhaite améliorer :
- La liste de saisie doit être sensible à la casse et refuser si l es
initiales saisies sont en minuscules alors que celles autorisées son t en
majuscules (ou vice versa - parfois même il peut y avoir majuscule et
minuscule mélangées).

Merci de me dire même si c'est impossible.

Julie- Masquer le texte des messages précédents -



- Afficher le texte des messages précédents -




Avatar
JulieH
A nouveau, merci.

Julie

-On compare chaque élément de [maliste] avec la valeur frappée.
-S'il y a égalité, on affecte à témoin la valeur True.
-Si aucun élément n'est égal a Target, témoin sera égal à False

témoin = False
For Each c In [maliste]
If Target = c Then témoin = True
Next c
If témoinúlse Then
Msgbox "Erreur"
End if

JB

On 1 août, 16:35, JulieH wrote:
Merci, cela fonctionne parfaitement.

Si tu peux m'expliquer d'où sort ce "témoin" et comment cela fonctionne ?

Julie




ReBonjour,
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 And Target <> "" Then
témoin = False
For Each c In [maliste]
If Target = c Then témoin = True
Next c
If Not témoin Then
MsgBox "Erreur"
Application.EnableEvents = False
Target = Empty
Application.EnableEvents = True
Target.Select
End If
End If
End Sub
JB
On 1 août, 14:26, JulieH wrote:
Bonjour,
Comme je vois qu'aujourd'hui, mon accès au forum semble fonctionner, je
reviens sur une de mes questions précédentes. En effet, certains de mes
mails (nouvelle question suite à réponse) n'apparaissent même pas dans
les archives de Google. Excusez-moi si ce n'est pas la première fois que
vous voyez ce problème.
Ce que je souhaitais faire :
- Feuill1 => Liste autorisée.
- Feuill2 => Saisie.
La solution qui m'intéresse m'a été fournie par JB et correspond au
code suivant :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 And Target <> "" Then
If IsError(Application.Match(Target, [maliste], 0)) Then
MsgBox "Erreur"
Application.EnableEvents = False
Target = Empty
Application.EnableEvents = True
End If
End If
End Sub
Malgré tous mes essais, je n'arrive pas exactement au résultat
souhaité. Ce que je souhaite améliorer :
- La liste de saisie doit être sensible à la casse et refuser si les
initiales saisies sont en minuscules alors que celles autorisées sont en
majuscules (ou vice versa - parfois même il peut y avoir majuscule et
minuscule mélangées).
Merci de me dire même si c'est impossible.
Julie- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -