Code VBA pour remplir la base de donnée
Bonjour et joyeux noël
Pour mon cadeau de noël, pouvez vous m'aider a trouver un code VBA pour remplir la base de donnée.
Dans la feuille "DSI" la cellule AG24 se trouve la référence du dossier a remplir ,le dossier comporte des séquences
"Pouvez-vous m'aider à trouver un code VBA qui me permettrait de sauvegarder toutes les séquences dans la base de données, feuille 'BASE-DSI' ?"
Sauvegarde dans la ligne, en prenant en compte la référence du dossier
ci joint le fichier Excel
MERCI ET BONNE FETE
Bonjour Excel38,
Tout d'abord, pouvez-vous préciser dans votre profil votre version d'Excel et votre environnement de travail Windows ou Mac, c'est utile pour pouvoir apporter une réponse adaptée à votre configuration.
Concernant votre demande, quelques points à préciser :
- La base "BASE-DSI" a des séquences de 30 à 200 et le document d'intervention a des séquences supplémentaires 210 et 220 :
- Il faut ignorer ces séquences ?
- C'est un oubli dans la base "BASE-DSI" ?
- La consolidation des données doit-elle se faire dans le même classeur que celui contenant le doc d'intervention ?
- Si oui : cela sous-entend qu'il n'y a qu'un seul utilisateur à un instant T et que la mise à jour du doc d'intervention et la mise à jour de la base sont liées sinon les données du doc d'intervention seront perdues et à ressaisir à moins que chaque utilisateur dispose d'un fichier et qu'il ne consolide que ses propres interventions.
- Sinon : s'il y a plusieurs utilisateurs ayant chacun un exemplaire du doc d'intervention à consolider dans un seul classeur, il faut gérer la mise à jour concurrentielle de la base DSI
- Comment envisagez vous la mise à jour ?
- Dans la base, la 1ère ligne comporte des formules ce qui peut être compatible avec les libellés des opérations s'ils sont fixes mais pas pour les autres données qui vont varier à chaque mise à jour du document d'intervention. D'après les explications, je comprends qu'il faut copier les données, c'est bien cela ?
- Avant de déclencher la mise à jour, des contrôles doivent ils être effectués (par exemple, absence de message dans les 3 lignes sous le tableau) ?
- Dans l'exemple, le DRT n'existe pas dans la base d'où la question :
- Si le DRT existe déjà dans la base :
- Création d'une nouvelle ligne et reprise des données "Intitulé activité, "OT" et "Repère fonctionnel" (non spécifiés dans les explications) ?
- Mise à jour de la ligne existante, y compris "Intitulé activité, "OT" et "Repère fonctionnel" ?
- Si le DRT n'existe pas dans la base :
- Création d'une ligne avec prise en compte des données "Intitulé activité, "OT" et "Repère fonctionnel" ?
- Si le DRT existe déjà dans la base :
Cdlt,
Cylfo
Bonjour et merci beaucoup pour votre aide
J'utilise la version d'Excel Pro 2019 et mon environnement de travail est Windows 10.
Dans la base "BASE-DSI", les séquences commencent à partir de 30 jusqu'à 200, en effet, dans le document de suivi d'intervention "DSI", il ne faut pas tenir en compte les séquences 10 et 20, car elles restent identiques et inchangées dans le "DSI" pour chaque intervention. Et c’est pareil pour les 2 dernières séquences il me semble pas très utile de les sauvegarder
Les instructions à mettre dans le "DSI" débutent à la séquence 30 et peuvent aller jusqu’à la séquence 200. la aussi il me faudra adapter un code VBA qui par exemple permettrait d'identifier la dernière cellule vide du "DSI" et les deux dernières séquences pour ne pas copier des cellules inutiles.
1. La consolidation des données doit-elle se faire dans le même classeur que celui contenant le document d'intervention ?
Dans un premier temps, je dirais oui, car nous avons besoin de créer une base de données. Si chaque utilisateur dispose d'un fichier avec la "BASE-DSI" indépendante, cela permettrait de sauvegarder le travail de chacun et de consolider par la suite une base unique propre aux interventions. les données seront récupérées dans un fichier Excel unique pour la "création de la base de données de travail" commune. Nous avons environ 120 types d'interventions différents, mais qui restent répétitifs, soit environ 3000 dossiers à réaliser.
L’objectif de l’application serait de créer des dossiers depuis la base de données, ce qui permettrait de gagner énormément de temps avec beaucoup moins d’erreur.
Pour atteindre cet objectif, je réfléchis à deux solutions possibles :
- Solution 1 : Dans la feuille "BASE-DSI", colonne « A », je colle la liste des dossiers, et par un code VBA, je recherche la référence du dossier dans la feuille « Données », cellule Y3. Ensuite, je filtre la colonne « A » de la feuille "BASE-DSI" pour retrouver la référence. Si la référence existe, alors je copie les séquences.
- Solution 2 : Dans la feuille "BASE-DSI", les colonnes « A-B-C-D » sont vides, et par un code VBA, je copie/colle les références qui sont dans la feuille Données, ligne 3, ainsi que les séquences.
L'objectif de l'application sous Excel :
- Création d'un dossier de travail dans le bureau.
- Prise en compte des critères/exigences/analyse de risque.
- Récupération du DSI depuis la "BASE-DSI". si existant
- Où
- Création du DSI et sauvegarde dans la "BASE-DSI".
- Impression du DRT en PDF dans le dossier de travail.
J'ai introduit un code VBA dans un module, mais il y a des erreurs, il ne copie pas dans le bon dossier.
Pour une meilleure compréhension, je vous joins le fichier plus complet avec le code VBA.
Ci-joint le nouveau fichier.
MERCI POUR VOTRE AIDE.
Bonjour,
Concernant les infos "J'utilise la version d'Excel Pro 2019 et mon environnement de travail est Windows 10", il faudrait les mettre à jour directement dans votre profil, menu "Mon compte" (en haut à droite de la page) et "Mon profil public", indiquer par exemple "2019 FR, Win10" car le nombre de caractères est limité.
J'essaie de reformuler ce que je comprends et/ou mes nouvelles interrogations car le sujet s'étoffe un peu ...
A rectifiez en cas d'erreur et à complétez si nécessaire.
- La "BASE-DSI" servirait de référentiel commun des interventions en vue de pouvoir initialiser une nouvelle intervention qui serait similaire à une précédente.
- Dans cette base, si la 1ère séquence du DSI sauvegardé est la 50, elle est sauvegardée dans le 1er groupe de colonnes et pas dans le 3ème. C'est bien cela ?
- Servir de référentiel pour initialiser de nouvelles interventions est-elle sa principale utilisation ?
- Si oui, je vous proposerai probablement une autre présentation pour faciliter son exploitation
- ATTENTION : ce que j'ai compris implique que la "BASE-DSI" du référentiel commun est forcément indépendante de la base de consolidation de l'intervenant sinon cela voudrait dire que, soit il ne peut rechercher que dans ses propres interventions, soit que la base de chaque intervenant est remise à jour (usine à gaz)
- Onglet "Schématique" : Je ne comprends pas comment Jacques identifie que le dossier "VI_RRMA_BUG3_DRT_3D33_0001" de Paul est similaire à la nouvelle intervention référencée "VI_DCC_BUG2_DRT_2023_0002" :
- Quels sont les critères utilisés pour effectuer la recherche ?
- Pour effectuer la recherche, je vous propose plutôt d'utiliser un onglet spécifique dans le classeur de l'intervenant lui permettant d'effectuer sa recherche et d'alimenter, après validation, les onglets "DSI" et "ADR"
- Vous pourriez saisir dans la base consolidée de recherche la nouvelle référence du dossier de DRT et le n° d'OT ce qui permettrait d'effectuer un contrôle qui éliminerait le risque d'une erreur entre les références communiquées à l'intervenant et les références saisies par l'intervenant.
- C'est l'intervenant qui détermine le repère fonctionnel ?
- La "BASE-DSI" est consolidée à postériori des interventions.
- Je n'ai pas identifié par quel moyen, c'est une évolution à venir et pour l'instant c'est une opération manuelle ?
- Contre-proposition :
- Chaque intervenant consolide dans une base unique temporaire différente de la "BASE-DSI" utilisée pour récupérer les infos alimentant un nouveau DSI.
- Pourrait être mis en place dès le début.
- La "BASE-DSI" de recherche est alimentée à partir de la base temporaire après contrôle/validation des interventions
- Il faut que je réfléchisse encore sur ce point mais à priori serait réalisé dans un second temps et dans l'immédiat serait à faire "manuellement" (avec des explications fournies)
- Chaque intervenant consolide dans une base unique temporaire différente de la "BASE-DSI" utilisée pour récupérer les infos alimentant un nouveau DSI.
- Onglet "DSI" : le nouvel onglet DSI a moins de ligne que dans le 1er fichier communiqué.
- Lors de la récupération des données
- Création uniquement des lignes des séquences existantes ?
- Est-il possible que d'autres séquences soient nécessaires ?
- Si oui : proposition d'un bouton permettant d'insérer des lignes (utilisable aussi en cas de création from scratch)
- Est-il possible que d'autres séquences soient nécessaires ?
- Toutes les séquences sont présentes, les séquences non renseignées sont masquées ?
- Création uniquement des lignes des séquences existantes ?
- Colonne [AR] : présence de références qui ne sont pas utilisées dans le classeur ...
- Lors de la récupération des données
- Onglet "ADR" : Existe-t-il un référentiel des risques principaux liés à l'activité qui pourrait être utilisé pour pré-alimenter les données ?
- Si oui, quels sont les critères permettant de faire le lien entre l'intervention et ce référentiel ?
Il n'est pas exclu que j'ai d'autres questions
Cdlt,
Cylfo