VBA est plus fort que moi

Bonsoir à tous

Je suis nouveau, je me permets de me présenter Dan étudiant en perf indus. J'ai cherché des exemples d'applications qui pourrais m'aider mais sans succès. (Je n'ai pas un très bon niveau Excel ce que j'essaie de performer )

C'est pourquoi j'ai décidé de poster ce sujet. En espérant trouver de l'aide qui me sera précieuse.

Le système

Je travaille sur un système de récolte de données me permettant ensuite d'alimenter une base de données.

Mon but : pouvoir exploiter ma base de données

Mon problème est comment alimenter ma base de données par le biais d'une macro "exporter".

Mon fichier de récolte de données se partage en plusieurs feuilles (Matin, après midi et soir), qui alimente mon tableau récapitulatif "LISTE". Ce tableau récapitulatif LISTE varie en fonction des données obtenus sur les autres feuilles.

Je souhaiterais exporter les informations de ma feuille "Liste", vers un autre fichier appelé "BDD" en fonction.

Et compléter toutes les infos du tableau BDD. Je veux comptabilisé uniquement les temps supérieurs à zéro.

Et regrouper cette info en fonction :

  • Ligne (A1)
  • La date (M1)
  • Poste (Matin, AM, Nuit, WE)
  • Code Equipe (J7, K7, L7 code varie selon les postes)
  • Code arrêt, durée arrêt, intitulé

J'ai fait plusieurs tentatives mais sans succès ...

Je vous remercie par avance pour l'aide que vous pouvez m'apporter.

Cordialement

Dan (nadsofash)

20bdd.xlsm (13.46 Ko)

Bonjour,

ça va pas être si facile que ça !

Déjà premier point aucune cellule fusionnée dans une base de données, vraiment à proscrire !

Ensuite, il faut qu'il y est une correspondance entre ta feuille "Liste" du classeur "Reporting_v.8.0.xlsm" et ta feuille "BDD" de ton classeur "BDD.xlsm" et là, ce n'est pas le cas !

Une base de données contient des champs (en colonnes) et des enregistrements (en lignes)

Pour être facile à maintenir et à interroger, une BDD doit avoir un champ "Clé unique" (numérique, alphanumérique, texte, etc...) où il ne peut y avoir de doublons

toi, tu veux coller des blocs de valeurs en plein milieu de ta base sans qu'il soit possible de savoir à quoi c'est rattaché ?

Range("J7:J51").Copy Destination:=wb_target.Worksheets("BDD").Range("G2:G46")
Range("K7:K51").Copy Destination:=wb_target.Worksheets("BDD").Range("G46:G90")
Range("L7:L51").Copy Destination:=wb_target.Worksheets("BDD").Range("G90:G134")

Je suppose que tu vas prendre des infos par ci par là dans ta feuille et que tu vas les coller dans ta base mais le risque d'erreur va être bien plus grand avec cette pratique !

Bon courage toutes fois !

bonjour

salut Theze

d'accord concernant l'identifiant unique. Le N° d'OF, la date et l'heure peuvent convenir (ça fait une sorte de clé composée)

mon avis pour l'ensemble de l'appli :

- soit faire plus pro en passant sous Access ou autre SGBD. Plus fiable, pas de macro complexe, utilisable à plusieurs.

- soit faire plus simple : une unique feuille DBB, dans laquelle on rentre les données directement les unes sous les autres sans passer par une feuille de saisie intermédiaire (durant des années, 100 000 lignes ça te fait peur ? ) Et tu fais des TCD ou des SOMMEPROD pour calculer les TRS (efficience).

Bonjour tout d'abord merci pour vos réponses,

Je souhaite plutôt m'orienter vers un outil simple. Je souhaite alimenter ma base de données (BDD) à chaque fin d'équipe.

Vous me conseillez de revoir la forme de mon tableau récapitulatif LISTE afin de faciliter l'envoie de données?

J'admets que le copier/coller n'est pas la meilleure solution.

Avez vous un codage plus efficace pour créer une boucle d'alimentation de données avec une condition uniquement les valeurs supérieures à zéro ?

MERCI

Bonjour à tous

nadsofash a écrit :

Avez vous un codage plus efficace pour créer une boucle d'alimentation de données avec une condition uniquement les valeurs supérieures à zéro ?

Un essai à tester.

J’ai calé sur la colonne K de la BDD où, à propos de la cadence, tu écris ‘’ elle se retrouve dans liste en fonction de la recette’’.

Mais il y a 3 cadences : celle du matin, celle de l’après midi et celle de la nuit. Laquelle faut –il prendre ?

Bye !

17reporting-v-9.xlsm (38.94 Ko)

Merci pour ta réponse gmb,

Si on parle de la recette traitée le matin, on prendra la cadence matin (F13 dans LISTE).

La cadence traitée en K (BDD) et la recette , que tu retrouves le Matin, sont nécessaires pour le calcul de l'efficience.

Idéalement je souhaite extraire les valeurs obtenues en fonction du matin, après midi et nuit pour les arrêts

A chaque ligne de BDD je souhaite obtenir ces informations liées à :

  • Ligne (A1)
  • La date (M1)
  • Poste (Matin, AM, Nuit, WE)
  • Code Equipe (J7, K7, L7 code varie selon les postes)
  • Produit (en fonction de la recette produit lors du poste D13, D15,D17)
  • Temps de prod (comptabilisé une seule fois dans BDD par poste)
  • Code arrêt, durée arrêt, intitulé (comptabilisé uniquement les temps supérieurs à zéro)
  • Nb de barq produit (en fonction du poste comptabilisé une fois J8,K8,L8)
  • Cadence en fonction de la recette/produit (F13, F15, F17)
  • Nb barq théorique (calculer une seule fois en fonction du temps d'ouverture)
  • Efficience (calculer une seule fois en fonction de Nb de barq produit/ Nb de barq théorique)
  • Mois
  • Année

Encore Merci

Désolé mais je ne vois pas comment remplir ce tableau.

Je renonce.

Bye

Rechercher des sujets similaires à "vba fort que moi"