Nombre de fenetres

Bonsoir a tous, je voudrais écrire: "if 2ieme fenetre then..."

Salut,

décidément, c'est le jour des énigmes!

Après LACHANCE et son "message", tu t'y mets aussi ?

Que veux-tu dire exactement par "fenêtre" ?

A+

Je viens de voir le 'test"

Pour ce qui est de moi, il m'arrive régulierement d'afficher une 2ieme feuille dans la partie droite de l'écran, dans mon application excel . J'utilise ActiveWindow.NewWindow et Windows(ThisWorkbook.Name & ":2").Activate, car excel lui attribut automatiquement le numéro "2". Si quelque part, je veux savoir s'il y a une 2ieme feuille a l'écran, quel serait la syntaxe?

   ActiveWindow.NewWindow
        [code=vb] Sheets("ASS2").Select 'associe la feuille "ASS2" a la nouvelle fenetre
         ActiveWorkbook.Windows.Arrange ArrangeStyle:=xlVertical
         Cells(3, 1).Select
         ActiveWindow.FreezePanes = True
         ActiveWindow.DisplayWorkbookTabs = False
         ActiveWindow.DisplayHeadings = False
         ActiveWindow.DisplayHorizontalScrollBar = True
         ActiveWindow.DisplayVerticalScrollBar = True
         ActiveWindow.zoom = 100
    With ActiveWindow 'fenetre ASS2
        .Top = -20
        .Left = 700
        .Width = 560
        .Height = 800
    End With
        Windows(ThisWorkbook.Name & ":1").Activate 'fenetre principale
        ActiveWindow.DisplayWorkbookTabs = False
    With ActiveWindow
        .Top = -20
        .Left = 0
        .Width = 700
        .Height = 800
    End With
        Windows(ThisWorkbook.Name & ":2").Activate

[/code]

Re, Capucin,

ouhlala, que de choses qui dépassent mes compétences...

En cherchant un peu, j'ai trouvé un sujet, ici-même, de 2013, Bouton suiveur 3, dans lequel figure, en page 2, un petit article sur les événements Windows (difficilement) interceptables par VBA après installation de diverses DLL.

Vois en espérant que cela puisse t'aider! Je ne pourrai pas plus sur ce coup-là!

A+

Y a pas de probleme, merci quand meme!

Moi aussi, j'ai trouvé des choses pas mal compliqué. Il est facile de vérifié si une fenetre 2 est active ou pas mais de vérifier s'il y a 2 fenetre, ca l'air pas mal plus compliqué.

Je crois que je vais plutot me mettre une variable boolean "fenetre_2', que je mettrai a "vrai" lorsque j'ouvrirai une 2ieme fenetre. Je pourrai ainsi vérifier ailleur, si j'ai une 2ieme fenetre.

Les moyens les plus simples sont souvent les meilleurs et les plus fiables!

Bon travail!

A+, le Canadien!

Bonjour,

Ta question était en effet nébuleuse...

S'il ne s'agit que de savoir si tu as une 2e fenêtre d'ouverte, pas de problème : Windows.Count te donne le nombre de fenêtres.

Attention à une particularité : Windows est une propriété d'un côté de l'objet Application, de l'autre de l'objet Workbook.

Utilisé sans qualificateur, Windows correspond à Application.Windows. Si tu risques d'avoir plusieurs classeurs ouverts, tu as peut-être intérêt à qualifier ton expression par le nom du classeur ou ThisWorkbook.Windows (si classeur contenant macro) ou le cas échéant ActiveWorkbook.Windows...

S'il s'agit d'identifier la fenêtre, le problème est plus subtil : si pour toutes les collections, Count renvoie le nombre d'objet, la propriété Item (qui correspond au numéro d'ordre de l'objet dans la collection) n'est pas utilisable pour un test (sauf en l'invoquant dans une commande, Windows(2).Activate par exemple, sous gestion d'erreur et en testant immédiatement après s'il y a une erreur ou non, si pas d'erreur, la fenêtre 2 existe...). Mais il vaut sans doute mieux procéder autrement.

Si fenêtre dont tu veux suivre les périgrinations, le mieux est sans doute de l'affecter chaque fois que tu la crées à une variable objet. Tu l'as donc toujours facilement sous la main, et tu peux tester la variable (If MaFenêtre Is Nothing ou If Not MaFenêtre Is Nothing Then...)

J'ai lu aussi quelque part que tu pouvais nommer tes fenêtres... Ce qui est encore une autre possibilité.

Bye. Bonne journée.

Désoler pour ma question nébuleuse.

Je vais donc fonctionner avec une variable, par contre a certains endroit dans mon code ou j'ai jusqu'a 3 fenetres d'ouvertes, ThisWorkbook.Windows.count, me sera utile.

Encore une fois merci pour tes idées!

Capucin.

Rechercher des sujets similaires à "nombre fenetres"