[VB] Copie feuille d'un classeur vers autre classeur

Copie feuille d'un classeur vers autre classeur [VB] - VB/VBA/VBS - Programmation

Marsh Posté le 23-05-2006 à 18:39:20    

Hello, je n'en ai pas fini avec mes problèmes....
 
Voila, celui ci en fait me semble bien moins complexe.
 
J'ai 15 ou 16 classseurs excel avec chacun plus ou moins de données sur une feuille dont le nom est identique.
Je veux pouvoir récupérer ces informations sur une feuille excel qui me servira de BDD,avec les données les unes en dessous des autres. le problème est surement dans ma formule d'importation.  
D'ailleurs quand je le lance j'ai un message d'erreur qui me dit que " l'indice n'appartient pas à la sélection " et il surligne ma première ligne d'importation que j'ai modifié dans tous les sens, là elle est pourrie mais c'était pour tester
En effet, je pense que VB se perd dans mes classeurs donc si vous avez une amélioration à apporter...

Code :
  1. Dim I As Integer
  2. Dim J As Double
  3. Dim K As Double
  4. Dim L As Double
  5. Dim NB As Integer
  6. Dim Name As String
  7. NB = Sheets("Feuil1" ).Cells(4, 3)
  8. Name = Sheets("Feuil1" ).Cells(5, 2)
  9. L = 2
  10.  
  11. For I = 1 To NB 'NB=nb de fichiers excel qu'il va falloir ouvrir
  12.     Dim Monclasseur As Excel.Workbook
  13.     Set Monclasseur = Workbooks.Open(Name) 'La ou sont mes données
  14.                                             'Name est le chemin du fichier excel ou sont contenues les données
  15.     Dim MaBase As Excel.Workbook
  16.     Set MaBase = ActiveWorkbook 'La cible
  17.    
  18.     Dim donnees As Excel.Worksheet
  19.     Set donnees = Monclasseur.Worksheets("Données_AF" )
  20.    
  21.     J = donnees.Cells(1, 3)
  22.    
  23.     For K = 1 To J
  24.          
  25.         ' import de données
  26.        
  27.         MaBase.Sheets("DATA" ).Cells(L, 1) = Monclasseur.Sheets("Données_AF" ).Cells(K + 2, 1) ' ou rows ca ira plus vite
  28.         MaBase.Sheets("DATA" ).Cells(L, 2) = Monclasseur.Sheets("Données_AF" ).Cells(K + 2, 2)
  29.         '........
  30.         L = L + 1 'pour info je vais me retrouver à terme à 65536 pas grave
  31.     Next
  32.    
  33.      
  34. Next
  35. End Sub


 
Je pense que ca risque d'être très long parce qu'ensuite faudra repasser une boucle pour un autre fichier mais ça c'est pas grave, mon tuteur de stage s'en fout tant qu'il copie colle pas tout à la main
 
 :jap:


Message édité par nexius26 le 24-05-2006 à 09:48:16
Reply

Marsh Posté le 23-05-2006 à 18:39:20   

Reply

Marsh Posté le 24-05-2006 à 09:49:07    

Personne pour m'aider???? je galère trop j'arrive toujours à rien

Reply

Marsh Posté le 24-05-2006 à 13:29:48    

bonjour,
j'ai vaguement survolé ton truc hier mais pas eu le temps de gratter dessus.
De plus c'est un peu pénible.
je reverrai ce soir, mais déjà le name est un mot réservé de VBA, je ne sais pas si ça fait bon ménage comme variable.
A+

Reply

Marsh Posté le 25-05-2006 à 02:40:41    

Voir http://forum.hardware.fr/hardwaref [...] 0232-1.htm du 15-05-2006 à 21:13:49 si tes données sont toujours placées dans les mêmes cellules, cela demandera sans doute des adaptations

Message cité 1 fois
Message édité par kiki29 le 25-05-2006 à 02:47:45
Reply

Marsh Posté le 26-05-2006 à 14:33:42    

kiki29 a écrit :

Voir http://forum.hardware.fr/hardwaref [...] 0232-1.htm du 15-05-2006 à 21:13:49 si tes données sont toujours placées dans les mêmes cellules, cela demandera sans doute des adaptations


 
Merci beaucoup, je vais m'y plonger car ça n'a pas l'air très facile.

Reply

Sujets relatifs:

Leave a Replay

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