Créer un document avec une macro VB

Résolu
Jeanmi90 -  
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   -
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"...

2 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
  2. Jeanmi90
     
    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
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      0
    2. Jeanmi90
       
      Merci de ta réponse pijaku mais cela ne fonctionne pas chez moi erreure de script !!!

      j'en perd mon latin !!!!
      0
    3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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
    4. Jeanmi90
       
      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
    5. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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