Macro Word - nommer fichier avec mot du texte

Résolu/Fermé
Utilisateur anonyme - 11 sept. 2009 à 16:48
 Utilisateur anonyme - 14 sept. 2009 à 12:05
Bonjour,

Macro sous Word 2007,

Pour créer des profils de connexion Cisco,
J'ai créé une macro qui me permet de créer ces fichiers à partir d'un document lui même issu d'un publipostage. Tout les profils étant par le publipostage dans le même fichier Word.
La macro extrait le 1er profil du texte, enregistre le fichier avec un nom que j'ai spécifié en dur, puis supprime les lignes de ce profil.
J'aimerai pouvoir enregistrer ce fichier avec le nom du profil (la personne concernée),
Cette information se trouve toujours sur la même ligne et sur la ligne à la même position après !Username=

Voilà un exemple :
=======================================================================
[main]
Description=Connexion VPN
Host=rpv
AuthType=1
GroupName=group
GroupPwd=
enc_GroupPwd=**********************************************
EnableISPConnect=0
ISPConnectType=0
ISPConnect=*************************
ISPPhonebook=C:\Documents and Settings\........\rasphone.pbk
ISPCommand=
!Username=nom
!SaveUserPassword=1
!UserPassword=********
enc_UserPassword=
NTDomain=
EnableBackup=0
BackupServer=
EnableMSLogon=1
MSLogonType=0
EnableNat=1
TunnelingMode=0
TcpTunnelingPort=10000
CertStore=0
CertName=
CertPath=
CertSubjectName=
CertSerialHash=00000000000000000000000000000000
SendCertChain=0
PeerTimeout=90
EnableLocalLAN=0
======================================================================

Voici ma commande pour enregistrer le fichier :
ActiveDocument.SaveAs FileName:= _
"\\serveur\partage\dossier\VPN\profil.txt"

J'aimerai remplacer profil.txt par nom.txt du texte ci-dessus, ligne 12 position 10.

Merci d'avance de votre aide,

Pascal
A voir également:

6 réponses

m@rina Messages postés 20065 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 23 avril 2024 11 271
14 sept. 2009 à 10:42
Bonjour,

Voici ce que j'ai écrit dans mon post :
"et supposant que chaque ligne se termine par un retour paragraphe (ce qu'on ne voit pas dans ton exemple)"
As-tu vérifié cela ?

m@rina
1
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
11 sept. 2009 à 23:51
bonjour

As-tu essayé :

ActiveDocument.SaveAs FileName:= _
"\\serveur\partage\dossier\VPN\" & nom & ".txt"
0
Utilisateur anonyme
12 sept. 2009 à 06:57
Bonjour,

En fait, c'est la piste que j'explore mais il faut pour cela que j'enregistre ce qui se trouve après !Username= dans une variable (la variable nom par exemple) pour que je puisse enregistrer le fichier par
ActiveDocument.SaveAs FileName:= _
"\\serveur\partage\dossier\VPN\" & nom & ".txt"

J'ai pour l'instant réussi à copier le texte qui m'intéresse dans le presse papier par :
Selection.MoveDown Unit:=wdLine, Count:=12
Selection.MoveRight Unit:=wdCharacter, Count:=10
Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend
Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
Selection.Copy

Il faudrait maintenant que j'arrive à attribuer à la variable nom le contenu du presse papier.
Si vous avez l'astuce, je suis preneur.
Ou une meilleur méthode, évidemment je suis preneur aussi

Cordialement,

Pascal
0
m@rina Messages postés 20065 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 23 avril 2024 11 271
12 sept. 2009 à 11:40
Bonjour,

Il n'y a pas à faire de sélection ni de move ! Ah cet enregistreur de macros !! :D

Si les fichiers sont tous construits de la même façon, et supposant que chaque ligne se termine par un retour paragraphe (ce qu'on ne voit pas dans ton exemple), voici la macro :

Sub nom()
Dim nom
nom = ActiveDocument.Paragraphs(13).Range.Words(4)
ActiveDocument.SaveAs FileName:= "\\serveur\partage\dossier\VPN\" & nom & ".txt", FileFormat:=wdFormatText  
End Sub


La macro va chercher le 4e mot de la 13e ligne (car si j'ai bien compté c'est la 13e ligne et non la 12e). Quant au ! il est considéré comme un mot à part entière.

J'ai ajouté dans la macro le format texte pour le fichier car il ne suffit pas de donner l'extension.

m@rina
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
13 sept. 2009 à 21:44
Bonjour,

Merci pour la réponse, cela semble exactement ce qu'il me faut,
Mais oups ! Il doit me manquer quelque chose :

Voici le message que je reçois quand j'exécute la macro :
"Le membre de la collection requis n'existe pas"

Pascal
0
Utilisateur anonyme
14 sept. 2009 à 12:05
Bonjour,

Effectivement, cela venait de mon fichier test.
Les caractères de fin de ligne n'étaient pas bons.

Après modif, tout est OK,
Merci beaucoup pour ton aide !!!

Cordialement,

Pascal
0