XL 2019 obliger à remplir une cellule et vider l'autre

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 !

matlatarte

XLDnaute Junior
Bonjour, je cherche à obliger l'utilisateur à remplir soit A1 soit A2 mais que si A1 est pleine, A2 soit vide (ou vidé) et que si A2 est pleine A1 soit vide... J'ai un peu regardé en vba mais je m'y perds un peu... Pourriez vous m'éclairer ?

merci
 
Bonjour
Clic droit sur l'onglet de la feuille concernée
choisir visualiser le code
copier la macro ci dessous
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
  If Target.Column <> 1 Then Exit Sub
  If Target.Address = "$A$1" And Range("A2").Value <> "" Then Target.Value = ""
  If Target.Address = "$A$2" And Range("A1").Value <> "" Then Target.Value = ""
End Sub
A+ François
 
Re, salut fanfan38,

Voyez le fichier joint avec dans le code de la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Application.CountA([A1:A2]) = 2 Then [A1:A2] = ""
ScrollArea = IIf(Application.CountA([A1:A2]) = 1, "", "A1:A2")
End Sub
Et dans ThisWorkbook :
VB:
Private Sub Workbook_Open()
Feuil1.[A1] = Feuil1.[A1] 'lance la macro Worksheet_Change
Saved = True 'évite l'invite à la fermeture si aucune modification
End Sub
Quand la plage A1:A2 est vide on ne peut sélectionner que A1 ou A2.

A+
 

Pièces jointes

Dernière édition:
merci cela fonctionne sans bug mais même remarque lorsque a1 est rempli, je rempli a2 cela efface tout et il faut reremplir a2 et inversement lorsque a2 est rempli et que je rempli a1 cela efface tout et il faut reremplir a1. Est ce possible d'éviter cela ? soit je rempli a1 et cela efface a2 soit je rempli a2 et cela efface a1. merci !
 
Fichier (2) avec :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A1]) Is Nothing And CStr([A1]) <> "" Then [A2] = ""
If Not Intersect(Target, [A2]) Is Nothing And CStr([A2]) <> "" Then [A1] = ""
ScrollArea = IIf(Application.CountA([A1:A2]) = 1, "", "A1:A2")
End Sub
Bonne nuit.
 

Pièces jointes

- 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

Discussions similaires

Réponses
10
Affichages
268
Réponses
7
Affichages
433
Retour