Vider cellules par choix dans menu déroulant
cityinterface
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
Mike-31 Messages postés 18405 Date d'inscription Statut Contributeur Dernière intervention -
Mike-31 Messages postés 18405 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Dans un tableau Excel, j'ai besoin que le choix d'un menu déroulant aboutisse à l'effacement de 2 cellules contenant des sommes entrées manuellement.
J'ai utilisé le code suivant:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Union([A26], [A26], Range("A26:A26"))) Is Nothing Then Exit Sub
ActiveSheet.Unprotect
Range("D26:E26").Select
Selection.ClearContents
ActiveSheet.Protect
End Sub
L'effacement fonctionne mais le pb c'est que je ne suis plus autorisé ensuite en changeant de choix dans le menu de la cellule qui le pilote à entrer une valeur numérique dans les 2 cellules cibles.
L'erreur: "Un utilisateur a restreint les valeurs que peut accepter cette cellule".
Une idée? Je bloque là.
Merci!
Dans un tableau Excel, j'ai besoin que le choix d'un menu déroulant aboutisse à l'effacement de 2 cellules contenant des sommes entrées manuellement.
J'ai utilisé le code suivant:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Union([A26], [A26], Range("A26:A26"))) Is Nothing Then Exit Sub
ActiveSheet.Unprotect
Range("D26:E26").Select
Selection.ClearContents
ActiveSheet.Protect
End Sub
L'effacement fonctionne mais le pb c'est que je ne suis plus autorisé ensuite en changeant de choix dans le menu de la cellule qui le pilote à entrer une valeur numérique dans les 2 cellules cibles.
L'erreur: "Un utilisateur a restreint les valeurs que peut accepter cette cellule".
Une idée? Je bloque là.
Merci!
A voir également:
- Vider cellules par choix dans menu déroulant
- Menu déroulant excel - Guide
- Excel menu déroulant en cascade - Guide
- Menu déroulant google sheet - Accueil - Guide bureautique
- Formule excel pour additionner plusieurs cellules - Guide
- Menu corbeille - Guide
3 réponses
Bonjour,
Le message que tu indiques doit provenir de la validation de données appliquée à la plage D26:E26.
Regarde dans l'onglet DONNEES > Outils de données > Validation des données.
A+
Le message que tu indiques doit provenir de la validation de données appliquée à la plage D26:E26.
Regarde dans l'onglet DONNEES > Outils de données > Validation des données.
A+
Bonjour,
A quoi ça sert de faire l'union de 3 fois la même cellule ?
eric
Union([A26], [A26], Range("A26:A26"))
A quoi ça sert de faire l'union de 3 fois la même cellule ?
eric
Salut Eriiic,
Parce qu'il a pompé un code ici et inadapté à sa demande, qu'il a d'ailleurs reformulé à la fin de la discussion sans répondre à ma demande de renseignement
Cordialement
Parce qu'il a pompé un code ici et inadapté à sa demande, qu'il a d'ailleurs reformulé à la fin de la discussion sans répondre à ma demande de renseignement
Cordialement
Bonjour,
L'union de 3 fois la même cellule, c'est mon petit plaisir... Non à rien, c'est juste que étant une bille j'ai compilé plusieurs scripts et je ne sais pas faire autrement en l'état ;))
Donc maintenant ça marche! Merci, merci Gyrus! Cependant, nouveau petit soucis:
Evidement je cherche à exécuter ce script sur plusieurs cellules et là VBA me jette.
Faut-il ouvrir un code VBA pour chaque cellule?
L'idée initiale qui malheureusement ne marche pas:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Union([A26], [A26], Range("A26:A26"))) Is Nothing Then Exit Sub
ActiveSheet.Unprotect
Range("D26:E26").Select
Selection.ClearContents
ActiveSheet.Protect
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Union([A27], [A27], Range("A27:A27"))) Is Nothing Then Exit Sub
ActiveSheet.Unprotect
Range("D27:E27").Select
Selection.ClearContents
ActiveSheet.Protect
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Union([A28], [A28], Range("A28:A28"))) Is Nothing Then Exit Sub
ActiveSheet.Unprotect
Range("D28:E28").Select
Selection.ClearContents
ActiveSheet.Protect
End Sub
Merci si quelqu'un sait me faire avancer...;)
Antoine
L'union de 3 fois la même cellule, c'est mon petit plaisir... Non à rien, c'est juste que étant une bille j'ai compilé plusieurs scripts et je ne sais pas faire autrement en l'état ;))
Donc maintenant ça marche! Merci, merci Gyrus! Cependant, nouveau petit soucis:
Evidement je cherche à exécuter ce script sur plusieurs cellules et là VBA me jette.
Faut-il ouvrir un code VBA pour chaque cellule?
L'idée initiale qui malheureusement ne marche pas:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Union([A26], [A26], Range("A26:A26"))) Is Nothing Then Exit Sub
ActiveSheet.Unprotect
Range("D26:E26").Select
Selection.ClearContents
ActiveSheet.Protect
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Union([A27], [A27], Range("A27:A27"))) Is Nothing Then Exit Sub
ActiveSheet.Unprotect
Range("D27:E27").Select
Selection.ClearContents
ActiveSheet.Protect
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Union([A28], [A28], Range("A28:A28"))) Is Nothing Then Exit Sub
ActiveSheet.Unprotect
Range("D28:E28").Select
Selection.ClearContents
ActiveSheet.Protect
End Sub
Merci si quelqu'un sait me faire avancer...;)
Antoine
Comme tu ne décris pas ce que tu veux exactement à tout hasard je dirais :
eric
Private Sub Worksheet_Change(ByVal Target As Range) Dim pl As Range Set pl = Intersect(Target, Range("A26:A28")) If pl Is Nothing Then Exit Sub ActiveSheet.Unprotect Application.EnableEvents = False pl.Offset(, 3).Resize(, 2).ClearContents Application.EnableEvents = True ActiveSheet.Protect End Sub
eric