Copie de données

Résolu
Roussetj
Messages postés
52
Date d'inscription
jeudi 26 juin 2008
Statut
Membre
Dernière intervention
2 octobre 2008
- 30 juin 2008 à 15:14
Roussetj
Messages postés
52
Date d'inscription
jeudi 26 juin 2008
Statut
Membre
Dernière intervention
2 octobre 2008
- 1 juil. 2008 à 08:55
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:

MsgBox "choisir l'order", vbOKOnly, "Adresse order"
Chemin = Application.GetOpenFilename()                           ' je demande le chemin complet du 'second fichier'

Workbooks.Open Chemin
Workbooks(Dir(Chemin)).Activate                ' j'ouvre et active le fichier demandé par l'utilisateur
Range("E2:E500").Copy                                ' je copie la "colonne E" de ce fichier
ActiveWorkbook.Close
Worksheets("sheet2").Activate
ActiveSheet.Paste                                          ' je colle cette colonne dans la "feuille2" du fichier "tool1.xls"

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

7 réponses

bigfish_le vrai
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
12
30 juin 2008 à 16:44
...
cela ne vient pas du range !... utilise une message box pour voir ce que contient la variable FichierOuvert
D'autre part la ligne que je t'ai donné dans mon message precedent contient le nom feuil1 verifi qu ce nom correspond a un nom de feuille existante dans le fichier ouvert parGetOpenFilename()

Dim FichierOuvert As String
MsgBox "choisir l'order", vbOKOnly, "Adresse order"
Chemin = Application.GetOpenFilename()                           ' je demande le chemin complet du 'second fichier'
Workbooks.Open Chemin
FichierOuvert = Dir(Chemin)
MsgboxFichierOuvert
Workbooks(FichierOuvert).Sheets("feuil1").Range("E1:E500").Copy
ThisWorkBook.ActiveSheet.Paste Destination:=Range("A1")
3
bigfish_le vrai
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
12
30 juin 2008 à 15:58
Salut,

voila un bel exemple pour expliquer pourquoi il faut eviter d'activer, de selectionner, ou la methode copier/coller de l'enregistreur de macro etc . Ce sont des methodes lentent et risqués !

Dim FichierOuvert As String
MsgBox "choisir l'order", vbOKOnly, "Adresse order"
Chemin = Application.GetOpenFilename()                           ' je demande le chemin complet du 'second fichier'
Workbooks.Open Chemin
FichierOuvert = Dir(Chemin)
Workbooks(FichierOuvert).Range("E1:E500").Copy
ThisWorkBook.ActiveSheet.Paste Destination:=Range("A1")

A+
0
Roussetj
Messages postés
52
Date d'inscription
jeudi 26 juin 2008
Statut
Membre
Dernière intervention
2 octobre 2008

30 juin 2008 à 16:23
il y a un message d'erreur sur la ligne :

Workbooks(FichierOuvert).Range("E1:E500").Copy

le message d'erreur est : 
 
error 438
object doesn't support this property or method

je ne vois pas tjs pas ce qu'il faut faire...
0
bigfish_le vrai
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
12
30 juin 2008 à 16:27
...

Workbooks(FichierOuvert).Sheets("feuil1").Range("E1:E500").Copy
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Roussetj
Messages postés
52
Date d'inscription
jeudi 26 juin 2008
Statut
Membre
Dernière intervention
2 octobre 2008

30 juin 2008 à 16:36
non toujours pareil...

on dirait que l'on ne peut pas mettre quelquechose devant l'objet "Range"

il n'accepte ni workshhet, ni workbook...
0
Roussetj
Messages postés
52
Date d'inscription
jeudi 26 juin 2008
Statut
Membre
Dernière intervention
2 octobre 2008

1 juil. 2008 à 08:50
merci c'est bon ça marche!

c'est de ma faute pcq en réalité le probleme est un peu plus compliqué j'avais simplifié pr l'explication et je mettais trompé dans le nom des "feuilles"...

par contre j'ai juste changé un truc pour coller :

Dim FichierOuvert As String
MsgBox "choisir l'order", vbOKOnly, "Adresse order"
Chemin = Application.GetOpenFilename()                           ' je demande le chemin complet du 'second fichier'
Workbooks.Open Chemin
FichierOuvert = Dir(Chemin)
Workbooks(FichierOuvert).Sheets("feuil1").Range("E1:E500").Copy
ActiveWorkbook.Close
Worksheets("order").Activate
ActiveSheet.Paste Destination:=Sheets("order").Range("B1")

ms à l'arrivée ça marche!

merci
0
Roussetj
Messages postés
52
Date d'inscription
jeudi 26 juin 2008
Statut
Membre
Dernière intervention
2 octobre 2008

1 juil. 2008 à 08:55
petite erreur...

la feuille "order" correspond à "feuil2" je me suis trompé en recopiant...

désolé
0