Bonjour,
J'aimerai savoir s'il est possible d’enregistrer une feuille Excel au format (.bat) à l'aide d'une macro ?
Merci d'avance.
Bonjour,
J'aimerai savoir s'il est possible d’enregistrer une feuille Excel au format (.bat) à l'aide d'une macro ?
Merci d'avance.
Bonjour,
Tu peux même lui donner l'extension patate mais ça n'en fera pas une patate.
Précises ce que tu veux faire exactement.
Salut,
Voici un petit code (en partie fait avec l'enregistreur de macro ...)
Deux remarques :
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
16 Sub Macro1() ' ' ' Dim chemin As String 'création d'un nouveau classeur avec la feuille active ActiveSheet.Copy 'modifier pour indiquer où le fichier doit être enregistrer chemin = "C:\Users\jerome\Desktop" 'enregistrement du fichier (attention avec cette extention le pc ne reconnaitra pas que c'est 'un fichier Excel ... ActiveWorkbook.SaveAs Filename:=chemin & "\toto.bak", _ FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False 'Fermeture du fichier (otionnel) ActiveWindow.Close End Sub
Je suppose que tu veux enregistrer en .bak (backup) et non .bat.
Ceci dit, comme indiqué dans le code en commentaire, avec cette extension, pour ton PC, le fichier généré n'est pas reconnu comme fichier Excel.
A la fin de la macro, je ferme le fichier. Comme çà l'utilisateur peut continuer à travailler sur le fichier original sans se rendre compte de cette opération de sauvegarde.
Jérôme
" Je pense donc je suis. Tu es donc j'apprends ". (GCM)
Si ce message vous à aidé, merci de cliquer sur . Si ce message est résolu, cliquez sur .
Si tu veux parler d'un fichier de batch de commandes MS-DOS, il faut l'enregistrer avec un SaveAs en choisissant xlTextMSDOS comme valeur du paramètre FileFormat.
Pour ce qui est de l'extension, il suffit de la mettre dans le nom de fichier.
Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.
Oui c'est exactement ça.
D'ailleur petite question, quel est le type de format pour obtenir une extension en .enr ?
Voici ce que j'ai fait jusqu’à présent :
Message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Worksheets("date").SaveAs FileName:=NomFich & "\date.bat", _ FileFormat:=xlTextMSDOS, CreateBackup:=False
Impossible d'accéder à "date" le fichier peut être endommagé, en lecture seule ou enregistré sur un serveur qui ne répond pas
Re,
Et il y quoi dans la variable NomFich ???
Pose un point d'arret ou met un espion sur la variable pour en être sûr ...
Jérôme
" Je pense donc je suis. Tu es donc j'apprends ". (GCM)
Si ce message vous à aidé, merci de cliquer sur . Si ce message est résolu, cliquez sur .
Finalement j'ai résolu mon problème, NomFich correspond au chemin d'accès de mon fichier. Or, je dois lui donner le chemin d'accès de mon dossier.
Je suis obligé de stocker le chemin complet de mon dossier dans une variable ...
Cependant lorsque j'ouvre mon fichier .bat, j'ai des guillemets qui se sont installés automatiquement, par exemple :
- Dans mon fichier excel j'avais : je m'appelle toto
- Une fois enregistré et quand je l'ouvre : "je m'appelle toto"
Comment peut-on les enlever ?
bonjour,
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
16
17
18
19
20
21
22
23
24
25
26 Sub test() NewFichieTxt Split(ThisWorkbook.FullName, ".")(0) & ".BAT", ThisWorkbook.FullName Racourci Split(ThisWorkbook.FullName, ".")(0) , ThisWorkbook.FullName End Sub Sub Racourci(RaccourciName As Variant, Fichier As Variant) Set Fso = CreateObject("Scripting.FileSystemObject") If Fso.FileExists(RaccourciName & ".Lnk") = True Then Fso.DeleteFile RaccourciName & ".Lnk" End If Set objshell = CreateObject("wscript.shell") Set objraccourci = objshell.createshortcut(RaccourciName & ".Lnk") objraccourci.targetpath = Fichier objraccourci.Save Set Fso = Nothing Set objraccourci = Nothing End Sub Public Sub NewFichieTxt(Fichier As String, txt As String) Set Fso = CreateObject("Scripting.FileSystemObject") Set NewFichier = Fso.OpenTextFile(Fichier, 2, True) NewFichier.Write txt NewFichier.Close Set NewFichier = Nothing Set Fso = Nothing End Sub
Dernière modification par Invité ; 12/06/2018 à 12h48.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager