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 données d'un classeur à un autre


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 20
    Par défaut Copier données d'un classeur à un autre
    Bonjour,

    Je voudrais copier une plage de données (sélectionnée par l'utilisateur) d'une feuille Excel (ouverte par l'utilisateur) sur une feuille Excel active (celle depuis laquelle on lance la macro).

    En gros, les étapes :
    1) On lance la macro depuis la feuille "Requête"
    2) Elle ouvre le fichier recherché par l'utilisateur
    3) L'utilisateur sélectionne la plage à copier
    4) L'utilisateur indique dans quelle cellule il veut copier ses données
    5) Les données sont copiées

    Voici mon code (erreur sur la ligne rouge "Erreur d'exécution 1004 : la méthode PasteSpecial de la classe Range a échoué"):

    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
    21
    22
    23
    24
    25
    26
    27
    Sub importFichier()
    
    Dim wbMyWb As Workbook
    Dim Nom_Fichier As Variant, wbdest As Variant, nomFeuille As Variant
    Dim Plage As Range, cell As Range
    Dim recup As String
    Dim ligne As Integer, colonne As Integer
     
    Set wbdest = ActiveWorkbook
    Nom_Fichier = Application.GetOpenFilename("Fichiers Excel (*.xls), *.xls")
    If Nom_Fichier <> False Then
       Set wbMyWb = Workbooks.Open(Nom_Fichier)
      wbMyWb.Activate
      nomFeuille = InputBox("Indiquez le nom de la feuille de classeur où récupérer les données svp :")
     wbMyWb.Sheets(nomFeuille).Activate
     Set Plage = Application.InputBox("Sélectionnez la plage à copier :", Type:=8)
     Plage.Select
     Selection.Copy
     wbdest.Activate
     Worksheets("Requête").Activate
    recup = Application.InputBox("Entrez le nom de la cellule pour copier la sélection")
    Sheets("Requête").Range("A10").Select
    Selection.PasteSpecial
     wbMyWb.Close
     wbdest.Activate
     End If
    End Sub
    J'espère que j'ai été assez clair.
    Merci de votre aide !

  2. #2
    Membre éclairé
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Août 2012
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable Maintenance

    Informations forums :
    Inscription : Août 2012
    Messages : 479
    Par défaut
    Hello,

    Remplace voir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set wbdest = ActiveWorkbook
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set wbdest = ThisWorkBook

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 20
    Par défaut
    Merci de la rapidité !

    Mais j'ai toujours la même erreur 1004 PasteSpecial :S.

  4. #4
    Membre éclairé
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Août 2012
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable Maintenance

    Informations forums :
    Inscription : Août 2012
    Messages : 479
    Par défaut
    Ok essai alors ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("Requête").cells(10,1).Select '
     Selection.PasteSpecial Paste:=xlPasteValues
    Youppi une etoile... allez champagne

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 20
    Par défaut
    Félicitations pour ton étoile .

    De plus, je me suis trompé sur cette ligne car sinon recup ne sert à rien ^^ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("Requête").Range("A10").Select
    Selection.PasteSpecial
    C'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("Requête").Range(recup).Select
    Selection.PasteSpecial
    Mais ça ne marche toujours pas même si on essaie avec Cells et Paste:=xlPasteValues (toujours la même erreur)

  6. #6
    Membre éclairé
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Août 2012
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable Maintenance

    Informations forums :
    Inscription : Août 2012
    Messages : 479
    Par défaut
    Essai ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Requête").Range(recup).PasteSpecial Paste:=xlPasteValues
    et enleve donc

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

Discussions similaires

  1. Copier données d'un classeur à un autre
    Par simodahar dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 28/05/2013, 13h03
  2. [XL-2003] copier des données d'un classeur à un autre à l'aide d'une macro
    Par tottiasr dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/05/2011, 14h19
  3. copier des données d'un classeur à un autre
    Par jbggg dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/11/2009, 16h08
  4. [XL-2003] transfert de données d'un classeur à un autre
    Par EkouIsmo dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 16/07/2009, 19h09
  5. transfert de données d'un classeur à un autre
    Par angel84 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/02/2009, 14h59

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