Copie d'une feuille externe vers mon classeur actif

D

dominique

Guest
Salut a tous !!

Tout d'abord j'aimerais vous dire que votre forum est super et que l'ambiance est géniale, c'est rare de voir des forumeurs si gentils ! (paroles de scouts!)

J'ai un petit souci, j'ai cherché parmi les réponses mais je n'ai pas vraimen trouvé mon bonheur.

Voila mon problème : j'ai crée une macro qui liste les fichiers xls d'un rep (C:\Excel) dans une listbox. Je selectionne mon element dans ma listbox qui est donc sous la forme "xxx.xls".
Je voudrais aller chercher une feuille nommée "A" dans C:\Excel\xxx.xls et la copier dans une feuille de mon classeur d'ou est lancée ma macro.
J'ai essayé plusieurs methodes dont celle ci:

Exemple :
Worksheets("Data").Range("A1:O5000").PasteSpecial _ Paste:=xlPasteFormulas, SkipBlanks:=True

Le problème c'est que je ne sais pas ou s'arrete la feuille a copier donc j'aimerais recopier intégralement la feuille externe vers mon classeur.

Qqun pourrait m'aider SVP ?

a++
dom.
 
J

Jean-Marie

Guest
Bonjour Dominique

En fessant un enregistrement d'une nouvelle macro, et par l'action de Copie/déplace d'une feuille d'un autre classeur vers le classeur de destination (qui contient le code) , voici ce que retourne l'enregisteur de macro :

Windows("Classeur2").Activate
Sheets("Feuil1").Copy After:=Workbooks("Classeur1").Sheets(3)

Je ne sais pas si cela va te résoudre ton problème ?

Bonne journée

@+Jean-Marie
 
D

dominique

Guest
Bon voila mon code adapté chez moi :

Windows("C:\Excel\CCB\Fichiers Export\" & ListBox1.Value & "").Activate
Sheets("A").Copy After:=ThisWorkbook.Sheets("Data")

Le problème c'est qu'il n'aime pas le chemin.
Apparemment, pour Windows et WorkBook, la syntaxe c Wxxx(NOM_DU_CLASSEUR) et ils n'acceptent pas le chemin. Or mes classeurs ou je trouve ma feuille externe ne sont pas dans le meme rep ... :((

Sniff sniff, une autre idée peut etre ?
 
D

dominique

Guest
!!!!!! C'est vrai !! je suis sacrément bete !!!
Bref, le prob c que la tu dois :
1/ ouvrir le workbook
2/ copier coller
3/ fermer le workbook
La methode est soite pas trop compliquée et très propre mais bon t'as des fenetres qui s'ouvrent et qui se ferment ...

Du coup moi j'ai fait un ptit code pas complique du tout qui fait la meme chose mais en un peu plus système D. Voila le code pr ceux que ca interessent :

Dim i As Integer
Dim a As Integer

Worksheets("Parametres").Range("C15").Value = ListBox1.Value
Worksheets("Data").Range("A1:O5000").Clear
Worksheets("Data").Range("A1").Formula = "='C:\Excel\CCB\Fichiers Export\[" & ListBox1.Value & "]A'!A1"
Worksheets("Data").Range("A1").Copy
Worksheets("Data").Range("A1:O5000").PasteSpecial _
Paste:=xlPasteFormulas, SkipBlanks:=True

Sheets("Data").Activate
Sheets("Data").Select
i = 1
While Sheets("Data").Range("C1").Offset(i).Value <> "0"
i = i + 1
Wend
Sheets("Data").Range("C" & i & ":C5000").EntireRow.ClearContents

voila voila !

Ceci étant dit si qqun a du code tt fait pr la méthode énoncée au tout début du message je suis preneur !!
Merci
a++

dom.

PS : super forum j'vous dis :)=
 

Discussions similaires

Statistiques des forums

Discussions
313 091
Messages
2 095 189
Membres
106 210
dernier inscrit
Céline 161918