forcer à ne saisir qu'une cellule parmis plusieurs

  • Initiateur de la discussion Initiateur de la discussion dadaboss92
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

dadaboss92

Guest
Bonjour,

Premier post. J'ai galéré grave je trouve pas. Voici mon prob :
A1
A2
A3
A4

Je veux forcer l'utilisateur à ne remplir qu'une de ces cellules. S'il en remplit deux il faut que ça affiche un message d'erreur.

Merci de votre aide
 
Re : forcer à ne saisir qu'une cellule parmis plusieurs

Bonjour Dadaboss et bienvenu, bonjour voisin, bonjour le forum,

Comme tu es nouveau parmi nous, je te recommande de lire la
Lien supprimé du forum qui donne tous les bons plans pour obtenir de l'aide rapidement...
En pièce jointe un petit exemple avec la macro événementielle Change ci-dessous :
Code:
Private test As Boolean 'déclare la variable test

Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans l'onglet
If test = True Then Exit Sub 'si test est vraie, sort de la procédure (évite la bocle sur l'événement "Change")
If Application.WorksheetFunction.CountA(Range("A1:A4")) > 1 Then 'condition : si le nombre de valeurs dans la plage A1:A4 est supérieur à une
    test = True 'définit la variable test
    Target.ClearContents 'éfface la cellule modifiée (relance la procédure "Change")
    MsgBox "Vous ne pouvez éditer qu'une seule cellule dans la plage A1:A4 !" 'message
    test = False 'redéfinit la variable test
End If 'fin de la condition
End Sub
Le fichier :
 

Pièces jointes

Dernière édition:
Re : forcer à ne saisir qu'une cellule parmis plusieurs

re, salut Robert 🙂, tu parles aussi le Dadaboss !,
Mais à la lueur de ce que tu viens d'écrire, il me semble qu'il faut déclarer le flag, dans une variable public et dans un module standard, ou mettre le résultat en IV65000
Désolé, je ne maitrise pas encore le Dadaboss
A+
kjin
 
Re : forcer à ne saisir qu'une cellule parmis plusieurs

Bonjour le fil, bonjour le forum,

re, salut Robert 🙂, tu parles aussi le Dadaboss !,
Mais à la lueur de ce que tu viens d'écrire, il me semble qu'il faut déclarer le flag, dans une variable public et dans un module standard, ou mettre le résultat en IV65000
Désolé, je ne maitrise pas encore le Dadaboss
A+
kjin

Pffff ! Si tu sortais un peu et venais à Sète tu saurais qu'il existe un magasin où l'on trouve des décodeurs de Dadaboss pour que dalle...
Sinon, J'ai toujours déclaré ma variable test comme Private comme dans l'exemple, en dehors de la procédure, et ça a toujours fonctionné... Pourquoi cela ne devrait-il pas fonctionner ?
 
Re : forcer à ne saisir qu'une cellule parmis plusieurs

Re,
Vous êtes sévères c'était à mes yeux totalement compréhensible par tout autochtone.
Et en plus il nous insulte....

Pffff ! Si tu sortais un peu et venais à Sète
désolé, je n'ai pas de passe port !

dans un module standard...
Code:
Public flag As Boolean
...et dans le module de la feuillle
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [a1:a4]) Is Nothing And Not flag Then
    flag = True
Else
    Application.EnableEvents = False
    Application.Undo
    Application.EnableEvents = True
End If
End Sub
A+
kjin
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

E
Réponses
1
Affichages
1 K
Elegancya
E
J
Réponses
2
Affichages
784
E
Réponses
10
Affichages
11 K
Ethiryn - Glarilak
E
T
Réponses
1
Affichages
1 K
titous68
T
A
Réponses
0
Affichages
774
Areylac
A
C
Réponses
1
Affichages
1 K
C
F
Réponses
6
Affichages
3 K
Francis200
F
C
Réponses
3
Affichages
914
ccile
C
Retour