Créer un document avec une macro VB

Résolu/Fermé
Jeanmi90 - 28 juil. 2011 à 09:15
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 29 juil. 2011 à 14:13
Bonjour,

J'aimerais, à partir d'un fichier Excel, une macro VB qui crée une copie d'un document type.docx dans un dossier existant. Puis à partir de mon fichier Excel, utiliser le contenu d'une cellule de mon classeur.xlsx pour renomer ma copie.docx et enfin définir un lien hypertexte avec la même cellule et ma copie renomée.

Merci à vous les "Cerveaux"...
A voir également:

2 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
28 juil. 2011 à 09:28
Bonjour,
Et avec ça, j'vous mets 5 kilos de patates?

Sérieusement, vous êtes vous déjà un peu penché sur votre problème? Ou en êtes vous? Vous avez au moins, si vous n'avez pas de connaissances VBA, créé votre classeur Excel?
vous dites
0
Bonjour,

pour les patates j'ai une préférence pour la BF15!! elle est plus douce !!

je ne me suis pas attardé plus qu'une quarantaines d'heures...métier oblige!!!
je suis parvenu depuis mon classeur excel à créer mon document.docx !!
je sais évidement faire les lients hypertexte.

Mais!!! lorsque je tente d'ouvrir ma création j'ai un message que mon document ne peu s'ouvrir car il est certainement corrompu !!

Concrètement j'ai tester ceci pour créer un document portant le nom du contenu d'une cellule de mon classeur excel.

Sub créationFichierNom()
Nom=Cells(11,9)Value
Workbooks.openFilename:="C:\Users\Mesdocument\Fiche.docx"
ActiveWorkbook.saveAsFilename:="C:\Users\Mesdocument\"&Nom &".docx"_
,FileFormat;=x1Normal, Password:="",WriteResPassword:="",
ReadOnlyRecommendel:=False, CreateBackup:=False
ActiveWindow.Close

EbdSub

Mais cela ne marche pas!!!
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
Modifié par pijaku le 28/07/2011 à 11:29
0
Merci de ta réponse pijaku mais cela ne fonctionne pas chez moi erreure de script !!!

j'en perd mon latin !!!!
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
Modifié par pijaku le 28/07/2011 à 13:38
As tu coché la référence indiquée : cocher Référence : microsoft scripting runtime
Si non :
Depuis ta feuille Excel tape ALT+F11
puis Outils/Références
Cherche puis coche "Microsoft scripting runtime"
OK
Ferme la fenêtre Visual Basic, enregistre ton classeur et reteste...
0
Bonjour pijaku,

plus de message d'erreur, la macro se déroule correctement mais il ne se passe rien dans mon repertoire !!

je jette l'éponge !! je part en vacances!!!

Merci pour tes coseils.

Tout de bon!!
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
29 juil. 2011 à 14:13
Salut,
Avant que tu ne partes en vacances, as tu modifié ce passage dans la macro :
If UCase(Right(oFl.Name, 3)) = "DOC" Then 
' pas déja traité 
If InStr(oFl.Name, right(str(valeur),len(str(valeur))-1)) <> 0 Then 
oFl.Name = Left(oFl.Name,len(oFl.name)-4) & "_" & right(str(valeur), len(str(valeur))-1) & ".doc" 

Si tu n'as rien changé, forcément le code ne fera rien. Dans ce vieux code, il est question de .doc. Ben oui à l'époque .docx n'existait point...
Donc, si tu n'as pas modifié, remplace ces quelques lignes par :
If UCase(Right(oFl.Name, 4)) = "DOCX" Then 
' pas déja traité 
If InStr(oFl.Name, right(str(valeur),len(str(valeur))-1)) <> 0 Then 
oFl.Name = Left(oFl.Name,len(oFl.name)-5) & "_" & right(str(valeur), len(str(valeur))-1) & ".docx"

Si tu ne l'avais pas fait, teste au moins ça et viens nous dire...
0