Bonjour,
Je lutte depuis quelques heures sur un malheureux problème avec une macro VBA :
* je souhaite enregistrer une feuille de mon classeur actif au format texte sans fermer mon classeur actif (et en fermant le fichier texte créé) *
(ça paraît simple là !)
mais la seule méthode que j'ai trouvée pour le faire en gardant mon classeur ouvert et pour que cela soit transparent quand on lance la macro (genre en tâche de fond) c'est :
- ajouter un nouveau classeur
- y coller ma feuille
- enregistrer sous
- fermer le classeur actif (qui est le fichier texte créé)
Jusque là tout va bien sauf que je voudrais aussi que la macro ferme le classeur ajouté (qui contient la copie de ma feuille), sauf qu'il est automatiquement en lecture seule et qu'une fois mon .txt fermé il n'est pas le classeur actif : je n'ai donc aucun moyen d'y accéder avec une méthode "close".
Pour plus de clarté voici ma macro :
Mon problème c'est qu'avec ce code c'est mon classeur principal qui se ferme (avec la deuxième instruction "close") et non pas le classeur ajouté !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Public Sub Test() Dim file_name As String Set Data = Worksheets("Data") file_name = "Data.dat" THRISPData.Copy Workbooks.Add.Activate ActiveSheet.Paste ActiveWorkbook.SaveAs Filename:=file_name, FileFormat:=xlText, CreateBackup:=False ActiveWorkbook.Close SaveChanges:=True ActiveWorkbook.Close SaveChanges:=False End Sub
Pouvez vous m'aider à fermer le classeur ajouté ?
Ou peut être avez vous une solution miracle pour "enregistrer sous" une feuille au format texte sans passer par tout ce micmac (et sans fermer le classeur de travail) !!!
Merci beaucoup par avance ...
Tity
Partager