VBA : problème avec l'instruction "nouvelle fenêtre"

Bonjour,

J’ai une macro qui me permet d’ouvrir une nouvelle fenêtre par l’instruction ActiveWindow.NewWindow, puis j’ai d’autres instructions qui suivent.

J’ai alors deux fenêtres numérotées par exemple : ‘’Fichier_exemple:1’’ et ‘’Fichier_exemple:2’’.

Si je lance une deuxième fois la même macro, ça m’ouvre une troisième fenêtre numérotée ‘’Fichier_exemple:3’’.

Savez-vous comment je peux éviter que cette troisième fenêtre soit ouverte mais que les instructions suivantes soient malgré tout exécutées ?

Cordialement.

Yvouille, le forum,

Une suggestion :

Sub TesteNouvelleFenetre()

On Error Resume Next

ActiveWindow.ActivateNext

If ActiveWindow.WindowNumber = 1 Then
    ActiveWindow.NewWindow
    If ActiveWindow.WindowNumber = 3 Then ActiveWindow.Close
End If

MsgBox "  coucou  "

End Sub

LaCéline

Salut Céline,

Merci beaucoup pour ta réponse.

Sur la base du code que tu m’as fourni, j’ai bricolé un autre code que j’ai placé dans le fichier ‘’Démo Forum’’. Lorsque je clique sur le bouton ‘’Saisie Membres’’ en place sur la feuille ‘’ Liste des participants’’, tous fonctionne à merveille, la fenêtre désirée s’ouvre correctement. Si je clique une fois de plus sur le même bouton, ça fonctionne encore mieux, puisqu’une nouvelle fenêtre n’est plus ouverte.

Je remarque alors, à la fin de la macro, que la fenêtre supérieure est activée, qu’elle montre la feuille ‘’Data’’ et qu’elle est nommée ‘’Démo Forum:2’’. La fenêtre inférieure montre la feuille ‘’Liste des participants’’ et est nommée ‘’Démo Forum:1’’.

J’ai copié-collé cette macro dans le fichier ‘’ Essai Liste des participants’’ et mes malheurs commencent

Si je lance la même macro par le même bouton, une nouvelle fenêtre s’ouvre correctement mais – je ne sais pas si ça a de l’importance – la fenêtre supérieure montre la feuille ‘’Liste des participants’’ et est nommée ‘’Essai Liste des participants:2’’ et la fenêtre inférieure est activée, elle montre la feuille ‘’Data’’ et est nommée ‘’Essai Liste des participants:1’’.

Masi si je reviens sur la fenêtre supérieure, que je clique à nouveau sur le bouton en place, une troisième, une quatrième, ……. fenêtre est ouverte.

As-tu une idée d’où vient le problème ?

Amicalement.

6demo-forum.zip (15.94 Ko)

Yvouille, le forum,

Ce code fonctionne mieux et il peut être copié dans n'importe quel classeur, il s'adapte au nom du classeur.

Sub Préparation_deux_fenêtres()
Dim NomFichier As String

NomFichier = ActiveWorkbook.Name
    On Error Resume Next

    ActiveWindow.ActivateNext

    If ActiveWindow.WindowNumber = 1 Then
        ActiveWindow.NewWindow
        If ActiveWindow.WindowNumber = 3 Then ActiveWindow.Close
        Windows.Arrange ArrangeStyle:=xlHorizontal
        Windows(NomFichier & ":1").Activate

        Sheets("Data").Select
    End If

    Range("E2").Select
    ActiveWindow.FreezePanes = True

End Sub

Ce qu'il lui manque, c'est rétablir les fenêtres en mode plein-écran dans Workbook_BeforeClose. Sinon, Excel se souviendra de la dimension de la fenêtre à l'ouverture du prochain classeur.

LaCéline

Salut Céline,

Merci encore une fois pour ton aide J’ai maintenant compris que ActiveWindow.WindowNumber se rapporte au numéro de la fenêtre active alors que j’avais pensé tout d’abord que ça se référait au nombre de fenêtres ouvertes. Ton code fonctionne donc à merveille.

Ca me permet de bien avancer dans mon projet et j’indique donc mon fil comme ‘’Résolu’’. Mais rien ne dit que je ne vais pas devoir le rouvrir ou en ouvrir un autre pour d’autres problèmes.

Afin de refermer - avant la fermeture du fichier - la deuxième fenêtre ouverte, ça devrait aller, je devrais m'en sortir.

Chaleureusement.

Re-bonjour Céline,

J’ouvre à nouveau ce fil car j’ai encore des soucis avec ces fenêtres. Si tu peux encore m’aider, ce serait génial.

La première fois que je clique sur le bouton ‘’Saisie Membres’’ placé sur la feuille ‘’Liste des participants’’, la fenêtre 2 est en-haut et montre la feuille ‘’Liste des participants’’ alors que la fenêtre 1 est en-bas et montre la feuille ‘’Data’’.

Si je clique une deuxième, une troisième, …… une énième fois sur le même bouton, les fenêtres sont inversées, la 1 en-haut et la 2 en-bas. As-tu une idée afin que les fenêtres soient toujours placées identiquement, ça m’est un peu égal laquelle en-haut ou en-bas ?

Cordialement.

Yvouille, le forum,

Je ne suis pas la meilleure en programmation.

Mais ceci semble fonctionner.

LaCéline

Salut LaCéline,

Merci beaucoup pour cette nouvelle réponse qui me permet à nouveau de bien avancer dans mon projet.

Très bonnes salutations.

Rechercher des sujets similaires à "vba probleme instruction nouvelle fenetre"