Roussetj
Messages postés52Date d'inscriptionjeudi 26 juin 2008StatutMembreDernière intervention 2 octobre 2008
-
30 juin 2008 à 15:14
Roussetj
Messages postés52Date d'inscriptionjeudi 26 juin 2008StatutMembreDerniè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...
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 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")
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 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")
Roussetj
Messages postés52Date d'inscriptionjeudi 26 juin 2008StatutMembreDerniè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")