Comme vous pouvez le voir, je suis tout nouveau que ce sois sur ce site ou même VBA, je m'y suis mis avant-hier (je connais quand même le C). Ayant quelques 200 feuilles Excel à faire, j'en suis venu à penser que les macros pouvais m'aider, mais j'ai malheureusement des problèmes, le programme que je souhaite faire nécessite l'utilisation de 3 fichiers (2 sources + 1) et ne fonctionne pas je ne vois pas comment faire autrement pour faire l'appel des fichiers (je crois que c'est ca qui marche pas entre autres).

d'ou ma question, comment faire pour utiliser plusieurs fichiers Excel sous VB?

je mets mon programme pour que vous compreniez mieux comment j'ai fais et qui n'est pas bon.

--
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
 
 
Sub OM()
 
'Declaration des variables
 
Dim FP As Excel.Workbook
Dim FPws As Excel.Worksheet
Dim Listing As Excel.Workbook
Dim Listingws As Excel.Worksheet
Dim Produit As Excel.Workbook
Dim Produitws As Excel.Worksheet
Dim lig
Dim I As Integer
 
 
'Ouverture des applications
 
Workbooks.Add ("C:\Documents and Settings\tai-sama\Mes documents\1. Olivier\ESIREM\Stage\Stage Bodycote\FP.xls")
Set FP = ActiveWorkbook
Set FPws = FP.Worksheets(1)
FP.Sheets.Add After:=Sheets(FP.Sheets.Count), Count:=200
Call Trierfeuilles
 
Set Listing = Workbooks.Open("C:\Documents and Settings\tai-sama\Mes documents\1. Olivier\ESIREM\Stage\Stage Bodycote\AA Listing produits chimiques.xls")
Set Listingws = Listing.Worksheets(2)
 
Set Produit = Workbooks.Open("C:\Documents and Settings\tai-sama\Mes documents\1. Olivier\ESIREM\Stage\Stage Bodycote\Création Fiche de produits\Fiche Produits.xls")
Set Produitws = Produit.Worksheets(1)
                                                        'Debut du programme de copie d'une sélection vers une autre feuille
Set Produitws = ActiveWorkbook.Sheets(1)
Produitws("Feuil1").Range("A1:AS42").Copy
Set FPws = ActiveWorkbook.Sheets(1)                     'activation de la feuille que je souhaite
FPws("Feuil1").Paste Destination:=FPws("Feuil1").Range("A1:AS42")
                                                        'ou FPws("Feuil1").Paste Destination:=FPws("Feuil1").Range("A1")
Application.CutCopyMode = False
Worksheets().FillAcrossSheets Worksheets("Feuil1").Range("A1:AS42", xlFillWithAll) 'doit être rediriger vers le fichier avec les 200 feuilles
 
 
                                                        'Debut du programme de remplissage des données
Set Listing = ActiveWorkbook
Set Listingws = Listing.ActiveSheet
 
I = 1
lig = 8
    For lig = 8 To 12
 
        Listingws("Feuil2").Range(Listingws.Cells(lig, 3)).Copy
        Set FP = ActiveWorkbook
        Set FPws = FP.ActiveSheet
        Sheets("Feuil(" & I & ")").Select
        FPws("Feuil(" & I & ")").Paste Destination:=FPws("Feuil(" & I & ")").Range(FPws.Cells(7, 12), FPws.Cells(9, 12))
        Set Listing = ActiveWorkbook
        Set Listingws = Listing.ActiveSheet
        Application.CutCopyMode = False
 
        Listingws("Feuil2").Range(Listingws.Cells(lig, 2)).Copy
        Set FP = ActiveWorkbook
        Set FPws = FP.ActiveSheet
        Sheets("Feuil(" & I & ")").Select
        FPws("Feuil(" & I & ")").Paste Destination:=FPws("Feuil(" & I & ")").Range(FPws.Cells(5, 12))
        Set Listing = ActiveWorkbook
        Set Listingws = Listing.ActiveSheet
        Application.CutCopyMode = False
 
        Listingws("Feuil2").Range(Listingws.Cells(lig, 41)).Copy
        Set FP = ActiveWorkbook
        Set FPws = FP.ActiveSheet
        Sheets("Feuil(" & I & ")").Select
        FPws("Feuil(" & I & ")").Paste Destination:=FPws("Feuil(" & I & ")").Range(FPws.Cells(9, 12))
        Set Listing = ActiveWorkbook
        Set Listingws = Listing.ActiveSheet
        Application.CutCopyMode = False
 
        I = I + 1
    Next lig
 
'Fermeture d'Excel
FP.Close
Listing.Close
Produit.Close
Set FPws = Nothing
Set Listingws = Nothing
Set Listing = Nothing
Set Produitws = Nothing
Set Produit = Nothing
 
'Fin du programme
End Sub
 
Sub Trierfeuilles()
 Dim Ws As Object
 Dim I As Byte
 
 Application.ScreenUpdating = False
    For Each Ws In ActiveWorkbook.Sheets
        For I = 2 To ActiveWorkbook.Sheets.Count
            If Sheets(I - 1).Name > Sheets(I).Name Then Sheets(I - 1).Move After:=Sheets(I)
        Next I
    Next Ws
End Sub
--
Merci pour l'aide que vous pourrez m'apporter