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 entre fichier excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 37
    Points : 15
    Points
    15
    Par défaut Lien entre fichier excel
    Bonjour,

    je suis actuellement en stage,

    je dois réaliser un compte d'exploitation pour une entreprise et j'aimerai savoir s'il est possible de récupérer des données entre 2 fichiers excel dont un qui est généré automatiquementpar un logiciel de comptabilité! En fait, pour plus de précisions, j'ai recensé la liste de toutes les dépenses d'une entreprise qui doivent être séparé par service et regrouper ensuite dans une page excel
    et si oui, quel est le code à utiliser?

    merci beaucoup à ceux qui répondront à mon message

    scoubida42

  2. #2
    Membre confirmé Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Points : 638
    Points
    638
    Par défaut
    Bonjour,

    Voici l'inialisation de feuilles:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Set shDans = Workbooks("Liste # achem 31-01-2009.xls").Worksheets("Liste")
        Set shRecherche = Workbooks("CIBC0412 2008-12.xls").Worksheets("CIBC0412")
    Si ce n'est pas ce que tu veux, n'hésite pas!

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 37
    Points : 15
    Points
    15
    Par défaut RE
    Désolé mais ce n'est pas tout à fait ça que je veux!!j'ai dû mal m'exprimer :

    J'ai une feuille excel avec en B10 par exemple la somme de 1000€ d'une fichier a et je veux récupérer cette valeur en prendre la moitié et la mettre en D2 d'un autre fichier excel b!

    j'espère que c'est plus clair cette fois!!

  4. #4
    Membre confirmé Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Points : 638
    Points
    638
    Par défaut
    En macro ou en formule?

    Si par macro (VBA) alors mon code est correct.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Set shDans = Workbooks("Liste # achem 31-01-2009.xls").Worksheets("Liste")
        Set shRecherche = Workbooks("CIBC0412 2008-12.xls").Worksheets("CIBC0412")
     
    shDans.cells(1,1) = shRecherche.cells(3,3) /2
    Sinon, tu peux y arriver par une formule.
    Il suffit de mettre le "=" dans la cellule et de sélectionne la cellule de l'autre ficher puis faire "entrée". Le lien se fera dans la formule, il suffira de diviser par 2!

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 37
    Points : 15
    Points
    15
    Par défaut Re
    Je veux le faire en macro!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set shDans = Workbooks("Liste # achem 31-01-2009.xls").Worksheets("Liste")
        Set shRecherche = Workbooks("CIBC0412 2008-12.xls").Worksheets("CIBC0412")
     
    shDans.cells(1,1) = shRecherche.cells(3,3) /2
    Serait-il possible que tu me le détaillers parce que je ne comprends pas tout!!Par exemple, CIBC0412 , shRecherche correspondent à quoi?
    merci à toi!

  6. #6
    Membre confirmé Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Points : 638
    Points
    638
    Par défaut
    Voici avec des noms généraux pour ne pas te confondre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Dim shFichier1 As Worksheet
        Dim shFichier2 As Worksheet
    '   Lui donner le fichier (le nom) et la feuille de chaque fichier.
        Set shFichier1 = Workbooks("Fichier1.xls").Worksheets("Feuil1")
        Set shFichier2 = Workbooks("Fichier2.xls").Worksheets("Feuil1")
     
        shFichier1.Cells(1, 1) = shFichier2.Cells(3, 5) / 2
    De cette façon, la cellule A1 du fichier1 correspondrant à la moitié de la cellule E3 du fichier 2.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 37
    Points : 15
    Points
    15
    Par défaut re
    ok merci
    je crois que cette fois ça doit être bon, mais j'ai encore une autre question : les 2 fichiers .xls comment est-ce que je peux définir l'endroit où ils sont enregistrés?
    Quel est l'emplacement par défaut?

  8. #8
    Membre confirmé Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Points : 638
    Points
    638
    Par défaut
    Ce code fonctionne si les deux fichiers sont déja ouverts.

    C'est la façon la plus simple de faire le lien entre deux fichier. Si les fichiers sont fermés, il est possible de les ouvrir par un code et ensuite utiliser cette technique.
    Utilises l'enregistreur de macro pour découvrir comment faire.

    Si tu ne veux pas ouvrir de fichier, tu peux chercher dans la FAQ ou sur le forum, il existe une façon de procéder pour la manipulation de fichiers fermés.

    Bonne chance!

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 37
    Points : 15
    Points
    15
    Par défaut
    le code ne marche pas pourtant il ne me signale pas d'erreurs!!je ne comprends pas d'où ça peut venir!!

    Voici le code :

    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
    Sub MiseAJour()
        Dim Actualise As Integer
        Actualise = MsgBox("Souhaitez vous mettre les données à jour?", vbYesNo + vbQuestion, "Mise à jour")
        If Actualise = vbYes Then
     
        Dim shFichier1 As Worksheet
        Dim shFichier2 As Worksheet
    '   Lui donner le fichier (le nom) et la feuille de chaque fichier.
        Set shFichier1 = Workbooks("compte-exploitation.v3.xls").Worksheets("sommaire")
        Set shFichier2 = Workbooks("Classeur1.xls").Worksheets("Feuil1")
     
        shFichier1.Cells(3, 13) = shFichier2.Cells(3, 5) / 2
     
        End If
    End Sub
    Pourtant j'ai essayé de changer des choses mais ça ne modifie rien. Dans ma cellule C13 de sommaire il n'y a rien!!
    merci de m'aider!!!

  10. #10
    Membre confirmé Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Points : 638
    Points
    638
    Par défaut
    La prochaine fois, utilises les balises code
    Voici qui est plus clair
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub MiseAJour()
        Dim Actualise As Integer
        Dim shFichier1 As Worksheet
        Dim shFichier2 As Worksheet
     
        Actualise = MsgBox("Souhaitez vous mettre les données à jour?", vbYesNo + vbQuestion, "Mise à jour")
     
        If Actualise = vbYes Then
            Set shFichier1 = Workbooks("compte-exploitation.v3.xls").Worksheets("sommaire")
            Set shFichier2 = Workbooks("Classeur1.xls").Worksheets("Feuil1")
            shFichier1.Cells(3, 13) = shFichier2.Cells(3, 5) / 2
        End If
     
    End Sub
    Exécute ton code en mode arrêt et vérifie si tout est correct, reviens ici avec quelque chose de plus, p-e?

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 37
    Points : 15
    Points
    15
    Par défaut Re
    Bon alors j'ai testé le code que tu m'as donné, il n'y a pas d'erreurs mais à part qu'il ne change rien dans la cellule C13!il n'y a absolument aucune valeur!

    Sinon c'est quoi les balises code?

  12. #12
    Membre confirmé Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Points : 638
    Points
    638
    Par défaut
    Voici le lien pour les balises
    http://www.developpez.net/forums/d55...mode-dedition/
    Très pratique, même nécessaire.

    Pour le code,
    mon teste fonctionne parfaitement. La cellule (3,13) comme tu l'as marqué est la colonne M, as-tu regardé cette colonne? (M3)

Discussions similaires

  1. [XL-2010] Liens entre fichiers excel : problème lors d'un changement de dossier
    Par Angélique01 dans le forum Excel
    Réponses: 3
    Dernier message: 26/01/2015, 23h22
  2. Liens entre fichiers Excel
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/06/2007, 12h30
  3. liens entre fichiers
    Par ZRTst dans le forum Général Python
    Réponses: 3
    Dernier message: 13/04/2006, 15h53
  4. [VBA]Lien entre fichiers excel : Update en VBA
    Par criocaps dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/01/2006, 09h07
  5. lien entre feuille Excel
    Par corwin44 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 16/01/2006, 11h28

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