Vérifier la présence d'une autre fenêtre VBA

Bonjour à tous !
Pour terminer les derniers détails (j'espère ^^) de mon fichier utilisé pour scanner des ventes sur une exposition j'ai besoin de régler un dernier gros détail.
Mon fichier sera ouvert sur 2 fenêtres afin d'avoir en permanence 2 feuilles visibles, à gauche pour scanner et à droite pour avoir des infos et un système de recherche de produits par tableau croisée. Tout fonctionne, sauf que j'aimerai ajouter un bout de code qui précise que lorsque qu'une action est effectuée sur la fenêtre droite, peu importe, cela remet directement sur une cellule précise de la feuille de gauche pour pas perturber le scannage des articles.

Private Sub Worksheet_Change(ByVal Target As Range)
   Windows("Vente-des-variétés-Code-barre 2.xlsm:2").Activate '
   With Worksheets("Données") 
      .Activate
      .Application.Cells(3, 6) = "1" 
   End With
End Sub
  

Cela fonctionne très bien mais vous vous douterez qu'au démarrage du fichier si la fenêtre n'existe pas j'ai un message d'erreur qui parfois mène au crash de Excel.
J'ai donc essayé de trouver un moyen de vérifier que une fenêtre soit ouverte mais je n'ai trouvé que du code qui vérifie qu'un FICHIER est ouvert.
Donc si je mets de vérifier que

Vente-des-variétés-Code-barre 2.xlsm:2

est ouvert cela va considérer que c'est ok comme si le :2 à la fin n'est pas pris en compte et du coup l'erreur apparait quand même.

La seule solution que j'ai trouvé et d'ajouter 'If Windows.Count > 1 Then' afin de vérifier qu'au moins 2 fenêtres excel est ouverte. Mais bon c'est pas très propre car si c'est un autre fichier qui est ouvert et non une fenêtre de mon fichier principal le code passe au travers et l'erreur apparait.

Le plus simple ca aurait été de faire 2 fichiers séparés qui fonctionnent ensemble mais maintenant que j'ai des lignes de VBA et de formules dans tous mes classeurs je ne peux pas recommencer (surtout que l'exposition arrive et je vais manquer de temps si je devais tout refaire ) ^^

Merci encore d'avance !

Bonjour,

Essayer plutôt :

If ThisWorkbook.Windows.Count > 1

Tout simplement
merci énormément !

Je réouvre le sujet car en ouvrant sur l'ordinateur où va fonctionner le fichier je me rends compte que l'onglet Nouvelle Fenêtre crée une fenêtre qui ne porte pas le nom de Monfichier.xlsm:2 comme pour moi mais plutôt Monfichier - 2 - Excel

Et du coup et bien le code plante car la condition qu'une autre fenêtre soit ouverte est respectée mais ... la ligne qui précise le nom n'est plus valable et là j'ai essayé de la changer pour m'adapter au logiciel de cet ordi mais cela ne fonctionne pas, j'ai essayé plusieurs combinaisons dont celle qui s'affiche dans le gestionnaire des tâches.

De ce fait est-il possible de remplacer cette ligne : "Windows("Vente-des-variétés-Code-barre 2.xlsm:2").Activate '" par quelque chose qui dirait d'aller dans la deuxième fenêtre ouverte pour faire la suite qui ne serait pas nominatif mais générique (et donc valable pour n'importe quel Excel, du moins récent).

Merci d'avance !

Rechercher des sujets similaires à "verifier presence fenetre vba"