copier/coller entre fichier excel

copier/coller entre fichier excel - VB/VBA/VBS - Programmation

Marsh Posté le 07-05-2008 à 14:27:32    

Bonjour,
 
Donc en faite, j'ai plusieurs fichiers excel ( tous dans un meme dossier, et une partie du nom des fichier est differente ), et je voudrais faire une sorte de copier/coller de certaines données des fichiers qui sont dans le dossier, dans un autre fichier excel ( lui qui sera mon resultat final).
 
Au final, j'aurais dans un seul fichier excel, une partie des données de plusieurs fichier excel ( ceux ci sont de la meme forme, seul les données change).
 
Donc étant débutant sur VBA, je pense meme suis sur qu'il faut ouvrir les fichiers excel du dossier un par un, faire le copier/coller dans mon fichier excel, de refermer le 1er fichier excel et de passer au 2 eme fichier ( ainsi de suite pour copier/coller tout les fichier de mon dossier).
 
En faisant des recherche j'ai vu qu'il fallais mettre un truc du genre, " Workbooks.Open ("C:.../.../.../..sxl.)"  , mais je ne suis pas sur si c'est la bonne méthode, et si c'est la bonne méthode je ne voie pas comment on fais la boucle sur ce fameux " Workbooks.Open ("C: " ...
 
Donc est ce que , ce que je veux tenter est possible ? et si oui j'aurais besoin d'un peu d'aide pour le début, après pour le copier/coller je pense que je peux me débrouiller, mais le problème s'est d'aller chercher les données je pense.
 
Merci

Reply

Marsh Posté le 07-05-2008 à 14:27:32   

Reply

Marsh Posté le 07-05-2008 à 14:37:09    

Si tu es débutant en VBA, la solution la plus simple est de procéder par mimétisme :outils->macro->nouvelle macro, tu fais les actions que tu attends de ta macro (des trucs simple) et tu vas voir le code qui a été généré puis tu t'en inspires...


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 07-05-2008 à 14:49:48    

Oui mais on ma deja conseillé de faire ça, mais je bloque sur des truc. En plus faire une macro dans une page excel, et ouvrir une autre page excel ba ça le prend pas en compte.
 
Je suis pas si débutant que ça, mais mon plus grand probleme c'est la boucle ( la je ne peux pas faire avec ta méthode) pour ouvrir les different fichier excel, car je ne sais pas ou mettre les guillemets, la variable dans le nom ...

Reply

Marsh Posté le 07-05-2008 à 16:24:28    

coucou,
voici une boucle :)
 
 

Code :
  1. 'Necessaire pour la boucle
  2.    Dim strFichier As String
  3.  
  4.    'Initialisation de la boucle grace a la fonction DIR
  5.    strFichier = Dir("C:\*.xls" )
  6.      
  7.    'Début de la boucle
  8.    While strFichier <> ""
  9.       Debug.Print "Traitement de " & strFichier
  10.      
  11.       'Ici tu ouvre ton classeur (...)
  12.      
  13.       'Ici tu copie ce que tu souhaite (...)
  14.      
  15.       'Ici tu ferme ton classeur (...)
  16.       'Fin de la boucle : Dir renvoie le prochain nom de fichier correspondant à la chaine de recherche
  17.       strFichier = Dir
  18.    Wend


 
il faut que tu personnalises le chemin de la ligne :
strFichier = Dir("C:\*.xls" )


Message édité par Xxxaaavvv le 07-05-2008 à 16:25:09
Reply

Marsh Posté le 07-05-2008 à 17:25:17    

bonjour,
 
j'ai pas testé la boucle de Xxxaaavvv mais je t'en propose une autre au cas où
Set fs = CreateObject("Scripting.FileSystemObject" )
Set f = fs.GetFolder("emplacementdossier" )
Set fc = f.Files
For Each f1 In fc

Next

Reply

Marsh Posté le 14-05-2008 à 09:03:13    

Merci
 
Au vue des 2 boucles proposés, je voie bien que je suis débutant, car je comprend pas tous^^.
 
Mais je cherche plutot une boucle simple d'utilisation, mais je voulais savoir, est ce que une boucle du type est possible ? (avec un for et un next, ou alors mieux m'expliquer coment marche la boucle de 86vomito33, car il y a un next.. for dedans, mais je ne voie pas comment l'utiliser)
 
ma boucle :
 
dim XXX as integer
dim n as integer
 
for XXX = 1 to n
 
workbooks.Open "C:\*\XXX.xls"
workbooks("...." ).worksheets("Resultats" ).cells(14,15)=workbooks("....." & XXX).worksheets("Resultats" ).cells(12,10)
workbooks.SaveAs "C:\*\XXX.xls"
workbooks ("C:\*\XXX.xls" ).close
 
next XXX
 
Voila je ne sais pas si vous comprenez ma bouclem ias la pour moi elle est pas compliqué et elle doit surement comporter des fautes car je l'ai fais vite fais pour vous montré ce que je comprend.
 
Est ce que ma boulce est correct ? et quel boucle est plus interessante parmi les 3 ? et sinon si vous pouviez mieux m'expliquer les 2 autre boucles (surtout la 2eme) sa serait parfait.
 
Merci

Reply

Marsh Posté le 23-02-2012 à 12:43:01    

Bonjour
 
je pense que tu ne peut pas faire de boucle car l'objet workbooks est en string
ce que tu peux faire c'est ouvrir tes fichiers un par et copier ce qu'il y a dedans je te donne la procédure
 
Private Sub CommandButton1_Click()
' demande le nom du fichier à ouvrir
Dim chemin As String
Dim fichier As String
fichier = InputBox("entrez le nom du fichier" )
chemin = InputBox("entrez le chemin du fichier" )
ChDir chemin
' selection de la première feuille dépenses
Workbooks.Open Filename:=fichier
 
ensuite tu peux coller ce que tu veux puis le refaire en inputbox
 
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed