Liste de mots à placer dans texte

  • Initiateur de la discussion Initiateur de la discussion mormox
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

mormox

XLDnaute Nouveau
Bonjour à tous,

Cela fait bien longtemps que je n'ai plus pratiqué Excel et j'ai perdu un peu la main, c'est pour ça que je me tourne vers vous aujourd'hui:

1) J'ai une liste d'arrondissement parisien : Paris 75001, Paris 75002 etc.. Paris 75020.

2) Une liste de mots en face de chaque arrondissement : Premier arrondissement, deuxième arrondissement, etc.. vingtième arrondissement.

3) J'ai un texte : "Bienvenue à "Paris 75001", le "premier arrondissement" est aussi desservi par blablabla..."

Voilà ma question :

Je souhaite que pour chaque arrondissement, faire un texte qui reprenne chaque mot de la liste, le colle dans le texte et qui l'enregistre ensuite sous le nom du mot pris dans la première colonne sous un format txt.

Exemple, si j'ai le texte "Bienvenue à "Paris 75001", le "premier arrondissement" est aussi desservi par blablabla...", le fichier généré devra se nommer "Paris 75001.txt".

Est-ce que je suis suffisamment clair ?

D'avance merci 😀
 
Re : Liste de mots à placer dans texte

Bonjour,

en utilisant l'enregistreur de macro, il apparait qu'il faut utiliser
activeworkbook.saveas Filename:="EmplacementEt NomFichier",FileFormat:=xlUnicodeText, CreateBackup:=False

donc.. tu n'as plus qu'à fabriquer la chaine de caractère "Chemin/NomFichier"
 
Re : Liste de mots à placer dans texte

Bonjour,

en utilisant l'enregistreur de macro, il apparait qu'il faut utiliser
activeworkbook.saveas Filename:="EmplacementEt NomFichier",FileFormat:=xlUnicodeText, CreateBackup:=False

donc.. tu n'as plus qu'à fabriquer la chaine de caractère "Chemin/NomFichier"

Bonjour et merci pour ta réponse,

Comment lui indiquer qu'il faut qu'il change de ligne après avoir enregistré par exemple Paris75001.txt, je veux qu'il passe automatiquement à Paris75002.txt etc..?

Pour le moment j'ai fait ceci :

Code:
Sub Macro1()
' Macro1 Macro

Dim ville As String
ville = Range("Feuil1!A1").Value

Dim CP As String
CP = Range("Feuil1!B1").Value

Dim Txt As String
Txt = "Bienvenue dans la ville de " & ville & " dont le code postal est " & CP

Range("Feuil3!A1").Value = Txt

'Je définis l'emplacement pour la sauvegarde, et le nom du fichier
'la variable "ville" et "CP"
 
Dim Chemin As String, Fichier As String
 
  Chemin = "C:\SAUVEGARDE\"
  Fichier = ville & CP & ".txt"

Set Sauvegarde = ActiveWorkbook.Worksheets("Feuil3").Range("A1")
Sauvegarde.Copy

ActiveWorkbook.SaveAs Filename:=Chemin & Fichier, FileFormat:=xlUnicodeText, CreateBackup:=False

End Sub


ça fonctionne correctement, sauf que le nom de la Feuil3 prend le nom des variables ville & CP, sans que je n'arrive à identifier d'où ça peut venir. Je peux toujours renommer en Feuil3, mais si ya une autre solution, ça m'arrangerait 🙄

Merci pour votre participation !
 
Dernière édition:
Re : Liste de mots à placer dans texte

Re,

pour répéter l'opération sur toutes tes lignes, il faut introduire une boucle (for i... next)

Code:
Sub Macro1()
' Macro1 Macro

Dim ville As String
Dim CP As String
Dim Txt As String
Dim Chemin As String, Fichier As String

Chemin = "C:\SAUVEGARDE\"
last = Range("Feuil1!A1").End(xlDown).Row
For i = 1 To last
    ville = Range("Feuil1!A" & i).Value
    CP = Range("Feuil1!B" & i).Value
    Txt = "Bienvenue dans la ville de " & ville & " dont le code postal est " & CP
    Range("Feuil3!A" & i).Value = Txt

    'Je définis l'emplacement pour la sauvegarde, et le nom du fichier
    'la variable "ville" et "CP"
    Fichier = ville & CP & ".txt"

    Set Sauvegarde = ActiveWorkbook.Worksheets("Feuil3").Range("A" & i)
    Sauvegarde.Copy

    ActiveWorkbook.SaveAs Filename:=Chemin & Fichier, FileFormat:=xlUnicodeText, CreateBackup:=False
Next i
End Sub
l'ennui.. c'est que ce code ne va fonctionner que pour la première ligne car.. effectivement, l'onglet Feuil3 est renommé du nom du fichier.. et donc.. à la seconde itération, il ne trouve plus l'onglet feuil3

1) soit renommer en Feuil3 à la fin de chaque itération.. mouais..
2) soit trouver la bonne instruction qui permet de créer un fichier texte genre.. le code qui ne devrait pas tarder ;-)
 
Re : Liste de mots à placer dans texte

Voici le code..
suffit de créer un nouveau classeur, lui mettre l'info désirée. et l'enregistrer au bon format

Code:
Sub Macro1()
' Macro1 Macro

Dim ville As String
Dim CP As String
Dim Txt As String
Dim Chemin As String, Fichier As String

Chemin = "C:\SAUVEGARDE\"
last = Range("Feuil1!A1").End(xlDown).Row
For i = 1 To last
    ville = Range("Feuil1!A" & i).Value
    CP = Range("Feuil1!B" & i).Value
    Txt = "Bienvenue dans la ville de " & ville & " dont le code postal est " & CP
    Range("Feuil3!A" & i).Value = Txt

    'Je défini l'emplacement pour la sauvegarde, et le nom du fichier
    'la variable "ville" et "CP"
    Fichier = ville & CP & ".txt"

    
    
    Set NewBook = Workbooks.Add
    Range("Feuil3!A1").Value = Txt


NewBook.SaveAs Filename:=Fichier, FileFormat:=xlUnicodeText, CreateBackup:=False

    ActiveWorkbook.Close
Next i
End Sub

par contre. la.. je fais face à un mystère...
la macro me créer bien les fichiers texte.. mais je ne les vois pas....??
pourtant. ils existent bien puisque si je relance la macro.il me dit que le fichier existe déjà..

autre chose.. à la fermeture du nouveau fichier, il me demande à chaque fois de confirmer l'enregistrement.. ca.. on peut s'en affranchir en le mettant par défaut dans la ligne de commande;. mais je ne sais pas encore ce qu'il faut mettre exactement..
 
Re : Liste de mots à placer dans texte

Rebonsoir vgendron, et merci beaucoup pour ton aide, grâce aux éléments que tu as apporté, voici ma version de code finale qui fonctionne parfaitement chez moi :

Code:
Sub Macro1()
' Macro1 Macro

Dim ville As String
Dim CP As String
Dim Txt As String
Dim Chemin As String, Fichier As String

Chemin = "C:\SAUVEGARDE\"
last = Range("Feuil1!A1").End(xlDown).Row
For i = 1 To last
    ville = Range("Feuil1!A" & i).Value
    CP = Range("Feuil1!B" & i).Value
    Txt = "Bienvenue dans la ville de " & ville & " dont le code postal est " & CP
    Range("Feuil3!A" & i).Value = Txt

    'Je définiS (Si si ça prend bien un "S" haha) l'emplacement pour la sauvegarde, et le nom du fichier
    'la variable "ville" et "CP"
    Fichier = ville & CP & ".txt"
 
    Set NewBook = Workbooks.Add
    Range("Feuil1!A1").Value = Txt


NewBook.SaveAs Filename:=Fichier, FileFormat:=xlUnicodeText, CreateBackup:=False

    ActiveWorkbook.Close False
Next i
End Sub


Alors j'ai arrangé deux petites choses :
1)
Code:
Set NewBook = Workbooks.Add
        Range("Feuil1!A1").Value = Txt
J'ai changé "Feuil3!" en "Feuil1", car par défaut chez moi (xl 2013? :/) n'ouvre qu'une seule feuille lors d'un "Newbook"...Donc bug. Là c'est nickel.



2)
autre chose.. à la fermeture du nouveau fichier, il me demande à chaque fois de confirmer l'enregistrement.. ca.. on peut s'en affranchir en le mettant par défaut dans la ligne de commande;. mais je ne sais pas encore ce qu'il faut mettre exactement..

Code:
NewBook.SaveAs Filename:=Fichier, FileFormat:=xlUnicodeText, CreateBackup:=False
    ActiveWorkbook.Close False

J'ai rajouté "False" après "ActiveWorkbook.Close" pour remédier à ce problème d'enregistrement.


par contre. la.. je fais face à un mystère...
la macro me créer bien les fichiers texte.. mais je ne les vois pas....??
pourtant. ils existent bien puisque si je relance la macro.il me dit que le fichier existe déjà..

Question bête, tu as bien créé un dossier "Sauvegarde" dans ton C ?
Je suppose que oui s'il enregistre bien les fichiers. Dans ce cas là, as-tu essayé de rafraichir ton dossier avec F5 entre deux lancements de macro ? Parfois explorer bug et n'affiche pas les nouveaux fichiers créés...
Au pire redémarre et... dis moi ce qu'il en est, ça m'intrigue !

En tout cas, merci beaucoup pour ton aide, je vais bien dormir ce soir !😀

Bonne nuit à toi et aux autres exceliens 😛
 
Re : Liste de mots à placer dans texte

Purée, j'ai exactement le même problème que toi concernant l'emplacement des fichiers maintenant !
Lorsque j'ai fait les tests la première fois, ça fonctionnait très bien. Puis j'ai déplacé la macro dans un fichier propre pour tout reprendre à 0... Problème : Je ne vois pas non plus les fichiers txt créés, mais ils sont bien quelque part !
Du coup, je crée un sous-dossier SAUVEGARDE\Macros\
Et je relance la macro, maintenant les fichiers apparaissent dans SAUVEGARDE et pas dans Macros !
😕
 
Dernière édition:
Re : Liste de mots à placer dans texte

Bonsoir à tous

mormox
Vous avez oublié le chemin 😉
Fichier = Chemin & ville & CP & ".txt"

ou alors possible aussi (mais c'est l'un
ou l'autre )
NewBook.SaveAs Chemin & Fichier, xlUnicodeText, False

Tout simplement, merci beaucoup JM, effectivement j'avais zappé Chemin.
Mais du coup, où sont passées les fichiers enregistrées ? 😕
 
Re : Liste de mots à placer dans texte

Dans la Twilight Zone, sans doute 😉

C'était pas si loin haha, il a balancé les fichiers par défaut dans Mes Documents 😀

Bon j'ai une autre interrogation, si je souhaite mettre en forme le texte dans ma macro, c'est possible ça ? (Saut de ligne, tabulations, etc..). Pour que le rendu soit à peu près propre et exploitable, j'ai besoin de le copier/coller sur des pages web par la suite.
Ou est-ce que vous proposez une autre solution ?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
19
Affichages
480
Réponses
1
Affichages
784
Retour