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

Access Discussion :

Mettre a jour plusieurs cellules excel dont les precedentes vallent X via Access [AC-2013]


Sujet :

Access

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Février 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2017
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Mettre a jour plusieurs cellules excel dont les precedentes vallent X via Access
    Hello a tous,

    Je suis en plein developpement Access d'un outil de generation de fiche de production automatique.
    Dans cet outil, l'une des fonctions est entre autre de lire des valeurs numeriques dans un fichier Excel afin de realiser des calculs et de les reinjecter dans ce meme fichier Excel.

    Le hic c'est que ces valeurs ne sont pas necessairement toujours a la meme position et je dois donc trouver un moyen de les rechercher.

    La mecanique est la suivante : je cherche a calculer un poids total pour un process sachant qu'un process peut etre constitue d'une ou plusieurs operations avec chacune (ou non) un poids propre. Un poids est lie a un code produit, que je cherche egalement a recuperer pour gerer mes stocks. Voici un screen de ce a quoi ressemble une ligne d'operation, je cherche a recuperer les valeurs des cellules LBS/MFT et RAW MATERIAL CODE.

    Nom : Cellules Excel.jpg
Affichages : 125
Taille : 33,8 Ko

    Ma reflexion va dans tous les sens mais je n'arrive jamais a mettre une reelle solution technique en face de l'idee trouvee. Et surtout, chacune des idees trouvees a un inconvenient.

    Mes pistes sont les suivantes:
    - Spliter ces deux cellules en deux, placer le nom du champ juste au dessus de la valeur en cellule(ligne, colonne), effectuer une recherche de la chaine de caracteres (LBS/MFT ou RAW MATERIAL CODE) et recuperer la valeur de la cellule(ligne +1, colonne).
    Mais est il possible de chercher du texte dans une grande plage de cellules et de renvoyer sa position ?

    - Creer un tableau annexe a la fiche de production qui reprend tous les poids et le code des matieres premieres de facon synthetique.
    Cette solution est la plus simple a mettre en oeuvre mais requiert une action supplementaire de l'utilisateur (remplir le tableau) et ce que l'on veut, c'est justement reduire l'action utilisateur.

    Quelqu'un aurait-il une idee pour realiser cette fonction ?

    Merci d'avance pour votre aide!

    Cordialement,
    Adrien62400.

  2. #2
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    740
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 740
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    il semble que ta problematique soit double, voici quelques commentaires

    D'une part la qualite et l'exhaustivite du template excel: il faut que celui ci soit rempli de facon a ce qu'il n'y ait aucune ambiguite dans le traitement Access futur. S'il faut aider l'utilisateur avec des listes deroulantes de master data, il faut le faire, mais ca oblige a s'assurer que l'utilisateur travaille toujours avec la derniere version du template... ceci dit, au final il faut se donner le but d'un formulaire en ligne.

    D'autre part, l'integration dans Access: tu peux nommer les cellules dans Excel, et utiliser ce nom dans le programme d'automation office. Ensuite si les donnees ne sont pas toujours les memes dans Excel, il faut differencier l'input et l'output en 2 etapes: tu crees une table (ou plusieurs) qui reflete l'input du template juste apres l'automation office, puis tu crees une programme de controle/transformation dans les tables definitive.
    Meme chose pour les exports

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Février 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2017
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Hello merci pour cette reponse cependant j'avais deja trouve une solution!

    Si jamais ca peut aider quelqu'un, voici ce que j'ai mis au point :

    Les valeurs que je cherchais a recuperer etant dans des colonnes connues et espacees d'un nombre constant de cellules, j'ai juste eu a utiliser une boucle for avec le pas = a l'espacement de mes cellules (16 lignes ici en l'occurrence) et la condition de sortie une variable entiere Z qui s'incremente si les cellules lues sont vides, au bout de Z = 10, je considere que je suis a la fin du fichier.
    J'ai stocke les valeurs lues dans un tableau dynamique multidimensionnel.
    Et je reinjecte ce tableau dans un nouveau fichier excel en effectuant les traitements que je desire.

    Du coup, concretement ca ne prend que quelques lignes (hors initialisation de l'app excel) :

    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
    18
    19
     Do While z < 10 
            If xlSheet.cells(16 + i, 4) <> 0 And xlSheet.cells(16 + i, 6) <> 0 Then
                StockTab(j, 0) = Me.ordernbr
                StockTab(j, 1) = xlSheet.cells(16 + i, 4)
                StockTab(j, 2) = (Me.qty / 1000) * (1 + (Me.scrap / 100)) * xlSheet.cells(16 + i, 6)
                i = i + 12
                j = j + 1
            Else
                i = i + 12
                z = z + 1
            End If
        Loop
     
        For k = nblig + 1 To UBound(StockTab, 1) + nblig 'boucle sur la 1ere dimension
            xlSheet.cells(k, 1) = StockTab(s, 0)
            xlSheet.cells(k, 2) = StockTab(s, 1)
            xlSheet.cells(k, 3) = StockTab(s, 2)
            s = s + 1
        Next k

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/10/2010, 11h15
  2. mettre en forme une cellule excel a partir d'access
    Par moimemessssssssss dans le forum VBA Access
    Réponses: 3
    Dernier message: 21/08/2010, 23h23
  3. [XL-2003] Mettre en couleur plusieurs cellules vides
    Par Paxaranne dans le forum Excel
    Réponses: 1
    Dernier message: 23/02/2010, 23h23
  4. [PPT-2003] Copier le contenus de plusieurs cellules Excel dans une seule liste-texte ppt
    Par mimilll dans le forum VBA PowerPoint
    Réponses: 8
    Dernier message: 02/06/2009, 19h45
  5. Mettre a jour plusieurs lignes d'une table
    Par Tartenpion dans le forum Langage SQL
    Réponses: 4
    Dernier message: 17/12/2005, 18h50

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