Ouvrir un Classeur en arrière-plan

Résolu/Fermé
zapp56 Messages postés 25 Date d'inscription samedi 19 novembre 2016 Statut Membre Dernière intervention 15 décembre 2023 - 4 févr. 2022 à 13:34
 zapp56 - 29 mars 2022 à 22:05
Bonjour à tous,

Je développe actuellement une appli en vba excel qui exploite plusieurs bases de données.

J'ai cherché une solution à ce problème mais sans succès, car la description me renvoie sur "comment masquer un classeur".

J'ai un userform en interface dont le code vérifie si la BDD est déjà ouverte avant de l'ouvrir pour l'exploiter.
Si elle est fermée au début alors il la refermera après, jusque là tout va bien.

Si elle est ouverte au début je voudrais qu'elle reste ouverte à la fin, mais en arrière plan.
Or après le traitement des données, la BDD reste au premier plan et cache l'userform.
J'ai essayer d'utiliser Activate sur mon 1er Classeur mais ça ne change rien. Le xlMinimize n'est pas une option, je souhaite seulement remettre le Classeur principal au premier plan avec l'userform.

Une idée s'il vous plaît ?

Merci d'avance.
A voir également:

5 réponses

Bonjour,

@yg_be j'espère que tu comprendras que les données que je traite sont sensibles et très confidentielles, c'est pourquoi je ne peux pas diffuser mon code, il aurait fallu que je crée un nouveau code pour pouvoir le publier.

A tous, je viens de me rendre compte que mon problème est une erreur de compréhension de la méthode windowstate xlminimized.
En effet, je croyais que cette méthode agissait sur la taille de la fenêtre et non son état.

Donc xlminimized est bien la solution à mon problème.

Je tiens à m'excuser du temps que je vous ai fait perdre, mais aussi à vous remercier de votre spontanéité dans l'aide que vous avez voulu m'apporter. Je vous souhaite une bonne continuation, encore désolé.
1
yg_be Messages postés 22736 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 avril 2024 1 477
4 févr. 2022 à 14:10
bonjour,
quel logiciel utilises-tu pour tes BDD?
dans quel classeur se trouve le code VBA?
montre-nous le code que tu as essayé (Activate sur mon 1er Classeur). utilise les balises de code quand tu partages du code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0
zapp56 Messages postés 25 Date d'inscription samedi 19 novembre 2016 Statut Membre Dernière intervention 15 décembre 2023 1
4 févr. 2022 à 16:17
Bonjour, et merci pour ton intérêt.

Je suis sur téléphone donc je ne peux pas envoyer mon code (ou pas avant la semaine prochaine car c'est un fichier de boulot)

Mes BDD sont de simples feuilles Excel (xlsx) que j'invoque avec Workbooks.Open et toute mon appli est dans un userform de mon classeur (xlsm).

Le problème c'est que les xlsx s'ouvrent mais si je ne les ferme pas elles restent devant et je dois sélectionner manuellement le classeur xlsm pour retomber sur mon usf.

J'ai essayé workbooks("fichier.xlsm").activate mais j'ai l'impression que l'userform bloque le passage au premier plan.
0
yg_be Messages postés 22736 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 avril 2024 1 477
4 févr. 2022 à 17:09
Je n'ai rien de similaire qui me permet de tester.
Peut-être en faisant
show
du userform?
0
zapp56 Messages postés 25 Date d'inscription samedi 19 novembre 2016 Statut Membre Dernière intervention 15 décembre 2023 1
Modifié le 23 mars 2022 à 19:23
Bonjour,

Et désolé si j'ai mis du temps à revenir vers vous, j'ai été très occupé pour des raisons familiales.
Pour reformuler en étant concis :

J'utilise 2 classeurs :
"Macro.xlsm" qui contient mon code (userform).
"BDD.xlsx" qui contient ma base de données

Le code est prévu volontairement pour ouvrir la BDD en lecture seule.
Quand le code s'apprête à ouvrir la BDD, il vérifie si le fichier est déjà ouvert. (j'ai un retour true/false)

Cas 1 : La BDD n'était pas ouverte (false). Il l'ouvre, il copie les données dans le 1er classeur, il ferme la BDD. (pas de soucis à ce niveau là)

Cas 2 : La BDD est déjà ouverte (true). Il la sélectionne, il copie les données dans le 1er classeur, et il garde la BDD ouverte (pas de soucis à ce niveau là)

Problème : Dans le Cas 2, la BDD est au premier plan, devant mon userform, et je suis obligé de cliquer sur la barre "réduire" pour continuer à utiliser le 1er classeur et l'userform.

J'ai essayé :
> Workbooks("Macro.xlsm").Activate
Mais cela ne fonctionne pas car je pense qu'il ne peut pas activer le classeur 1 étant donné que l'userform est ouvert.
Note : Je préférerais continuer d'utiliser cet userform en modal, et ne pas utiliser la formule "xlMinimize".

Voili voilou, merci pour votre aide, si vous le pouvez
0
yg_be Messages postés 22736 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 avril 2024 1 477
23 mars 2022 à 20:50
tu ne montres toujours aucun code.

si tu partages tes fichiers, je pourrais tester. je me demande si il ne faut pas parfois compléter un activate par un select.

"cliquer sur la barre "réduire"": de quoi s'agit-il? as-tu essayé de "réduire" via VBA?

"il ne peut pas activer le classeur 1 étant donné que l'userform est ouvert": peut-être fermer le userform via VBA?

"Le xlMinimize n'est pas une option": cela ne fonctionne pas?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
f894009 Messages postés 17187 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 1 mai 2024 1 703
24 mars 2022 à 07:28
Bonjour tous,


zapp56
je vous avais mis a suivre et plus de nouvelle, mais qu'a cela ne tienne.

Pourquoi voulez vous que votre feuille BDD soit au premier plan en lecture seule au debut, quelle utilitee?
0