Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2889 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Copier / Coller ligne entre fichiers excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Copier / Coller ligne entre fichiers excel

n°1884444
Nairolf87
Posté le 14-05-2009 à 09:48:06  profilanswer
 

Bonjour,
Je tente de créer une macro me permettant d'aller chercher des  lignes dans différents fichiers excel et de les recopier dans un fichier de destination. J'ai élaboré un début de macro mais mon pb est du fait que quand il va chercher le 2 ème fichier, cela les recopies sur les lignes du 1 er fichier et ainsi de suite...
 
Je n'arrive pas à résoudre ce pb merci de m'aider.
 
Cdlt

Code :
  1. Private Sub copiecollesave_Click()
  2. Application.ScreenUpdating = False
  3. Rep = "C:\Documents and Settings\desbfl01\Mes documents\Exemple VBA\"
  4. FichD = ActiveWorkbook.Name
  5. FichS = "FA.xls"
  6. Workbooks.Open Rep & FichS
  7. With Workbooks(FichS)
  8.         .Sheets("Feuil1" ).Range("A2:H65536" ).Copy _
  9.             Workbooks(FichD).Sheets("Feuil1" ).Range("A65536" ).End(xlUp).Offset(1, 0)
  10.         Workbooks(FichD).Save
  11.         Workbooks(FichS).Close
  12. End With
  13. Application.ScreenUpdating = False
  14. Rep = "C:\Documents and Settings\desbfl01\Mes documents\Exemple VBA\"
  15. FichD = ActiveWorkbook.Name
  16. FichS = "SB.xls"
  17. Workbooks.Open Rep & FichS
  18. With Workbooks(FichS)
  19.         .Sheets("Feuil1" ).Range("A2:H65536" ).Copy _
  20.             Workbooks(FichD).Sheets("Feuil1" ).Range("A65536" ).End(xlUp).Offset(1, 0)
  21.         Workbooks(FichD).Save
  22.         Workbooks(FichS).Close
  23. End With
  24. Application.ScreenUpdating = True
  25.            
  26. Application.ScreenUpdating = False
  27. Rep = "C:\Documents and Settings\desbfl01\Mes documents\Exemple VBA\"
  28. FichD = ActiveWorkbook.Name
  29. FichS = "MJ.xls"
  30. Workbooks.Open Rep & FichS
  31. With Workbooks(FichS)
  32.         .Sheets("Feuil1" ).Range("A2:H65536" ).Copy _
  33.             Workbooks(FichD).Sheets("Feuil1" ).Range("A65536" ).End(xlUp).Offset(1, 0)
  34.         Workbooks(FichD).Save
  35.         Workbooks(FichS).Close
  36. End With
  37. Application.ScreenUpdating = True
  38.            
  39.            
  40.            
  41.            
  42. End Sub

mood
Publicité
Posté le 14-05-2009 à 09:48:06  profilanswer
 

n°1884447
Ptit loup
Quand c'est flou, y'a un loup
Posté le 14-05-2009 à 09:57:00  profilanswer
 

Il te manque un workbook(FichD).Activate ou qq chose du genre pour bien rendre actif ton fichier de destination.

n°1884557
Nairolf87
Posté le 14-05-2009 à 12:46:51  profilanswer
 

et je devrais le mettre ou?

n°1884565
Ptit loup
Quand c'est flou, y'a un loup
Posté le 14-05-2009 à 13:04:09  profilanswer
 

DTC ? :D
 
plus sérieusement, avant la ligne 40 !
 
bizarre ta ligne là d'ailleurs ? le collage, tu le fais surs FichD ? (D comme Destination) non ?? j'ai pas l'impression que ta ligne fasse ça en fait, d'où sûrement ton souci)
 
et ton "paste", tu n'en fais pas ?!???

n°1884671
Nairolf87
Posté le 14-05-2009 à 16:24:22  profilanswer
 

oui je fais le collage sur FichD et le collage marche pas le problème vient du fait que vu qu'il y a plusieurs fichiers à chaque fois ca écrit sur les lignes recopier de l'autre fichier, ca ne les mets pas à la suite.

n°1884831
Ptit loup
Quand c'est flou, y'a un loup
Posté le 15-05-2009 à 09:38:07  profilanswer
 

J'ai sûrement lu trop vite, alors du coup, pas bien sûr d'avoir saisi donc souci...
 
Tu pourrais reprendre ton code en le commentant pour dire ce que tu veux faire ?

n°1885018
Nairolf87
Posté le 15-05-2009 à 16:17:36  profilanswer
 

J'ai trouvé en changeant mon code
Cdlt  
merci de l'aide qd meme
 
 

Code :
  1. Sub Macro()
  2. 'Disons que tu places ta macro dans un fichier destination nommé Test.xls disposé sur le bureau ou autres que tu dois ouvrir pour la lancer
  3.     Dim FichD As String
  4.     Dim FichS As Long
  5.    
  6.     FichD = "Fichier_final.xls"
  7.     Application.ScreenUpdating = False
  8.     With Application.FileSearch
  9.         .NewSearch
  10.         .RefreshScopes
  11.         .LookIn = "C:\Documents and Settings\desbfl01\Mes documents\Exemple VBA\A\" 'Tous les fichiers du répertoire sont passés en revue
  12.         .Filename = "*.xls"
  13.         .SearchSubFolders = False
  14.         .Execute
  15.         For Ctr = 1 To .FoundFiles.Count
  16.             FichS = Ctr
  17.             Workbooks.Open (.FoundFiles(FichS)) 'Ouverture
  18.             Sheets("Feuil1" ).Range("A2:" & Range("H65536" ).End(xlUp).Address).Copy 'Copie
  19.             ActiveWorkbook.Close
  20.             Workbooks(FichD).Sheets("Feuil1" ).Range("A65536" ).End(xlUp).Offset(1, 0).Activate
  21.             ActiveSheet.Paste 'Collage
  22.         Next
  23.     End With
  24.     Range("A1" ).Activate
  25.     Application.CutCopyMode = False
  26.     Application.ScreenUpdating = True
  27.    
  28. End Sub


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Copier / Coller ligne entre fichiers excel

 

Sujets relatifs
[VBAExcel Résolu] Copier coller de excel dans wordRécupérer la première ligne d'une cellule
Comparaison de deux colonnes dans 2 classeurs ExcelCopier coller une ligne excel sur autre feuille avec conditions
des fichiers qui portent les nom des tables 
Plus de sujets relatifs à : Copier / Coller ligne entre fichiers excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR