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

Macros et VBA Excel Discussion :

Mise à jour conditionnelle de liaisons entre 3 fichiers


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 217
    Par défaut Mise à jour conditionnelle de liaisons entre 3 fichiers
    Bonjour,
    voici la description de mon problème.

    J’ai un fichier principal, et deux fichiers secondaires.

    Pour simplifier (en ne parlant que des champs qui sont utiles pour comprendre le problème) Le fichier principal contient comme colonnes :
    - un numéro unique d’identification
    - une description (champ texte)
    - un critère (deux valeurs A ou B possibles)
    - une date.

    J’ai un fichier secondaire pour les valeurs A, un autre pour les B.
    Ces fichiers secondaires (en partie remplis par le principal) contiennent comme champs:
    - un numéro unique d'identification (rappel de celui contenu dans le fichier principal).
    - une date à saisir manuellement

    Au niveau de ce que je désire :
    - le premier fichier modifié sera toujours le principal ; en y saisissant le numéro, la description et le critère A ou B qui correspond. La date n’est pas renseignée.
    - Je dois avoir une liaison avec les autres fichiers, en fonction du critère A ou B le numéro d’identification doit apparaître dans le fichier secondaire correspondant, à la suite des autres numéros déjà enregistrés. Rien ne se passe dans le fichier secondaire qui correspond à l’autre critère.
    - Une date est ensuite ajoutée manuellement dans le fichier secondaire à la ligne qui vient d’être ajoutée : cette date doit être remontée par le biais de la liaison dans la colonne date du fichier principal, et ajoutée au champ date de la ligne correspondant au numéro d’identification.

    J’ai réussi à faire ce traitement pour un critère unique, à l’aide de liaisons entre mon fichier principal et un modèle de fichier secondaire, de cette manière :
    - je remplis mon fichier principal, sauf la date.
    - Dans le fichier secondaire, dans la colonne numéro je compare à la cellule de la ligne correspondante du fichier principal ; s’il y a un numéro entré je le recopie (sinon la case reste blanche grâce à une mise en forme conditionnelle).
    - Je ramène de même la date du fichier secondaire vers le principal, en la recopiant dès qu’elle existe (et donc qu’elle a été entrée) sur mon fichier principal (toujours comparaison par rapport aux lignes) – sinon s’il n’y a pas de date entrée elle reste blanche grâce à la mise en forme conditionnelle.

    Je n’arrive pas à adapter cette méthode au cas avec deux critères car je compare les tableaux ligne par ligne. Il faudrait :
    - que je recopie le numéro d’identification principal dans le fichier secondaire correspondant au critère entré dans ma cellule critère (pas d’action sur l’autre fichier secondaire).
    - Qu’une fois que la date est saisie dans ce fichier secondaire, elle soit recopiée dans mon fichier principal pour remonter l’info (à l’aide du numéro d’identif).

    Je suis débutant et je ne sais pas comment m’y prendre, que me conseilleriez-vous ?
    Merci d'avance pour vos réponses

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Pour la méthode... (...)
    Comment démarres-tu ta recherche ? Depuis le fichier principal ou depuis le/les fichiers secondaires ?
    Je précise ma question : Au départ, où lis-tu le numéro d’identification pour aller le comparer dans l'autre fichier ? Tu lis dans le fichier 1 puis tu recherches ce N° dans le fichier secondaire ou le contraire ?

    Seconde question : Quand tu dis que tu as deux critères A ou B, ces critères sont-ils dans la même colonne ?

    Troisième question : Tu dis
    "- Une date est ensuite ajoutée manuellement dans le fichier secondaire à la ligne qui vient d’être ajoutée"
    A quel moment ajoutes-tu cette ligne ?

  3. #3
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 217
    Par défaut
    Pour te répondre:
    Mon problème vient justement du fait que j'ai deux critères (critère étant l'entête et pouvant pour chaque ligne prendre la valeur A ou B).
    Les descriptions de fichiers que j'ai faites correspondent aux entêtes de colonne, l'utilisateur qui travaille sur les fichiers travaille ligne par ligne pour chaque affaire.

    Le fichier principal est rempli en premier,avec tous les champs de la ligne sauf la date.

    En fonction de la valeur du critère qu'il remplit sur cette ligne (A ou B), le numéro d'identification correspondant doit "apparaître" sur le fichier secondaire adéquat (A ou B selon le critère), à la suite des numéros précédents.Pour répondre à ta question c'est donc chacun des fichiers A et B qui doivent lire le principal, et récupérer les numéros pour les lignes qui ont respectivement pour critères A et B.

    Sur chacun de ces fichiers A et B,un utilisateur (différent sur chacun des fichiers) renseignera la date à l'aide d'informations qu'il possède (quand je parlais de la ligne ajoutée,je parlais de celle avec le numéro qui vient d'apparaître sur le fichier secondaire mais pour laquelle il n'y a encore aucune date de renseignée).

    Pour terminer c'est le fichier principal qui doit récupérer ces dates pour chacun des numéros, et se mettre à jour.
    Le but est donc de scinder en deux les informations correspondant à chacun des critères afin qu'elles soient renseignées par quelqu'un possédant l'info,puis de les remonter; je dois m'adapter à cette problématique et je ne peux pas la modifier.

    Merci pour votre aide,
    t

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Citation Envoyé par drthodt
    Sur chacun de ces fichiers A et B, un utilisateur (différent sur chacun des fichiers) renseignera la date à l'aide d'informations qu'il possède
    Donc chaque utilisateur (utilisateur du fichier A ou utilisateur du fichier B) a un critère de recherche...
    Ai-je bien compris ? Je n'ai pas l'impression...

  5. #5
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 217
    Par défaut
    Non personne ne recherche rien il y a seulement des saisies de données et des champs qui doivent se mettre à jour automatiquement.

    J'ai trois fichiers avec trois utilisateurs différents.
    Tu as le fichier principal avec comme colonnes: numéro | description | critère | date
    avec critère qui peut être égal à A ou B.
    Un fichier secondaire A avec comme colonnes: numéro | date
    Idem pour le fichier secondaire B.
    Un utilisateur distinct par fichier.

    1. Dans un premier temps l'utilisateur du fichier principal rempli tous les champs de la ligne,sauf date (ex. 15 | vert | A | [champ vierge] ).

    Le fichier secondaire A doit contenir tous les numéros du fichier principal pour lequel l'utilisateur aura renseigné la colonne critère avec A (ces numéros doivent être récupérés par une liaison).
    Ici l'action à automatiser: récupérer sur une nouvelle ligne du fichier principal (dès qu'elle est saisie) la valeur du numéro (ici 15) et la recopier sur la première ligne vide du champ numéro du fichier secondaire qui liste toutes les valeurs correspondant au critère renseigné sur le fichier principal (ici A).
    Dans mon exemple comme le critère de ( 15 | vert | A | [champ vierge] ) vaut A, mon fichier secondaire A vaudra ( 15 | [cellule vide car rien n'a été saisi]).
    Si critère avait valu B sur mon fichier principal, c'est mon fichier secondaire qui aurait été rempli avec la valeur 15.

    2. Un utilisateur renseigne la date sur mon fichier secondaire A: ma ligne passe à ( 15 | 22/11/2007).Cette date doit être récupérée ensuite et mise à jour dans le champ vierge de mon fichier principal,qui doit devenir (15 | vert | A | 23/11/2007).

    A chaque nouvelle ligne saisie dans mon fichier principal, je dois donc:
    - recopier mon numéro dans le fichier A ou B en fonction de la valeur du critère (c'est pour ça que j'ai appelé mon sujet mise à jour conditionnelle), à la suite des numéros déjà dans le fichier.
    - dès que la date correspondante au numéro est saisie dans mes fichiers A ou B, mettre à jour le champ date de mon fichier principal en la récupérant sur le fichier secondaire correspondant.
    En espérant avoir mieux décrit le problème,
    t

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Ok. Je comprends mieux (?!?...) enfin, je crois.
    Donc, tous les tests doivent se faire en cours de saisie.
    En un premier temps, le changement ou la saisie d'une valeur sur la dernière ligne du fichier principal entraînera la copie de la cellule de la colonne Numéro de la même ligne dans le fichier secondaire A ou B selon le critère lu ds la colonne Critère
    Tu dis déjà si c'est bien ça, on verra ce qu'on fait en un deuxième temps pour la date...
    A+

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

Discussions similaires

  1. [PPT-2013] Mise à jour automatique des liaisons avec un fichier excel 2013
    Par Aby55 dans le forum Powerpoint
    Réponses: 1
    Dernier message: 08/04/2015, 13h48
  2. Réponses: 1
    Dernier message: 02/12/2005, 14h07
  3. mise à jour automatique de champs entre 2 tables
    Par romdyane dans le forum Access
    Réponses: 5
    Dernier message: 11/10/2005, 18h51
  4. Mise à jour d'une table avec un fichier csv
    Par blackangel dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 26/05/2005, 14h46
  5. Mise à jour conditionnelle
    Par Tapioca dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/06/2004, 08h48

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