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 :

copie de données


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 12
    Par défaut copie de données
    bonjour,

    j'ai deja posé presque la meme question, je pensais avoir compris et je me rends compte que non...

    j'explique mon probleme: mon bouton de commande est placé sur le fichier "tool1.xls".
    je demande à l'utilisateur le chemin complet d'un autre fichier sur lequel il veut extraire des données.
    enfin je veux copier certaines données de ce fichier pour les coller sur la "feuille2" du fichier "tool1.xls"

    voici mon 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
     je demande le chemin complet du 'second fichier'
    MsgBox "choisir l'order", vbOKOnly, "Adresse order"
    Chemin = Application.GetOpenFilename()  
     
    ' j'ouvre et active le fichier demandé par l'utilisateur 
    Workbooks.Open Chemin
     
     'je copie la "colonne E" de ce fichier
    Workbooks(Dir(Chemin)).Activate    Range("E2:E500").Copy     
     
    ' je colle cette colonne dans la "feuille2" du fichier "tool1.xls"
    ActiveWorkbook.Close
    Worksheets("sheet2").Activate
    ActiveSheet.Paste
    mais avec ce code je copie la colonne E du fichier "tool1.xls" et non pas celle du fichier demandé par l'utilisateur.

    j'esperes que j'ai reussi a me faire comprendre, sinon dites le moi j'essaierai de réexpliquer.

    donc j'aimerais savoir ou est mon erreur et comment il faut faire pr que ça marche...

    merci

  2. #2
    Membre chevronné Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Par défaut
    Essaye comme ça
    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
     
        ' je demande le chemin complet du 'second fichier'
        MsgBox "choisir l'order", vbOKOnly, "Adresse order"
        Chemin = Application.GetOpenFilename()
     
        ' j'ouvre et active le fichier demandé par l'utilisateur
        Workbooks.Open Chemin
     
         'je copie la "colonne E" de ce fichier
        Workbooks(Dir(Chemin)).Activate
        Range("E2:E500").Copy
     
        ' je colle cette colonne dans la "feuille2" du fichier "tool1.xls"
        Workbooks("tool1.xls").Worksheets("Feuil2").Paste
     
        'Fermeture du classeur actif
        Workbooks(Dir(Chemin)).Close

  3. #3
    Membre Expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 915
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 915
    Par défaut
    bonjour,

    essaie plutot de faire ça

    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
     je demande le chemin complet du 'second fichier'
    MsgBox "choisir l'order", vbOKOnly, "Adresse order"
    Chemin = Application.GetOpenFilename() 
     
    ' j'ouvre et active le fichier demandé par l'utilisateur 
    Workbooks.Open Chemin
     
    'je copie la "colonne E" de ce fichier
    Windows(Dir(Chemin)).Activate
    sheets("Feuil1").Range("E2:E500").Copy 
     
    ' je colle cette colonne dans la "feuille2" du fichier "tool1.xls"
    Windows("tools1.xls").Activate
    Sheets("Feuil2").Range("A1").Select
    ActiveSheet.Paste
     
    Workbooks(Dir(Chemin)).close

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 12
    Par défaut
    merci mais ça ne marche tjs pas

    pr les 2 solutions le problème est différent:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("tool1.xls").Worksheets("Feuil2").Paste
    cette ligne n'est pas acceptée

    error 9 : subscript out of range


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sheets("Feuil1").Range("E2:E500").Copy
    cette ligne n'est pas acceptée

    error 438 : object doesn't support this property or method

  5. #5
    Membre chevronné Avatar de J.Michel
    Inscrit en
    Septembre 2007
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Septembre 2007
    Messages : 279
    Par défaut
    Citation Envoyé par julien0000 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("tool1.xls").Worksheets("Feuil2").Paste
    cette ligne n'est pas acceptée

    error 9 : subscript out of range
    Verifie le nom de ta feuille de calcul.
    J'ai chagé le nom pour tester chez moi mais il me semble que pour toi c'est sheet2 au lieu de Feuil2

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 12
    Par défaut
    ok ça y est ça marche!

    en effet j'ai fait une erreur au niveau du nom des feuilles de calcul...

    j'ai changé quelque trucs ( j'ai fait un peu un mix des 2 solutions...)

    le + simple c'est que je vous montre ce que j'ai fait :

    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
    'je demande le chemin complet du 'second fichier'
    MsgBox "choisir l'order", vbOKOnly, "Adresse order"
    Chemin = Application.GetOpenFilename() 
     
    ' j'ouvre et active le fichier demandé par l'utilisateur 
    Workbooks.Open Chemin
     
    'je copie la "colonne E" de ce fichier
    Windows(Dir(Chemin)).Activate
    sheets("Sheet1").Range("E2:E500").Copy
     
    'je ferme le 'second fichier' donc "tool1.xls" redevient actif
    ActiveWorkbook.Close
     
    ' je colle cette colonne dans la "feuille2" du fichier "tool1.xls"
    Worksheets("Sheet2").Activate
    ActiveSheet.Paste Destination:=Sheets("Sheet2").Range("A1")

    voila ça marche!!!

    en tout cas merci !!!

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

Discussions similaires

  1. Pb Access et copie de données
    Par guiboule dans le forum Access
    Réponses: 1
    Dernier message: 27/07/2006, 14h00
  2. [JTextArea] Copie de données - optimisation
    Par Djakisback dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 28/03/2006, 13h21
  3. [VBA-E] Problème de copie de données
    Par JM_stp dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 25/02/2006, 00h33
  4. Réponses: 3
    Dernier message: 24/04/2005, 14h19
  5. Copie des données d'une table d'une base Interbase 6
    Par Djedjeridoo dans le forum InterBase
    Réponses: 6
    Dernier message: 02/02/2004, 09h39

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