XL 2013 Remettre a zero un ensemble de liste déroulante

bastienb

XLDnaute Nouveau
Bonjour à toutes et tous,
Je débute en VBA, mais en cherchant sur le net, j'ai deja pu faire quelques petits trucs, mais la je bloque.
J'ai cherché sur le net et sur le forum, mais pour le moment sans succès. Je m'excuse par avance si jamais le sujet a deja été traité.
Je suis en train de me faire un fichier Excel pour faciliter la mise au point de formule.
Sur le premier onglet, j'ai deux tableaux avec en-tête nommé tableau4 et tableau46
Dans ce tableau sur la première colonne, j'ai des listes déroulantes me permettant de sélectionner le nom de l'ingrédient (les listes déroulantes se réfèrent à une liste d'ingrédient sur un autre onglet) et dans la seconde colonne, je vais inscrire le % de cet ingrédient dans la formule.
Je souhaiterais remettre à zéro ce tableau en cliquant sur un bouton, c.-à-d. que les listes déroulantes n'affichent rien et que les valeurs de % de la seconde colonne soient effacées.
J'ai trouvé le moyen de remettre à zéro les valeurs de pourcentage. Pour cela, j'ai nommé la colonne % dans ces deux tableaux "pourcentages" et "pourcentages USA" et j'ai utilisé le code suivant :
VB:
Sub remise_a_zero()

' remise_a_zero Macro

    Sheets("Caloric Value").Range("pourcentage").FormulaR1C1 = "0"
  
    Sheets("Caloric Value").Range("pourcentage_USA").FormulaR1C1 = "0"

End Sub

Par contre, je bloque sur la remise à zéro des listes déroulantes de la première colonne de ces tableaux.
J'ai essayé de faire ça, mais je ne pense pas que ce soit applicable aux listes déroulantes, mais juste aux filtres appliqués via l'entête du tableau.
Code:
Sub remise_a_zero()

' remise_a_zero Macro

    Sheets("Caloric Value").Range("pourcentage").FormulaR1C1 = "0"
    Sheets("Caloric Value").ListObjects("Tableau4").Range.AutoFilter Field:=1
    
    Sheets("Caloric Value").Range("pourcentage_USA").FormulaR1C1 = "0"
    Sheets("Caloric Value").ListObjects("Tableau46").Range.AutoFilter Field:=1


End Sub
Sauriez-vous m'aider à faire cela s'il vous plaît? Avez vous besoin que je vous upload mon fichier excel?
Je vous remercie par avance
Bastien
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour BastienB,
Vous avez deux solutions, avec par ex une liste en G9 :
1- Supprimer la liste déroulante :
VB:
Sub SupListe()
    Range("G9").Validation.Delete
End Sub
2- La vider ( mais attention il faut au moins un item, ici j'ai mis un espace )
Code:
Sub VideList()
    Range("G9").Select
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= xlBetween, Formula1:=" "
    End With
End Sub

En utilisant l'enregistreur de macro, vous avez la syntaxe, qu'il suffit de "nettoyer".
 

Discussions similaires

Réponses
18
Affichages
636
Réponses
49
Affichages
1 K

Statistiques des forums

Discussions
315 049
Messages
2 115 742
Membres
112 570
dernier inscrit
Metinnn