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 :

[VBA-E]Relier 2 classeur entre eux


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Points : 451
    Points
    451
    Par défaut [VBA-E]Relier 2 classeur entre eux
    Bonjour à tous,
    je souhaiterais savoir comment faire en visual basic pour relier 2 classeur entre
    Par exemple si on a un classeur "source" et un "destination"
    comment dire que le contenu de la case A1 du classeur "source" alimente le contenu de la case B2 du classeur "destination"
    je sais que en ligne de commande il suffit de mettre dans le classeur destination, dans la case B2 un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'C:\Mes documents\Exel\Fichier Source\[source.xls]Feuil1'!$A$1

  2. #2
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Utilises l'enregistreur de macro et vois comment VBA écrit celà : je viens de le faire sans problème..

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Points : 451
    Points
    451
    Par défaut
    Ha oui c'est vrai que je n'y avais pas pensé
    j'ai donc eu cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveCell.FormulaR1C1 = _
            "='C:\Mes documents\Exel\Fichier Source\[souce.xls]Feuil1'!R1C1"
    seulement je voudrai compliqué un peu la chose en mettant une variable dans le nom du fichier source par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dim i as Integer
    Dim j as Integer
    if j=30 
    then i=1
    else i=2
    ActiveCell.FormulaR1C1 = _
            "='C:\Mes documents\Exel\Fichier Source\[souce i.xls]Feuil1'!R1C1"
    ce code marche surement pas masi c'est pour faire comprnedre mon souhait
    ce que je ne sais pas c'est dans la formule ActiveCell.FormulaR1C1 ce que je dois changer dans le nom du fichier (mettre juste un i ca marche pas )

  4. #4
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Tiens ! Tiens ! comme c'est drôle !

    Quand j'utilise l'enregistreur de macro et que je vais voir ce qu'y a écrit Monsieur VBA, j'obtiens tout autre chose ...
    Il va peut-être falloir que je fasse "réviser" ma machine ou que je me procure une autre version d'Excel ?
    A moins que je ne fasse des gestes différents ...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Points : 451
    Points
    451
    Par défaut
    ???

    ba écoute moi j'obtient ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub Macro3()
    '
    ' Macro3 Macro
    ' Macro enregistrée le 25/01/06 par l999999
    '
     
    '
        ActiveCell.FormulaR1C1 = "=[source.xls]Feuil1!R1C1"
        Range("B3").Select
    End Sub
    j'ai enlev' ce qui n'était pas nécessaire tout à l'heure

  6. #6
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveCell.FormulaR1C1 = _ 
            "='C:\Mes documents\Exel\Fichier Source\[souce " & i & ".xls]Feuil1'!R1C1"

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Points : 451
    Points
    451
    Par défaut
    merci DarkVader ca semble marcher (la il trouve pas le fichier mais je pense qu'il doit y avoir une erreur dans le chemin c'est tout)

    je vais vérifier puis affaire résolu

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Points : 451
    Points
    451
    Par défaut
    Exact il y avait juste un espace de trop apres souce : mon fichier s'appel source2 et non source 2
    (ca m'arrange que j'ai fais la faute ainsi on sait de quoi je parle sinon on aurai pu confondre avec le nom du repertoire)

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Points : 451
    Points
    451
    Par défaut
    bonjour le forum j'ai un souci sur un lien entre 2 fichiers depuis que j'ai déplacé mes fichiers du coup j'aimerai utilisé la fonction ActiveWorkbook.Path pour me repérer ainsi j'aurai plus de problème

    mais je n'arrive pas à écrir la ligne qui lie les 2 fichiers

    ca doit ressembler à ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    chemin = ActiveWorkbook.Path
     ActiveCell.FormulaR1C1 = _
                =chemin & "\[Mensuel1]Feuil1'!R" & Ligne2 & "C" & Ligne"

    en sachant que ligne2 et ligne sont bien initialisé avant que dois je changer?

  10. #10
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Ils ne s'appellent plus quelquechose.xls , tes fichiers sources?

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Points : 451
    Points
    451
    Par défaut
    en fait je suis aussi passé de excel 97 a un plus récent qui lorsque on est sur l'explorer on ne voit pas le .xls


    il faut que je le laisse?

    ps de toute facon la syntaxe est pas bonne c'est plus la ma question

  12. #12
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Non non non non non, le ".xls" est toujours là, et plus que jamais.
    Ce n'est qu'une option d'affichage, qui le fait disparaître.
    Et tu as un dernier " tout à la fin de ton expression qui ne me plait pas: ça fait un nombre impair de " , et ça, c'est mauvais signe...

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Points : 451
    Points
    451
    Par défaut
    ca m'enerve j'y arrive pas !!

    en plus je comprend pas avec l'ancienne syntaxe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveCell.FormulaR1C1 = _
                "='[Mensuel1]Feuil1'!R" & Ligne2 & "C" & Ligne
    il me demande une mise a jour les valeurs et ca l'aire de rechercher le fichier source pourtant il me met bien dans le bon répertoire

  14. #14
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Mais si tu mets ça:
    chemin = ActiveWorkbook.Path
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveCell.FormulaR1C1 = _ 
                "=" & chemin & "\[Mensuel1.xls]Feuil1'!R" & Ligne2 & "C" & Ligne
    , ça donne quoi?
    Et c'est pas bizarre de donner "Ligne" comme nom à la variable qui contient le numéro de colonne?

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Points : 451
    Points
    451
    Par défaut
    j'ai une erreur : erreur définie par l'application ou par l'objet

    et pour le nom de la variable je sais c'est bizarre mais en fait les ligne de ma destination correspondent a des colonne de ma source ...

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Points : 451
    Points
    451
    Par défaut
    en gardant mon ancien code (le dernier que j'ai mis ca marche uniquement à la condition que les 2 fichiers soit ouvers dans la meme fenetre excel

  17. #17
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    bonsoir

    tu peux tester cette synthaxe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveCell.FormulaR1C1 = _ 
    ="='" & chemin & "\[Mensuel1.xls]Feuil1'!R" & Ligne2 & "C" & Ligne

    bonne soiree
    michel

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Points : 451
    Points
    451
    Par défaut
    Merci Michel cela fonctionne tres bien meme lorsque le fichier source est fermé

    j'ai tout de meme changer un peu la syntaxe car telle quel il ne l'acceptais pas


    voici le résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ActiveCell.FormulaR1C1 = "='" & chemin & "\Sauvegarde\[Mensuel1.xls]Feuil1'!R" & Ligne2 & "C" & Ligne

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

Discussions similaires

  1. relier des points entre eux avec une boucle
    Par persé dans le forum MATLAB
    Réponses: 2
    Dernier message: 30/04/2015, 10h04
  2. relier deux points entre eux
    Par persé dans le forum MATLAB
    Réponses: 2
    Dernier message: 28/04/2015, 14h03
  3. Représentation graphique: comment relier les points entre eux?
    Par jordane746 dans le forum ODS et reporting
    Réponses: 0
    Dernier message: 01/06/2014, 23h54
  4. Relier des points entre eux
    Par lileric13 dans le forum MATLAB
    Réponses: 2
    Dernier message: 28/01/2013, 14h32
  5. Réponses: 0
    Dernier message: 10/04/2010, 01h40

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