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 cellules depuis classeur fermé dans classeur ouvert [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 26
    Par défaut Copier cellules depuis classeur fermé dans classeur ouvert
    Bonjour à tous,

    Ayant été pleinement satisfait de vos services lors de ma précédente demande, je me permets une nouvelle fois de vous solliciter

    Voila, j'ai cherché toute la matinée, essayé un peu dans tous les sens mais rien n'y fait je n'arrive pas à obtenir le résultat que je souhaite, qui est pourtant, à mon sens, relativement simple.

    Je m'explique :

    Je dispose d'un fichier source.xlsx . Dans ce fichier, de nombreuses cellules sont remplies avec des valeurs.
    Je dispose d'un autre fichier, le fichier dest.xlsx . Ce fichier est vierge en valeurs.

    Je souhaiterais, à l'ouverture du fichier dest.xlsx, que les données contenues dans certaines cellules de source.xlsx (et non pas toute la feuille 1 par exemple), soient insérées dans dest.xlsx là ou je le souhaite .

    Voila, à mon sens c'est simple, mais je n'y arrive pas

    A noter, en réaliter j'ai plusieurs fichiers source.xlsx (différents hein), mais j'imagine que si j'arrive à faire fonctionner ce comportement pour 1 fichier, il n'y a pas de soucis pour plusieurs

    voila, je suis ouvert à toutes vos méthodes,

    Dans l'attente de vous lire,
    merci d'avance !

  2. #2
    Membre très actif Avatar de XLRATOR
    Homme Profil pro
    Comptable Analyste
    Inscrit en
    Août 2012
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable Analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 226
    Par défaut
    Bonsoir,
    Essayez avec l'utilitaire de données externes:
    Données >>> Données Externes >>>> Autres Source >>>>> Microsoft Query >>>> Fichiers Excel

    En suite Microsoft Query vous guidera tout au long de la procédure d'import il vous permettra d'y appliquer des conditions et des tris que vous saurez manipuler à votre guise.
    Une fois importées, vos données pourront être mises à jour à l'ouverture du Fichier Dest grâce au code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
    ThisWorkbook.RefreshAll
    End Sub


    Cordialement.
    Karim
    Entre la canne à pèche et le poisson c'est certainement la canne que je choisirais, puis apprendrais à m'en servir.
    Si on vous souffle une solution au complet c'est que vous n'auriez rien compris du problème.
    Consultez la , de forte chances que votre problème y figure et c'est plus vite que de poser une question et en attendre la réponse.
    FAQ Excel: http://excel.developpez.com/faq/

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 26
    Par défaut
    Bonjour Karim,

    Merci pour votre réponse et votre code, c'est un bon début (pour la fin :p).

    J'ai bien essayé avec MSQUERY mais je n'arrive pas à lui demander une cellule en particulier, j'ai réussi à récupérer la feuille entière ou bien des valeurs conditionnelles genre > à 0 et < à 2 par exemple or je veux bêtement uniquement le contenu d'une cellule en particulier :/ .

  4. #4
    Membre très actif Avatar de XLRATOR
    Homme Profil pro
    Comptable Analyste
    Inscrit en
    Août 2012
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable Analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 226
    Par défaut
    Bonjour,
    cela dépend de la dispositions de vos données ainsi que les conditions que requière l'obtention de la valeur de votre fameuse et heureuse cellule

    Donc si vous pourriez porter de plus d'explications...

    Cordialement.
    Karim
    Entre la canne à pèche et le poisson c'est certainement la canne que je choisirais, puis apprendrais à m'en servir.
    Si on vous souffle une solution au complet c'est que vous n'auriez rien compris du problème.
    Consultez la , de forte chances que votre problème y figure et c'est plus vite que de poser une question et en attendre la réponse.
    FAQ Excel: http://excel.developpez.com/faq/

  5. #5
    Membre confirmé
    Homme Profil pro
    Architecte matériel
    Inscrit en
    Janvier 2013
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte matériel
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2013
    Messages : 113
    Par défaut
    Bonjour,

    Copier cellules depuis classeur fermé dans classeur ouvert
    Je pense que tu es obligé d'ouvrir le classeur, copier ce que tu souhaites et le fermer ensuite.

    Je te montre une partie de code qui j'espère devrait t'aider :

    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
    18
    19
    20
    Sub Initialisation()
     
        Dim source As Workbook, classeur As Workbook
        Dim adresse_basedonnees as String
     
        adresse_basedonnees = "Met le chemin de ton fichier source"
     
        'ouvrir le classeur source (en lecture seule)
        'adresse_basedonnees c'est le chemin de ton fichier source
        Set source = Application.Workbooks.Open(adresse_basedonnees & "source.xlsx", True)
        'définir le classeur destination
        Set classeur = ThisWorkbook
     
        'copier les données cellules de la "Feuil1" du classeur source vers les cellules de la "Feuil1" du classeur destination
        source.Sheets("Feuil1").Range("A1:I2300").Copy classeur.Sheets("Feuil1").Range("A1:I2300")
        'Range("A1:I2300") est le plage de cellules que tu copies puis colles
        'fermer le classeur source
        source.Close False
     
    End Sub
    Cette partie de code je l'utilise et elle fonctionne, j'ai juste changer quelques trucs pour ton cas, donc j'espère que ça fonctionnera aussi

  6. #6
    Membre très actif Avatar de XLRATOR
    Homme Profil pro
    Comptable Analyste
    Inscrit en
    Août 2012
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable Analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 226
    Par défaut
    Enfin bon, s'il s'agit d'une cellule bien précise sans conditions particuliéres, je procéderais comme suit:
    Dans mon cas récupérer la valeur de la cellule "B5" du fichier source dans la cellule "A1" du fichier de destination.

    1. Dans le fichier de destination, Je mets la fonction suivante dans un module standard:
      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
      Function RecupValeur(Dossier As String, NomFichier As String, Feuille As String, Cellule As String)
          Dim Proc As String
          'Correction du chemin du dossier en cas de manque du slash en fin de la chaine de caractéres
          If Right(Dossier, 1) <> "\" Then Dossier = Dossier & "\"
       
          'Si le dossier ou le fichier n'existe pas afficher un message d'erreur puis sortir de la fonction
          If Dir(Dossier & NomFichier) = "" Then
             MsgBox "Fichier introuvable", vbExclamation
              Exit Function
          End If
       
          'Recuperer la valeur a partir du fichier source
          Proc = "'" & Dossier & "[" & NomFichier & "]" & Feuille & "'!" & Range(Cellule).Range("A1").Address(, , xlR1C1)
         RecupValeur = ExecuteExcel4Macro(Proc)
      End Function
    2. Sous l’événement de votre choix, dans mon cas Événement Clic d'un bouton ActiveX j’appelle la fonction comme suit
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Range("A1").Value = RecupValeur("CheminDossier", "NomDuFichier.xls", "NomDeLaFeuille", "b5")


    Cordialement.
    Karim
    Entre la canne à pèche et le poisson c'est certainement la canne que je choisirais, puis apprendrais à m'en servir.
    Si on vous souffle une solution au complet c'est que vous n'auriez rien compris du problème.
    Consultez la , de forte chances que votre problème y figure et c'est plus vite que de poser une question et en attendre la réponse.
    FAQ Excel: http://excel.developpez.com/faq/

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 26
    Par défaut
    Bonjour à tous,

    merci pour vos réponses ça fait plaisir de voir des personnes toujours prêtes à aider.
    J'ai finalement réussi à obtenir le comportement souhaité avec le code suivant :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        With Range("B5")
            .Formula = "='c:/spaces/collab/Hotellerie/DocumentsEquipe/[ARNAN.xlsm]Feuil1'!D10"
            .Value = .Value
        End With

    Mais mon problème vient d'évoluer ! En effet, je dois pouvoir récupérer les données d'un fichier Excel hébergé dans une bibliothèque SharePoint, et les insérées dans un fichier Excel également hébergé dans la même bibliothèque SharePoint

    Et là, mon code ne fonctionne pas je n'ai droit qu'à des #REF# alors que le chemin d'accès https est correct. J'imagine qu'il va me falloir utiliser autre chose de plus complexe et complet.

    J'envisage de créer un nouveau topic pour l'occasion du coup.

    merci

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 30/11/2014, 23h09
  2. [XL-2007] Copier cellules depuis classeur fermé dans classeur ouvert hébergés dans lib sharepoint
    Par mattlovelara dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/03/2014, 16h49
  3. Copier une feuille d'un classeur fermé dans un autre fermé
    Par abdelkarim_1987 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/09/2013, 17h44
  4. Macro pour copier feuille voulu d'un classeur fermé sur classeur ouvert
    Par Nicojez dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/06/2012, 15h46
  5. copier coller dans classeurs fermés
    Par ericdev67 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/10/2009, 23h18

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