Microsoft 365 Cellule avec liste déroulante ou pas, sous condition par macro

pat66

XLDnaute Impliqué
Bonjour le forum,

J'ai besoin de votre aide pour écrire une macro car je n'y arrive pas

Je souhaiterai
1- pouvoir avoir une liste déroulante dans G19 si la forme ("Rectangle : coins arrondis 50").Visible = true
2- Saisir 9 dans G19 en plus de la validation des données (1ere valeur de la liste déroulante : 9,12,15,20)

Je souhaiterai
1- supprimer la validation des données dans G19 (liste déroulante) si la forme ("Rectangle : coins arrondis 50").Visible = false
2- vider G19

ci dessous le code que j'essaie d'écrire mais ça beuge de partout :mad:

Private Sub epargneDSI()
Application.ScreenUpdating = False

If ActiveSheet.Shapes("Rectangle : coins arrondis 50").Visible = False Then
ActiveSheet.Range("G19").Value = ClearFormats
Else
ActiveSheet.Range("G19").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:="=$D$158:$D$161" (valeurs = 9,12,15,20)
ActiveSheet.Range("G19").Value = 9
End If
End Sub



un grand merci d'avance
 
Solution
VB:
Sub epargneDSI()
If ActiveSheet.Shapes("Rectangle : coins arrondis 50").Visible = False Then
    ActiveSheet.Range("G19") = ""
    ActiveSheet.Range("G19").Validation.Delete
Else
    ActiveSheet.Range("G19").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
        Operator:=xlBetween, Formula1:="=$D$158:$D$161" ' (valeurs = 9,12,15,20)
    ActiveSheet.Range("G19") = 9
End If
End Sub

job75

XLDnaute Barbatruc
Bonjour,
VB:
Sub epargneDSI()
Application.ScreenUpdating = False
If ActiveSheet.Shapes("Rectangle : coins arrondis 50").Visible = False Then
    ActiveSheet.Range("G19").ClearFormats
Else
    ActiveSheet.Range("G19").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
        Operator:=xlBetween, Formula1:="=$D$158:$D$161" ' (valeurs = 9,12,15,20)
    ActiveSheet.Range("G19").Value = 9
End If
End Sub
Edit : ClearFormats n'efface pas la liste de validation en G19.

A+
 
Dernière édition:

job75

XLDnaute Barbatruc
VB:
Sub epargneDSI()
If ActiveSheet.Shapes("Rectangle : coins arrondis 50").Visible = False Then
    ActiveSheet.Range("G19") = ""
    ActiveSheet.Range("G19").Validation.Delete
Else
    ActiveSheet.Range("G19").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
        Operator:=xlBetween, Formula1:="=$D$158:$D$161" ' (valeurs = 9,12,15,20)
    ActiveSheet.Range("G19") = 9
End If
End Sub
 

Oneida

XLDnaute Impliqué
Bonjour a tous


VB:
    If ActiveSheet.Shapes("Rectangle : coins arrondis 50").Visible = False Then
        ActiveSheet.Range("G19").Validation.Delete
        ActiveSheet.Range("G19").ClearContents
        ThisWorkbook.RefreshAll
    Else
        ActiveSheet.Range("G19").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
        Operator:=xlBetween, Formula1:="=$D$1:$D$4" '(valeurs = 9,12,15,20)
        ActiveSheet.Range("G19").Value = 9
    End If

Avais pas vu le code a Job75
 

Discussions similaires

Statistiques des forums

Discussions
315 096
Messages
2 116 184
Membres
112 678
dernier inscrit
arno12345678