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 :

Copier des données depuis un classeur fermé vers l'ouvert [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Copier des données depuis un classeur fermé vers l'ouvert
    Bonjour,
    Je sais normalement copier des données depuis un classeur/feuille externe, mais j'aimerais savoir comment faire quand celui-ci est fermé ?
    J'ai essayé avec une sorte de connexion, mais ça ne marche pas.
    Je n'ai pas forcement de code à proposer, je voudrais savoir quelle méthode utiliser, et si possible avec un exemple.
    Je voudrais lancer la macro sans qu'on me demande d'ouvrir le fichier source.

    Merci

  2. #2
    Membre expérimenté Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 724
    Points : 1 454
    Points
    1 454
    Par défaut
    Bonjour, j'ai trouvé ça pour vous dans la FAQ
    Vous devriez pouvoir l'adapter

    https://excel.developpez.com/faq/?pa...lasseursFermes

    Cordialement
    On a deux vies, la deuxième commence quand on se rend compte qu'on n'en a qu'une.
    Confucius

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    NomFichier="c:\morep\monfichier.xlsx"
        With CreateObject("ADODB.Connection")
            .CommandTimeout = 500
            .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
                & NomFichier & ";" & "Extended Properties=""Excel 12.0;HDR=YES;Readonly=true"";"
            .Open
            thisworbooks.sheets("feulle1").range.("A2").copyfromrecordset .execute("select * from [feuille1$]")
            .Close
        End With
    Dernière modification par Invité ; 14/06/2018 à 17h32.

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    .Open
        ThisWorkbooks.Worksheets("feuilleSource").Range("A1").Value = Workbooks("CeluiOuvert").Worksheets("feuilleReceptive").Range("A1").Value
    .Close
    Bonjour, et merci pour vos réponses.

    Donc après avoir fait la connexion etc, qqchose comme ça pourrait marcher ?
    Merci

  5. #5
    Invité
    Invité(e)
    Par défaut
    Non open ouvre une connexion comme si ton fichier était une base de donnée pas un fichier excel.

    Il faut faire une requête Sql.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    NomFichier="c:\momrep\CeluiFemer.xlsx"
        With CreateObject("ADODB.Connection")
            .CommandTimeout = 500
            .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
                & NomFichier & ";" & "Extended Properties=""Excel 12.0;HDR=YES;Readonly=true"";"
            .Open
            ThisWorkbooks.Worksheets("feuilleReceptive").Range("A1").copyfromrecordset .execute("select * from [feuilleSource$]")
            .Close
        End With

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci beaucoup.

    Voici mon code pour copier le contenu de la cellule A1 (source) vers la B3 (Receptive),

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ThisWorkbooks.Worksheets("feuilleReceptive").Range("B3").CopyFromRecordset .Execute("select * from [feuilleSource$A1]")
    cependant, j'ai une erreur :

    Nom : erreur.PNG
Affichages : 220
Taille : 11,6 Ko

    et des fois j'ai celle là

    Nom : erreur2.PNG
Affichages : 211
Taille : 7,4 Ko
    Les deux feuilles sont bien en local (et dans le même répertoire durant la programmation de mon projet)

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.Worksheets("feuilleReceptive").Range("A1").CopyFromRecordset .Execute("select * from [feuilleSource$A1:A1]")
    Pas d'erreur avec ce code. Il faut passer HDR a NO si nous voulons qu'une seule cellule.

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

Discussions similaires

  1. [XL-2010] Copier des données depuis plusieurs classeurs vers un classeur de Recap
    Par bdel1724 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/11/2014, 20h14
  2. copier des données d'un classeur vers un autre
    Par jackall dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 01/08/2008, 17h20
  3. Copier des données d'un fichier Excel vers des tableau Word
    Par drthodt dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 23/05/2008, 14h57
  4. Copie de données depuis un classeur fermé
    Par kiki29 dans le forum Contribuez
    Réponses: 0
    Dernier message: 15/03/2008, 18h36
  5. [VBA-E] Extraire des lignes depuis plusieurs classeurs fermés
    Par stoof dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/05/2007, 12h26

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