Création de fiche à partir d'une base de données et sauvegarde dans le bon répertoire

Cedrim69

XLDnaute Nouveau
Bonjour,

Je débute avec le Visual Basic dans Excel, et je dois rendre rapidement pour le boulot un outil pour faire des fiches à partir d'une base de donnée.

Je voudrais créer et enregistrer dans le bon répertoire une fiche par ligne de la base de donnée. Le répertoire où doit être enregistrer la fiche est déterminé en fonction des données qui seront renseigné dans la fiche.

  • Si dans la colonne "Non conformity confirmed" la valeur est "N", la fiche doit être enregistrer dans le répertoire "NC non avéré"
  • Si dans la colonne "Non conformity confirmed" la valeur est "Y", la fiche peut etre enregistrer :
    • dans le répertoire "NC non corrigé", si il n'y a pas de date dans la colonne "Correction Date"
    • dans le répertoire "NC corrigé", si il y a une date dans la colonne "Correction Date"

Le remplissage doit être fait à partir des infos de la base de donnée, le numéro de dossier en fonction de la fiche désirée, le nom et la date en fonction des colonnes de la base de donnée correspondant.

L'outil pourrait-être dans un onglet de la base de donnée, un champ qui serai rempli par la personne qui veut faire une fiche avec un numéro de dossier, et puis on clique sur un bouton et la fiche se fait et se sauvegarde dans le bon répertoire.


Je met en pièce jointe mes fichiers de travail, mon modèle de fiche contient déjà des macros.

Voilà mon projet, est-ce que vous auriez des pistes pour la création de ma macro ?

Cordialement,

Cédric
 

Pièces jointes

  • Fichier B - Modèle de fiche.xlsm
    42.2 KB · Affichages: 213
  • Fichier A - Base de données.xlsm
    22.3 KB · Affichages: 186
  • Fichier A - Base de données.xlsm
    22.3 KB · Affichages: 217
  • Fichier A - Base de données.xlsm
    22.3 KB · Affichages: 224

Grand Chaman Excel

XLDnaute Impliqué
Re : Création de fiche à partir d'une base de données et sauvegarde dans le bon réper

Bonjour Cedrim69,

Voici une proposition que tu pourras adapter à ta guisae.
Dans ton fichier A, j'ai inclus ton modèle de fichier "Chart". Tu pourras cacher cet onglet si tu ne veux pas qu'il soit modifié par les utilisateurs ou bien tu adapteras le code si tu tiens à ce qu'il soit dans un fichier différent.

Pour activer le code, il suffit de double-cliquer sur une des cellules de la colonne A de la base de données.
La macro crée un nouveau fichier, copie la fiche gabarit "Chart" et la remplit. Ensuite le nouveau fichier est sauvegardé dans le bon répertoire.

Il faut au préalable que dans le répertoire dans lequel il y a ton fichier A, tu crées les 3 répertoires suivants : "NC corrigé", "NC non avéré" et "NC non corrigé".

Exemple :
Répertoire source
--- Fichier A
--- NC corrigé
------- fiche #4
--- NC non avéré
------- fiche #3
--- NC non corrigé
------- fiche #1
------- fiche #2

Le code se trouve dans la feuille "BDD"

A+
GCXL
 

Pièces jointes

  • Fichier A - Base de données.xlsm
    47.7 KB · Affichages: 243
  • Fichier A - Base de données.xlsm
    47.7 KB · Affichages: 279
  • Fichier A - Base de données.xlsm
    47.7 KB · Affichages: 283

Cedrim69

XLDnaute Nouveau
Re : Création de fiche à partir d'une base de données et sauvegarde dans le bon réper

Hello,

Merci beacoup pour ton aide, je suis en train d'essayé d'adapter le code, mais je ne reussi pas à enregistrer dans des dossiers qui ne sont pas dans le même répertoire que la base de donnée...

Cordialement,
Cédric
 

Grand Chaman Excel

XLDnaute Impliqué
Re : Création de fiche à partir d'une base de données et sauvegarde dans le bon réper

Bonjour,

Dans ce cas, je crois que tu devras modifier la variable "sRep" et lui donner la valeur le chemin que tu veux.

VB:
    'répertoire de départ = répertoire du ficher actuel
    'sRep = ThisWorkbook.Path
    sRep = "C:\tototo\tititi"      '<- changer le répertoire de sauvegarde
    
    'répertoire de sauvegarde
    If Cells(Target.Row, "E") = "N" Then
        sRep = sRep & "\NC non avéré\"
    ElseIf Cells(Target.Row, "E") = "Y" Then
        If Cells(Target.Row, "D") = "" Then
            sRep = sRep & "\NC non corrigé\"
        Else
            sRep = sRep & "\NC corrigé\"
        End If
    Else
        Exit Sub        'Problème
    End If

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 205
Messages
2 086 199
Membres
103 156
dernier inscrit
Ludo94130