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 :

Lien Dynamique entre deux feuilles


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    architecte
    Inscrit en
    Avril 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : architecte
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2016
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Lien Dynamique entre deux feuilles
    Bonjour a tous,


    Je cherche à automatiser la copie de donnée d'une base de donnée "brute" vers une feuille de mise en page tout en gardant un lien dans les deux sens pour pouvoir modifier les données..
    Pour être plus concret:

    - l'exercice concerne une liste de porte pour un bâtiment. Le dit bâtiment est modélisé en maquette numérique (Model BIM) dans laquelle toute les informations relatives aux portes sont stockées. Il est ensuite possible d'extraire ces données sur une feuille excel par ex "Base de donnée brute" non mise en page. (cf. print screen) Nom : Capture 1.JPG
Affichages : 440
Taille : 268,3 Ko

    - Il me faut ensuite mettre en page ces données sur une autre feuille du classeur ex: "Presentation". (cf. print screen) Nom : Capture 2.JPG
Affichages : 398
Taille : 165,6 Ko
    - Ce fichier est ensuite envoyé a différents spécialistes qui modifient les différents champs selon leurs besoins dans la feuille "Presentation".
    - Les données sont ensuite réintégrées dans le model BIM. Mais cela nécessite de mettre a jour la feuille "base de donnée brute" qui est ensuite ré-importé dans le model BIM..

    Je cherche donc un moyen d'avoir un lien "dynamique" dans les deux sens entre ma feuille de mise en page "Presentation" et ma feuille "Base de donnée brute". Ainsi si une modification est apportée dans la feuille de présentation, celle-ci est directement reportée dans la base de donnée qui peut ensuite être réintégrée au model BIM. Pas de soucis pour copier coller les données mais je ne vois pas comment garder ce double lien. Est-ce que vous auriez quelque piste a me donner?

    Cordialement
    Till

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Tu ne peux pas.
    La meilleure solution est d'avoir deux macros, une pour chaque "sens" de mise à jour.

    Pour vraiment faire ce que tu décris, ce n'est pas par un tableur qu'il faudrait passer mais par une SGDB.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Candidat au Club
    Homme Profil pro
    architecte
    Inscrit en
    Avril 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : architecte
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2016
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Bonjour Menhir

    Merci de ta réponse. Je vais donc faire deux macros..

    Pour ma culture perso et si tu as un peu de temps tu pourrai me détailler un peu plus comment fonctionnerai une SGDB ? Qu'est ce que c'est, qu'est ce que cela nécessite (logiciel, connaissances, temps,...)

    Bonne journée

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 148
    Points : 105
    Points
    105
    Par défaut
    Bonjour TillF,

    Un SGBD est un Système de Gestion de Base de Données comme Access par exemple.
    Tu devras connaître le language SQL par contre.
    Niveau temps, tout dépend de toi si tu connais le SQL ou si tu te familiarise vite avec ou pas.

    Si t'as besoin de plus de précision, n'hésite pas

  5. #5
    Candidat au Club
    Homme Profil pro
    architecte
    Inscrit en
    Avril 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : architecte
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2016
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Bonjour Sebfch,


    Merci pour ces précisions.

    Cela m'intéresserai de creuser un peu la chose! Mais il faut voir si cela en vaut la peine... Au final, il faut que cet outils puissent être utilisé par des personnes n'ayant que des connaissances très très basiques. De plus, il faut pouvoir passer par un format excel pour la saisie car c'est le seul "standard" que l'on peut utiliser avec d'autre entreprise (surtout les entreprise de petite taille). En ce basant sur ces paramètres est ce que tu pense que le jeux en vaut la chandelle?


    Je ne connais pas le langage SQL mais je me familiarise assez vite avec ce qui touche l'informatique. De plus j'aime assez chercher par moi même et apprendre dans ce domaine donc je ne serai pas contre de tenter l'affaire!
    Peut-être tu peux me conseiller quelques bon tutos ou dans quelle direction chercher... le plus dur étant souvent de poser des noms sur des choses/concept que l'on ne maitrise pas.

    Merci!

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 148
    Points : 105
    Points
    105
    Par défaut
    Access se rapproche beaucoup de ce que tu veux faire et de tes capacités car tu peux programmer en VBA dessus aussi.
    Il te manquera juste la partie en SQL où il faudra apprendre.
    Tu peux te renseigner ICI. T'as des renseignements sur la programmation VBA Access ainsi que l'insertion de SQL dans VBA.
    Pour le language SQL, regarde ICI.


    Après, est-ce que ça vaut le coup ça je ne sais pas.. Niveau difficulté ça ne sera pas beaucoup plus complexe qu'avec Excel et puis les "débutants" n'auront pas à toucher au code et avec une bonne interface ça passe.
    Le problème c'est qu'Access est payant donc s'ils ne veulent pas investir t'as le choix avec un autre SGBD mais gratuit (Postgre, MySQL, FireBird..).
    Si t'as besoin tu pourras toujours connecter ton SGBD à Excel.

  7. #7
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par sebfch Voir le message
    Un SGBD est un Système de Gestion de Base de Données comme Access par exemple.
    Pour faire bon poids, on peut citer les alternatives libres (et gratuites) :
    LibreOffice Base :
    https://fr.wikipedia.org/wiki/LibreOffice#Base
    http://fr.libreoffice.org/discover/base/

    OpenOffice Base
    https://fr.wikipedia.org/wiki/Base_%28logiciel%29
    http://www.openoffice.org/fr/Produits/
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  8. #8
    Candidat au Club
    Homme Profil pro
    architecte
    Inscrit en
    Avril 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : architecte
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2016
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Ok je vais voir ca!

    Merci pour vos réponses en tout cas!

  9. #9
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Bonjour,
    Désolé j'arrive un peu tard, car la discussion est fermé, mais bon j'ai eu une petite idée, après à vous de me dire si elle est bonne ou pas,
    mais si c'est le cas, @TillF pourra en profiter si il repasse par là et si ça lui convient.

    Certe c'est un bricolage mais ça peu dépanné après faut voir si cela peut être adaptable.
    là je suis partie du principe que l'adresse A1 de la donnée est = à l'adresse A1 de la présentation
    ce qui est surement pas le cas d'où trouver le moyen de l'adapter selon les conditions (il faudra trouver le moyen de faire correspondre les données aux bonnes adresses) et si c'est possible;
    une troisème feuille (Save) qui elle devra être cachée pour sauvegarder la dernière donnée commune.

    Fichier test : Event Wb.xls
    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
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim Rw As Long, Col As Long
     
    Rw = Target.Row
    Col = Target.Column
     
        If Feuil1.Cells(Rw, Col) = Feuil2.Cells(Rw, Col) Then
            Feuil3.Cells(Rw, Col).Value = Feuil1.Cells(Rw, Col).Value
        ElseIf Feuil1.Cells(Rw, Col) <> Feuil3.Cells(Rw, Col) Then
            Feuil2.Cells(Rw, Col).Value = Feuil1.Cells(Rw, Col).Value
            Feuil3.Cells(Rw, Col).Value = Feuil1.Cells(Rw, Col).Value
        ElseIf Feuil2.Cells(Rw, Col) <> Feuil3.Cells(Rw, Col) Then
            Feuil1.Cells(Rw, Col).Value = Feuil2.Cells(Rw, Col).Value
            Feuil3.Cells(Rw, Col).Value = Feuil2.Cells(Rw, Col).Value
        End If
     
    End Sub
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  10. #10
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Re,
    Dans le cas d'un simple décalage des adresses cellules entre la base et la présentation des données ,
    à mon avis un simple Offset suffirait

    Edit : petite modification du code pour que cela soit plus juste (ajout des .value au niveau des If)
    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
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim Rw As Long, Col As Long
     
    Rw = Target.Row
    Col = Target.Column
     
        If Feuil1.Cells(Rw, Col).Value = Feuil2.Cells(Rw, Col).Value Then
            Feuil3.Cells(Rw, Col).Value = Feuil1.Cells(Rw, Col).Value
        ElseIf Feuil1.Cells(Rw, Col).Value <> Feuil3.Cells(Rw, Col).Value Then
            Feuil2.Cells(Rw, Col).Value = Feuil1.Cells(Rw, Col).Value
            Feuil3.Cells(Rw, Col).Value = Feuil1.Cells(Rw, Col).Value
        ElseIf Feuil2.Cells(Rw, Col).Value <> Feuil3.Cells(Rw, Col).Value Then
            Feuil1.Cells(Rw, Col).Value = Feuil2.Cells(Rw, Col).Value
            Feuil3.Cells(Rw, Col).Value = Feuil2.Cells(Rw, Col).Value
        End If
     
    End Sub
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  11. #11
    Candidat au Club
    Homme Profil pro
    architecte
    Inscrit en
    Avril 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : architecte
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2016
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Salut RyuAutodidacte,


    Merci de tes réponses, cela se rapproche effectivement de ce que je souhaites faire. Je vais investiguer en partant de ta base!

    Bonne journée
    TillF

  12. #12
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Re,
    De rien. Juste une petite indication : j'ai noté que la copie par macro n'était pas pris en compte au niveau de la mise à jour entre les feuilles automatiquement entre base de donnée "brute" et présentation (le 1er envoi de données par macro est à faire sur les 2 feuilles => récupération de la base puis transfert pour la mise en forme),
    il faut validé manuellement pour que la gestion d'évènement soit pris en compte, ce qui n'est pas gênant niveau utilisateur qui est censé faire ses modifs manuellement (la règle pour l'utilisateur est de toujours validé la cellule qui change en entrant dedans puis Enter)
    On peut faire des copier/coller avec les raccourcis mais il faut aussi valider la cellule manuellement pour éviter des erreurs

    Si des pros ont une solution à ce problème svp c'est cool
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  13. #13
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par RyuAutodidacte Voir le message
    Si des pros ont une solution à ce problème svp c'est cool
    Ca a déjà été dit : la solution vraiment "pro" ce serait de passer par une basse de donnée.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  14. #14
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Tout à fait d'accord, mais sans les connaissances requises du demandeur, le facteur temps peu jouer et en attendant de passer à une version plus pro, une proposition intermédiaire peut être très utile. Surtout si c'est dans un besoin immédiat. Ça permet d'étudier la version pro et de la mettre en place par la suite.
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

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

Discussions similaires

  1. [XL-2003] créer un lien hypertexte entre deux feuilles
    Par fllyann dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/01/2011, 15h49
  2. liens entre deux feuille excel
    Par LUDOVIC49 dans le forum Excel
    Réponses: 2
    Dernier message: 06/02/2010, 11h30
  3. Lien entre deux feuilles
    Par Superman69 dans le forum Excel
    Réponses: 1
    Dernier message: 06/05/2008, 10h26
  4. Lien hypertexte entre deux formulaires
    Par Mario Rousson dans le forum Access
    Réponses: 5
    Dernier message: 04/10/2006, 10h17
  5. Faire décompter le temps restant dynamiquement entre deux dates
    Par carmen256 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 25/07/2006, 17h20

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