IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Word Discussion :

[Automatisation Formulaire] Vaste projet


Sujet :

Word

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Formation à l'innovation sociale
    Inscrit en
    Février 2017
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation à l'innovation sociale

    Informations forums :
    Inscription : Février 2017
    Messages : 30
    Points : 8
    Points
    8
    Par défaut [Automatisation Formulaire] Vaste projet
    Bonjour à tous,

    J'ouvre ici mon premier sujet. Merci d'avance si vous prenez le temps de le lire.
    Je m'appelle donc Arthur, j'ai 25 ans, et je fais face à un projet d'ampleur sur Word-Google Drive.
    N'ayant pas de compétences en VBA Word, je m'adresse à vous afin d'avoir des pistes, idées, chemins pour parvenir à mes fins. Je ne cherche donc pas forcément de réponse ultra précise, mais simplement des pistes.

    Mon projet est le suivant. Je dois mettre en place la gestion d'une base de données de "fiches" via Google Drive. L'idée est d'avoir plusieurs thèmes et sous-thèmes représentés par des dossiers et sous dossiers présents dans le drive et d'associer des tags cohérents à chaque fiche. Par exemple, si j'ai un thème "Alimentation", je veux pouvoir retrouver mes fiches correspondantes via le dossier "Alimentation" ou en écrivant "Alimentation" dans la barre de recherche du Drive grâce aux tags associés à mes fichiers Word.

    Jusque là, pas de problème, si je gère ça manuellement, je m'y retrouve.

    L'objectif (peut-être un peu ambitieux), serait d'avoir un template de fiche Word où il y aurait un menu déroulant pour le thème, sous thème, etc. Là encore, pas de problème.

    Ma vraie question est de savoir s'il est potentiellement possible d'automatiser le processus en ayant un formulaire permettant de choisir le thème, sous-thème, qui entrainerait un ajout automatique d'un/des tag(s) correspondant à ces derniers, d'avoir un bouton "Valider" qui lancerait l'enregistrement automatique du fichier Word dans le dossier correspondant du Drive, avec les tags correspondants (selon les choix faits dans le formulaire).

    Serait-ce réalisable sous Word ? Cela demanderait-il beaucoup de compétences ? Y-a-t-il un rapport avec les macros ?
    Serait-ce plus facilement gérable sous Excel ?

    Même si j'ai une idée très claire de ce que je désire obtenir, je suis novice et n'ai que peu d'idée pour réussir mon projet.

    Merci encore si vous avez tenu jusqu'au bout de mon sujet, et merci d'avance pour toute éventuelle réponse/piste/conseil.

    Cordialement,
    Arthur

  2. #2
    Membre averti
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2007
    Messages : 267
    Points : 367
    Points
    367
    Par défaut
    Bonjour,

    Une question pour commencer.
    Quand vous parlez de GoogleDrive, vous parler de l'application sur PC ou uniquement du mode en ligne ?

    Si vous avez l'application il sera plus simple de faire l'enregistrement.
    Serait-ce réalisable sous Word ? Cela demanderait-il beaucoup de compétences ? Y-a-t-il un rapport avec les macros ?
    Serait-ce plus facilement gérable sous Excel ?
    Réalisable sous Word : Oui, et s' il s'agit uniquement de prendre la valeur de 2 champs et de faire l'enregistrement il n'y a pas grande compétences.
    Cf le lien ci dessus.

    Plus simple sous Excel... Suivant ce que l'on souhaite faire le VBA reste du VBA.... si c'est uniquement pour enregistrer à un endroit X je dirais que c'est la même chose.

    Edit :
    J'ai fait le test rapidement ce soir :
    1) Création d'un document word avec ajout d'une combobox
    2) J'ajoute des données à la combobox à l'ouverture du fichier type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Document_Open()
    ComboBox1.AddItem ("Categorie1")
    ComboBox1.AddItem ("Categorie2")
    ComboBox1.AddItem ("Categorie3")
    End Sub
    => Dans un monde parfait et avec du temps il faudrait lister les dossiers et sous dossier afin de remplir une, deux ou trois combobox...
    3) J'ai rajouté un bouton pour sauvegarder le fichier voici son code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Private Sub CommandButton1_Click()
     
    Dir1 = ActiveDocument.ComboBox1.Value
     
    Dossier_Sauvegarde = "test\" & Dir1
     
    ChangeFileOpenDirectory "C:\" & Dossier_Sauvegarde
     
    ActiveDocument.SaveAs2 FileName:="tesst.docm", FileFormat:= _
            wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _
            :=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
            :=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
            SaveAsAOCELetter:=False, CompatibilityMode:=15
        Application.WindowState = wdWindowStateNormal
     
    End Sub
    Pour comprendre dans la variable Dir1 je trouve la valeur de la combobox1
    J'ai créé une variable Dossier_sauvegarde pour que tu comprennes l'idée de la concaténation

    Ensuite on lui indique ou sauvegarder C:\test\categorie1
    Nom du fichier tesst.docm (word avec macro)


    Pour la question des tags.... là je ne sais pas.

    A+
    Loi de l’Inertie de la Programmation de Dijkstra
    Si vous ne savez pas ce que votre programme est censé faire, vous feriez bien de ne pas commencer à l’écrire.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Formation à l'innovation sociale
    Inscrit en
    Février 2017
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation à l'innovation sociale

    Informations forums :
    Inscription : Février 2017
    Messages : 30
    Points : 8
    Points
    8
    Par défaut
    Bonjour Alex70,

    Un immense merci pour votre réponse qui m'aide fortement à éclaircir mon esprit.

    J'ai un peu de mal à comprendre pour le moment ces lignes de codes mais j'ai heureusement des gens dans mon entourage qui vont pouvoir m'aider.

    Mon équipe et moi-même utilisons principalement l'application pour éviter de télécharger et re-uploader nos contenus, donc bonne nouvelle.

    Quelques petites questions qui, j'espère, ne seront pas trop incohérentes :
    - Si j'ai bien compris, ces lignes de codes prennent en compte une catégorie, est-il possible d'utiliser des sous-catégories également ?
    - Petit problème, nous utilisons à la fois Mac et Windows. Donc pas possible de mettre "C://" dans le code. Ne serait-il pas possible de placer le fichier à la racine de notre drive pour pouvoir cibler les dossiers sans passer par C:// ou Mac/user... ?
    Je m'explique, l'objectif serait de choisir la catégorie dans le fichier Word (disons BTP, logement) et une sous-catégorie (disons Immeubles) et qu'en cliquant sur le bouton le fichier s'enregistre automatiquement vers Drive/BTP, logement/Immeubles.
    - Qu'en est-il du choix du titre du fichier ? il est possible de rajouter un champ ?

    Une nouvelle fois, un grand merci d'avance.

    Arthur

  4. #4
    Membre averti
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2007
    Messages : 267
    Points : 367
    Points
    367
    Par défaut
    Bonjour,

    Tout d'abord : pas de quoi

    Pour essayer de répondre à l'ensemble de vos questions :

    - Si j'ai bien compris, ces lignes de codes prennent en compte une catégorie, est-il possible d'utiliser des sous-catégories également ?
    Je m'explique, l'objectif serait de choisir la catégorie dans le fichier Word (disons BTP, logement) et une sous-catégorie (disons Immeubles) et qu'en cliquant sur le bouton le fichier s'enregistre automatiquement vers Drive/BTP, logement/Immeubles.
    Cela pour moi va ensemble. 1 Catégorie, avec 1 sous Catégorie, avec 1 sous sous Catégorie par exemple : ce ne sont que des comobox au final.
    Et donc au final on récupère les données comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Categorie1_Dossier1 = ActiveDocument.ComboBox1.Value
    SousCategorie1_SousDossier1 = ActiveDocument.ComboBox2.Value
    SousSousCategorie1_SousSousDossier1 = ActiveDocument.ComboBox3.Value
    Donc ensuite je passe par de la concaténation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    'Ancien code 
    Dossier_Sauvegarde = "test\" & Dir1
     
    'Nouveau code
    Dossier_Sauvegarde = Categorie1_Dossier1 & "\" & SousCategorie1_SousDossier1 & "\" & SousSousCategorie1_SousSousDossier1
     
    'Cela donne avec votre exemple BTP,Logement\Immeubles\VMC

    - Petit problème, nous utilisons à la fois Mac et Windows. Donc pas possible de mettre "C://" dans le code. Ne serait-il pas possible de placer le fichier à la racine de notre drive pour pouvoir cibler les dossiers sans passer par C:// ou Mac/user... ?
    Il est possible de rajouter un test afin de savoir comment enregistrer le fichier, cela va résoudre le problème.
    Après Il est toujours possible de trouver le chemin d'accès du fichier en cours d'utilisation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If isMac then 'Test si la version qui se lance est sur Mac, ou test si l'Os est un Mac là je ne sais plus je vous laisse chercher ^^
     '=> on enregistre ICI
    else
     '=> on enregistre là
    end if
    OU on peut mettre le chemin dans une variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Racine_du_document = thisdocument.path 'Cela donne le chemin d'accès du fichier ouvert ça doit aussi répondre à votre besoin
    Pour finir :
    - Qu'en est-il du choix du titre du fichier ? il est possible de rajouter un champ ?
    Si le titre est dans un champs de votre formulaire c'est tout à fait possible de la même façon que pour les combobox.
    Variable_Nom_Du_Fichier = Valeur_de_votre_champs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'La ligne que j'ai noté hier
    ActiveDocument.SaveAs2 FileName:="tesst.docm"
     
    'Normalement un truc comme ça :
    ActiveDocument.SaveAs2 FileName:= Variable_Nom_Du_Fichier

    Voici l'algorithme qui devrait vous aider à comprendre la logique du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    'On récupère les variables
    Dossier = ComboBox1
    SDossier = ComboBox2
    SSDossier = ComboBox3
    NomFichier = ChampsText1
     
    'On concatène le chemin d'enregistrement (sans le c: ou le mac/user)
    Chemin_de_sauvegarde = Dosser\SDossier\SSDossier
     
    'On test
    Si c'est un mac ALORS
     j enregistre sous mac/user/Drive/Chemin_de_sauvegarde (je ne connais la sauvegarde sous mac mais la logique est là)
    Sinon 'donc c'est un PC
    j enregistre sous c://Drive/Chemin_de_sauvegarde
    fin si
    Votre demande n'est pas compliquée mais va demander du travail pour assimiler quelques principes de VBA


    A+
    Loi de l’Inertie de la Programmation de Dijkstra
    Si vous ne savez pas ce que votre programme est censé faire, vous feriez bien de ne pas commencer à l’écrire.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Formation à l'innovation sociale
    Inscrit en
    Février 2017
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation à l'innovation sociale

    Informations forums :
    Inscription : Février 2017
    Messages : 30
    Points : 8
    Points
    8
    Par défaut
    En effet, il va me falloir un peu de temps pour comprendre et assimiler toutes ces notions VBA mais cela me servira de toute manière à l'avenir !
    En tout cas merci beaucoup car avec ces conseils, lignes de codes, et explications, vous m'avez vraiment mâché le travail.
    Du coup je vais surement refaire un tour vers les bases du VBA pour revenir à l'algorithme que vous m'avez proposé.
    Avec un peu de persévérance j'y arriverai. Je penserai à vous tenir informé lorsque tout sera en place.

    Merci encore,
    Arthur

  6. #6
    Membre averti
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2007
    Messages : 267
    Points : 367
    Points
    367
    Par défaut
    Il faut faire un tour par ici :
    http://heureuxoli.developpez.com/office/word/vba-all/

    Bon courage et je peux vous assurer que ce que vous souhaitez faire n'est pas compliqué.
    Après un peu de lecture et un grand saut dans le VBA en 1 ou 2 jours vous devriez avoir du résultat (et finalement le boulot est déjà fait en grande partie, mais le but est de comprendre pas de copier )

    A++
    Loi de l’Inertie de la Programmation de Dijkstra
    Si vous ne savez pas ce que votre programme est censé faire, vous feriez bien de ne pas commencer à l’écrire.

Discussions similaires

  1. [AC-2010] Supprimer un formulaire du projet VBA
    Par aci26 dans le forum VBA Access
    Réponses: 1
    Dernier message: 24/04/2014, 18h19
  2. Ouvrir un formulaire du projet
    Par hotsizzle dans le forum Windows Forms
    Réponses: 6
    Dernier message: 13/01/2009, 17h23
  3. Réponses: 1
    Dernier message: 18/03/2008, 11h19
  4. [POO] Projet de class pour un formulaire => votre avis !
    Par shadeoner dans le forum Langage
    Réponses: 26
    Dernier message: 07/04/2006, 15h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo