VBA - problème avec SelectedSheets

Bonjour,

Je ne comprends pas pourquoi la fonction suivante renvoie toujours 1 :

Function NbFeuillesActives()
  NbFeuillesActives = ActiveWindow.SelectedSheets.Count
End Function

Alors que la même ligne de code fonctionne correctement dans une macro. De plus, si l'on exécute le code ligne à ligne, le résultat est correct.

Pouvez-vous m'aider ? Merci d'avance.

Daniel

Bonjour,

Cette fonction indique le Nb d'onglet actif, si tu n'as qu'un seul onglet activé, il indique 1

si avec la touche CTRL enfoncée, tu choisis plusieurs onglets et que tu relances la fonction, il indiquera le Nb d'onglet activé

j'ai 2 fois le même résultat

Sub Macro1()
     MsgBox "macro : " & ActiveWindow.SelectedSheets.Count
     MsgBox "fonction : " & NbFeuillesActives
End Sub

Function NbFeuillesActives()
     NbFeuillesActives = ActiveWindow.SelectedSheets.Count
End Function

Bonjour,

sans vouloir être puriste, ce que tu récupères c'est le nombre d'onglets sélectionnés (dont un seul peut être actif à la fois)
eric

Bonjour à tous,

@BsAlv :

Effectivement, la fonction appelée par la macro fonctionne correctement. Ca n'est pas le cas quand on l'utilise sur une feuille :

capture d ecran 20221210 121839

@eriiic, M12,

Il n'y a effectivement qu'une feuille active, mais il peut y avoir plusieurs feuilles sélectionnées. SelectedSheets représente la collection de ces feuilles.

il n'y a pas un wake-up call pour recalculer excel, donc le résultat de la fonction ne change pas.

Si, avec un selection change (in thisworkbook), donc il faut une fois changer de cellule, je provoque un calculation, cela fonctionne quand-même.

C'est comme compter des couleurs, cela ne se met pas à jour tout seul non plus ...

17sheetsselected.xlsm (26.38 Ko)

D'accord, mais je suis en calcul automatique et je change la valeur d'une cellule sans modifier le résultat de la formule

bonjour, excel a besoin de quelque chose, un changement d'une cellule, un changement de selection, F9, ...

Sans cela, aucune réaction, malheureusement ....

Oui, mais ça n'y fait rien, recalcul ou modification de cellule... Ou même saisie de la cellule APRES avoir sélectionné plusieurs feuilles. Tu ne constates pas le même problème ?

re,

avec ma feuille de 17:16, non

Re,

si tu la rends volatile elle s'actualise sur une saisie.
eric

re,

la fonction était déjà volatile.

Bonjour,

Deux choses :

- Sur le même ordi, la fonction fonctionne correctement avec Excel 2010.

- Elle ne fonctionne pas avec Excel 365 insider beta.

- Il faudrait vérifier qu'elle fonctionne avec Excel 365 standard.

re,

j'utilise aussi 365 insider.

Mais pourquoi posez-vous cette question ? Que voulez-vous faire avec ce chiffre ?

Peut-être il y a une approche différente possible.

@BsAlv : Etes-vous insider beta ? Je pose la question parce que la formule dysfonctionne pour moi et que je ne comprends pas pourquoi. Sinon, je l'ai écrite pour tenter de résoudre la question posée ici :

Dicussion

Daniel

bonjour,

on a besoin de quelque chose pour réveiller Excel et lui donner un coup de pied, le F9 ou l'instruction "Calcule" dans un evenement ou changer le contenu d'une cellule ou ... .

Si vous mettez la fonction dans un nouveau fichier, puis vous changer la selection d'une ou quelque feuilles, il ne se passe rien, rien à faire. SORRY, mais je dis plutôt heureusement, autrement l'ordinateur est toujours en train de "busy doing nothing".

Je suis d'accord. Je suis en calcul auto. J'ai provoqué le recalcul soit en entrant une valeur quelconque, en appuyant sur les touches Ctrl+Alt+F9. On voit que le recalcul est fait (l'animation Windows fait qu'on voit la valeur "basculer" avant d'afficher le résultat recalculé). Enfin, les deux feuilles étant sélectionnées avant que la formule soit entrée, on devrait avoir directement le bon résultat.

Rechercher des sujets similaires à "vba probleme selectedsheets"