Enregistrer Sous par Macro avec condition

sophievba

XLDnaute Junior
Bonjour à tous,

Comment enregistrer un fichier Sous par macro en mettant une constante (ex : TA) + une partie du contenu d'une cellule (les 5 premières lettres du mot qui se trouve dans la cellule G1) et avec l'extension de fichier en TXT , SVP ?

Ex : comme nom de fichier TAdupon.txt (dupont étant renseigné dans la colonne G1, je récupère que les 5 premières lettres.

Par avance, merci et bonne journée à tous.

Sophie.
 

ralph45

XLDnaute Impliqué
Re : Enregistrer Sous par Macro avec condition

Bonjour sophievba,

Essaye avec ce code :
ActiveWorkbook.SaveAs Filename:="C:\Donnees\" & "TA" & Left(Range("G1").Value, 5) & ".xls"

En rouge, le chemin sous lequel enregistrer ton fichier.

Edit : Pour un format .txt (cela m'apprendra à lire trop vite)

ActiveWorkbook.SaveAs Filename:="C:\Donnees\" & "TA" & Left(Range("G1").Value, 5) & ".txt"


A plus !
 
Dernière édition:

TempusFugit

XLDnaute Impliqué
Re : Enregistrer Sous par Macro avec condition

Au format texte, on ne peut enregister qu'une seule feuille (voir ci-dessous)
VB:
Sub xls2txt()
Const D As String = "TA"
Dim nomfichier$
Sheets(1).Copy
With ActiveWorkbook
nomfichier = D & VBA.Left([G1].Text, 5)
.SaveAs "C:\" & nomfichier, xlText
.Close False
End With
End Sub
 
Dernière édition:

sophievba

XLDnaute Junior
Re : Enregistrer Sous par Macro avec condition

Re,

Super, c'est ce que je souhaitais.
Si je peux abuser un peu, comment renommer ensuite un fichier *.prn en *.txt

* car je ne connais pas le nom du fichier .prn mais je veux conserver le nom et juste modifier l'extension en .txt (depuis la macro)

Merci.
 

sophievba

XLDnaute Junior
Re : Enregistrer Sous par Macro avec condition

Re TempusFugit,

Oui désolée je n'avais pas vu tous vos échanges avant ma réponse, j'étais restée sur ta réponse.

Le fichier prn je l'ai remplacé dans ton code. au lieu de mettre txt j'ai mis prn pour avoir des retour charriot.
Par la suite je voudrais renommer le fichier sauvegardé en TAxxxxx.prn et TAxxxxx.txt

J'ai déjà fait des essais mais ce ne fonctionne pas.

Merci pour tout, tu m'as déjà bien dépanné.

Sophie.
 

TempusFugit

XLDnaute Impliqué
Re : Enregistrer Sous par Macro avec condition

Comme dis plus haut

Voir l'aide VBA
Name, instruction


Renomme un fichier, un répertoire ou un dossier sur un disque.

Syntaxe

Name oldpathname As newpathname

La syntaxe de l'instruction Name comprend les éléments suivants :

Élément Description
oldpathname Expression de chaîne indiquant le nom et le chemin du fichier. Cet argument peut contenir le répertoire ou dossier et le lecteur.
newpathname Expression de chaîne indiquant les nouveaux nom et chemin du fichier. Cet argument peut préciser le répertoire ou le dossier et le lecteur. Le nom de fichier indiqué dans l'argument newpathname ne peut pas correspondre à un fichier existant.



Remarques

L'instruction Name renomme un fichier et le déplace le cas échéant vers un nouveau répertoire ou dossier. Elle permet aussi de déplacer un fichier d'un lecteur à un autre, mais elle ne peut renommer un dossier existant que si les arguments newpathname et oldpathname concernent le même lecteur. L'instruction Name ne permet pas de créer un nouveau fichier ou dossier.

Si vous appliquez Name à un fichier ouvert, vous provoquez une erreur. Les fichiers ouverts ne peuvent être renommés avant d'avoir été fermés. Les arguments de Name ne peuvent comporter de caractères génériques (* : multicaractères, ? : caractère unique).
 

sophievba

XLDnaute Junior
Re : Enregistrer Sous par Macro avec condition

RE,

Renommer le fichier et le mettre dans le bon répertoire j'y arrive quand je connais le nom du fichier.

Ex: TATA.prn pour le renommer en TATA.txt je mets

Name "C:\TEMP\TATA.prn" As "C:\TEMP\TATA.txt"

Mais comme j'enregistre le fichier avec la condition constante + 5 premières lettre de ma cellule G je ne sais pas forcément comment va s'appeler le fichier.

Or en faisant :

Name "C:\TEMP\*.prn" As "C:\TEMP\*.txt" ca ne fonctionne pas.

Mais bon c'est pas trop grave je vais continuer de chercher.

Merci encore.

Sophie.
 

TempusFugit

XLDnaute Impliqué
Re : Enregistrer Sous par Macro avec condition

Ton fichier *.prn est généré par une macro (celle donnée en début de post par exemple) ?

PS: Tu peux aussi sans passer par Excel renommer en utilisant l'invite de commande MSDos:

copy /A c:\temp\*.prn c:\temp\*.txt
 

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 933
Membres
103 985
dernier inscrit
JL Fargeas