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 :
- Dim I As Integer
- Dim J As Double
- Dim K As Double
- Dim L As Double
- Dim NB As Integer
- Dim Name As String
- NB = Sheets("Feuil1" ).Cells(4, 3)
- Name = Sheets("Feuil1" ).Cells(5, 2)
- L = 2
-
- For I = 1 To NB 'NB=nb de fichiers excel qu'il va falloir ouvrir
- Dim Monclasseur As Excel.Workbook
- Set Monclasseur = Workbooks.Open(Name) 'La ou sont mes données
- 'Name est le chemin du fichier excel ou sont contenues les données
- Dim MaBase As Excel.Workbook
- Set MaBase = ActiveWorkbook 'La cible
-
- Dim donnees As Excel.Worksheet
- Set donnees = Monclasseur.Worksheets("Données_AF" )
-
- J = donnees.Cells(1, 3)
-
- For K = 1 To J
-
- ' import de données
-
- MaBase.Sheets("DATA" ).Cells(L, 1) = Monclasseur.Sheets("Données_AF" ).Cells(K + 2, 1) ' ou rows ca ira plus vite
- MaBase.Sheets("DATA" ).Cells(L, 2) = Monclasseur.Sheets("Données_AF" ).Cells(K + 2, 2)
- '........
- L = L + 1 'pour info je vais me retrouver à terme à 65536 pas grave
- Next
-
-
- Next
- 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
Message édité par nexius26 le 24-05-2006 à 09:48:16