Création d'un workbook en trop

Création d'un workbook en trop - VB/VBA/VBS - Programmation

Marsh Posté le 16-08-2006 à 16:30:03    

Bonjour à tous, nouveau problème :
Dans mon programme je copie une feuille d'un fichier A dans une feuille d'un fichier B que j'ai précedemment créé, renommé et sauvegardé sur le DD. Mais le problème est que quand je crée un nouveau classeur que je renomme et que je sauvegarde j'ai un deuxième classeur qui se crée également (du style "Book2", "Book3", etc...). J'aimerai pouvoir crée qu'un seul classeur ou fermer que celui qui s'ouvre (sans savoir comment il s'appelle), comment puis-je faire?
Merci.

Reply

Marsh Posté le 16-08-2006 à 16:30:03   

Reply

Marsh Posté le 16-08-2006 à 16:40:55    

zephyron1 a écrit :

J'aimerai pouvoir crée qu'un seul classeur ou fermer que celui qui s'ouvre (sans savoir comment il s'appelle), comment puis-je faire?
Merci.


activeworkbook.close pour celui qui s'ouvre ?

Reply

Marsh Posté le 16-08-2006 à 17:02:38    

hum pas bète j'y ai pas pensé. Par-contre je pense que mon activeworkbook sera mon fichier B... Je vais tester.
 
EDIT :  
non je viens de tester et je me dois de donner plus de détail sur mon problème.
Quand j'execute mon code une fois, il n'y a pas de problème et j'ai aucun Book2 qui sort. Par-contre si je le réexecute sur les même fichiers (il va donc me redemander si je veux écraser mon fichier B) là j'ai un book2 qui vient. Et ainsi de suite même si je ferme le book2, j'obtiens un book3...
 
voici mon code :
 
   Workbooks.Add
   Sheets(1).name = "Accepted"
   Sheets(2).name = "Rejected"
   Sheets(3).name = sheetName
   Sheets.Add
   Sheets(1).name = "Error"
   Sheets("Error" ).Move After:=Sheets(3)
   fileName2 = sheetName + "-Answer.xls"
   ActiveWorkbook.SaveAs fileName:=filePath + "\" + fileName2, FileFormat:=xlNormal
   Sheets(sheetName).Activate


Message édité par zephyron1 le 16-08-2006 à 17:07:47
Reply

Marsh Posté le 17-08-2006 à 15:39:49    

:ange:  ptit up car j'ai pas trouvé comment fermer ce book 2 sans connaître son nom (ou ne pas l'ouvrir...).

Reply

Marsh Posté le 17-08-2006 à 18:36:05    

en résonnant dans l'autre sens, tu peux faire  
si feuilleName <> ou feuilleName <>
alors supprimer

Reply

Marsh Posté le 18-08-2006 à 10:23:36    

j'essaye tout de suite, merci jpcheck.

Reply

Marsh Posté le 18-08-2006 à 11:09:17    

C'est bon ça marche :
 
   If ((Workbooks(Workbooks.Count).name <> fileName) And (Workbooks(Workbooks.Count).name <> fileName2)) Then
     Workbooks(Workbooks.Count).Close
   End If
 
Ca marche niquel sauf que ça me demande si je veux sauvegarder le fichier. Est-il possible de forcer la fermeture sans sauvegarde?

Reply

Marsh Posté le 18-08-2006 à 12:47:33    

oui, regarde le displayalerts, mets le à false

Reply

Marsh Posté le 18-08-2006 à 14:45:03    

Voilà c'est fait, j'ai pas trouvé plus con :
 
Workbooks(Workbooks.Count).Close (False)
 
C'est exactement ce que je voulais, merci beaucoup Jean-Philippe!  ;)  
Au plaisir.

Reply

Marsh Posté le 18-08-2006 à 18:14:48    

de nada, pense à mettre le chti [résolu] pour ton topic ^^

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed