Fonction subtotal

Fermé
nibledispo Messages postés 8 Date d'inscription samedi 30 mars 2013 Statut Membre Dernière intervention 21 avril 2013 - 30 mars 2013 à 05:27
 Yoda - 2 avril 2013 à 13:57
Bonjour,

je débute à 67 ans.

je veux créer sous Excel 2010 un fichier avec un code VBA .

Ce code contient la fonction VBA "subtotal".
les totaux doivent obligatoirement être annulés avant d'entrer des données nouvelles avec un formulaire.

je dois donc savoir avant, si les totaux sont actifs et le cas échéant exécuter l'instruction "selection.remove.subtotal"

Pour savoir si les totaux sont actifs, j'ai tenté le code suivant:

if subtotal = true then
selection.remove.subtotal
end if

bizarrement, il ne se passe rien avec "true" alors qu'avec" false" les sous totaux sont bien supprimés.

j'ai essayé de voir ce qui se passerait si à contrario je voulais tester la présence des sous totaux avant d'activer la fonction "subtotal". Le même code avec "false" exécute la fonction "subtotal" sur le fichier préalablement sans sous totaux.

quelqu'un a-t-il un explication ?

(une autre solution consisterait à mettre un marqueur = 0 par défaut et qui serait = 1 quand subtotal est appliqué (activé par un bouton userform))

Merci.

1 réponse

Bonjour,

Extrait de l'aide MSDN
<<Lorsque Visual Basic convertit des valeurs de type de données numériques en Boolean, 0 devient False et toutes les autres valeurs deviennent True. Lorsque Visual Basic convertit des valeurs Boolean en types numériques, False devient 0 et True devient -1.>>

donc if subtotal = true est interprété comme if subtotal=-1 ce qui n'est pas vrai (ou exeptionnellement vrai).

par contre si subtotal = 0 alors la condition if subtotal = false e st vérifiée.

A+
0