XL 2010 Ouvrir Fermer Fichier à partir d'un autre fichier

cp4

XLDnaute Barbatruc
Bonsoir,

Ayant 2 fichiers dans le même répertoire (1 xlsx et 1 xlsm).
à l'ouverture du fichier xlsm, le fichier xlsx est ouvert via une macro.
Cependant, le fichier xlsx étant ouvert en second lieu devient actif.
Or, je n'arrive pas en vba à le rendre actif malgré l'utilisation de thisworkbook.activate.

Ensuite, je voudrai en cliquant sur la croix du fichier xlsm, fermer le fichier xlsx sans sauvegarde,
puis enregistrer les modifications du fichier xlsm et quitter l'application excel à condition qu'aucune autre instance excel n'est ouverte.

Je mis dans le fichier xlsm des explications. En espérant que mes explications sont claires.

Merci.

Bonne soirée.
 

Pièces jointes

  • FichierDonnées.xlsx
    8.6 KB · Affichages: 2
  • FichierMacro.xlsm
    21.2 KB · Affichages: 3

patricktoulon

XLDnaute Barbatruc
Bonjour
c'est tout a fait normal que tu n'y arrive pas
pourquoi donc utiliser cet object pour ouvrir ton xlsx ????????
utilise la collection workbooks et ca ira bien comme ça on est dans la meme instance excel

voilà
et utilise une variable globale module comme ca on la perds pas (wBK)
 

Pièces jointes

  • FichierMacro.xlsm
    17.2 KB · Affichages: 4
  • FichierDonnées.xlsx
    8.6 KB · Affichages: 0

cp4

XLDnaute Barbatruc
Bonjour
c'est tout a fait normal que tu n'y arrive pas
pourquoi donc utiliser cet object pour ouvrir ton xlsx ????????
utilise la collection workbooks et ca ira bien comme ça on est dans la meme instance excel

voilà
et utilise une variable globale module comme ca on la perds pas (wBK)
Bonsoir Patrick;),

Je t'avoue que je n'ai pas encore saisi la subtilité de ton code surtout en fin de journée.
C'est ce que je voulais exactement lors de l'ouverture.
Mais le résultat escompté pour la fermeture du fichier.
En fait, je voudrais aussi quitter l'application Excel.
fermeture.gif

Merci beaucoup pour ta précieuse aide.

Bonne soirée.
 

patricktoulon

XLDnaute Barbatruc
re
et bien soit
change la sub ,les commentaires parlent d'eux mêmes
VB:
Sub FermeFichier()
Application.DisplayAlerts = False ' on supprime les alerts
ThisWorkbook.Save ' on sauve le xlsm
If Not WBK Is Nothing Then WBK.Close False ' on ferme le xlsx sans sans le sauver
Application.Quit ' on quitte brutalement
End Sub
;)
 

cp4

XLDnaute Barbatruc
re
et bien soit
change la sub ,les commentaires parlent d'eux mêmes
VB:
Sub FermeFichier()
Application.DisplayAlerts = False ' on supprime les alerts
ThisWorkbook.Save ' on sauve le xlsm
If Not WBK Is Nothing Then WBK.Close False ' on ferme le xlsx sans sans le sauver
Application.Quit ' on quitte brutalement
End Sub
;)
Bonjour Patrick;),

Je te remercie mais ça ne fonctionne pas. Vraiment, car même en ajoutant Application.Quit Excel reste ouvert.
fermeture.gif


Encore merci pour ton aide.
Excellente journée.
 

patricktoulon

XLDnaute Barbatruc
re
Bonjour chez moi ça fonctionne
les expressions sont claires il n'y a aucune ambiguïté
j'ajoute le Contrôle si il y a d'autres classeur ouvert on ferme pas
fait moi plaisir teste avec les miens ;)
 

Pièces jointes

  • FichierMacro.xlsm
    19.1 KB · Affichages: 6
  • FichierDonnées.xlsx
    8.6 KB · Affichages: 3

cp4

XLDnaute Barbatruc
Pour le partage, j'ai trouvé ceci qui fonctionne chez-moi (Excel2010).
VB:
Sub FermeFichier()
Application.DisplayAlerts = False ' on supprime les alerts
ThisWorkbook.Save ' on sauve le xlsm
If Not WBK Is Nothing Then WBK.Close False ' on ferme le xlsx sans sans le sauver
If Workbooks.Count = 1 Then Shell ("taskkill /F /IM Excel.exe") Else ThisWorkbook.Close ' on quitte brutalement
End Sub
Mais j'avoue que je reste perplexe sur le fait que: Application.Quit ne quitte pas Excel.

Bonne journée.
 

patricktoulon

XLDnaute Barbatruc
a oui j'avais oublié
tu a 2010
sincèrement si tu trouve 2007 ou 2013 a minima c'est mieux
c'est une vrai daube ce 2010 comme vista l'est pour W7 et +
je l'ai eu pendant un peu plus d'un an, j'en ai tellement eu marre de bug insensé que j’étais revenu sur 2007
bon maintenant je suis sur 2013 il est pas parfait mais bon au moins je n'ai plus de bug inexplicable
a mon avis tu a un problème avec la structure même de l'implantation de vba dans ton system
ce 2010 quand tu l'a installé ,ne l'aurais tu pas fait en tant que mise a jour sur 2007 par hasard ??
si c'est le cas pas étonnant tu a des doublons dans le registre et quelques clé qui sont resté celle de 2007
j'y mettrais ma tète a couper
quand tu change de version nettoie tout avant dossier et clé de registre
et fait le à la main c'est long mais c'est mieux
 

cp4

XLDnaute Barbatruc
Oups! désolé pour le retard.
Dans le mil, J'avais bien mis à jour Excel 2007 vers 2010.
Suite à un crash, Excel 2010 ne fonctionnait plus. Même la réparation ou la réinstallation échouées.
J'avais trouvé sur le net une procédure pour effectuer une désinstallation manuelle.
J'ai en effet supprimé pas de clés du registre. Par la suite, l'installation d'Excel 2010 s'est bien terminée.
Donc Excel2010 s'est du caca comme vista!
Pour le moment mon budget est très serré pour envisager l'achat d'une version supérieure.

Merci beaucoup pour ton aide.
 

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 227
Membres
103 159
dernier inscrit
FBallea