Bonjour à tous,
je suis nouveau sur le forum,
je souhaite trier des informations contenues dans un classeur excel et les faire apparaître dans un autre classeur.
Pour cela, je pars de mon fichier de départ(un classeur contenant un certain nombre de feuilles excel), et je réalise une petite programmation sous VBA.
Jusqu'ici, ma réflexion 'intense' m'a permis d'écrire le code qui créée le fichier de destination. J'ai également le code qui permet de récupérer les données sources, mais je n'arrive pas à faire le lien entre les deux, et notamment parce que je n'arrive pas à bien définir ce qu'est la feuille active : vba réécrit les données dans la feuille de départ.
Quelqu'un peut-il m'aider? Voici le code que j'ai écrit :

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
102
103
104
105
106
107
108
Sub tridesresultats()
 
Dim oExcel As Object
Dim oBook As Object
Dim oSheet As Object
Dim matactive As String
Dim resultat As String
Dim unite As String
Dim dat As String
Dim numbon As String
Dim essai As Worksheet
Dim essai2 As Worksheet
 
'code qui crée un nouveau classeur et des nouvelles feuilles dedans
Set oExcel = CreateObject("Excel.Application")
Set oBook = oExcel.Workbooks.Add
oBook.Worksheets.Add
oBook.Worksheets.Add
oBook.Worksheets.Add
oBook.Worksheets.Add
 
'code pour la première feuille du classeur final
ActiveWorkbook.Sheets("Artichaut").Select
compteur = 0
Set oSheet = oBook.Worksheets(1)
oSheet.Name = "Artic"
oSheet.Range("A1").Value = "Matière active"
oSheet.Range("B1").Value = "Résultat"
oSheet.Range("A1:F1").Font.Bold = True
oSheet.Range("C1").Value = "Unité"
oSheet.Range("D1").Value = "Date"
oSheet.Range("E1").Value = "N° de bon"
For i = 2 To 10000
Cells(i, 6).Select
If ActiveCell.Value = "< LQ" Then
ElseIf ActiveCell.Value = "" Then
ElseIf ActiveCell.Value = "0" Then
MsgBox ("résultat nul")
Else: compteur = compteur + 1
resultat = ActiveCell.Value
unite = ActiveCell.Offset(0, 1).Value
matactive = ActiveCell.Offset(0, -2).Value
dat = ActiveCell.Offset(0, -1).Value
numbon = ActiveCell.Offset(0, -4).Value
Activebook = book516
If ActiveSheet.[A2] = "" Then
ActiveSheet.[A2].Select
Else
ActiveSheet.Range("A1").End(xlDown).Offset(1, 0).Select
End If
With ActiveCell
.Value = matactive
.Offset(0, 1).Value = resultat
.Offset(0, 2).Value = unite
End With
End If
Next i
MsgBox ("Le nombre total de détections sur ce produit est de " & compteur)
Set oSheet = oBook.Worksheets(2)
oSheet.Range("A1").Value = "Matière active"
oSheet.Range("B1").Value = "Résultat"
oSheet.Range("A1:F1").Font.Bold = True
oSheet.Range("C1").Value = "Unité"
oSheet.Range("D1").Value = "Date"
oSheet.Range("E1").Value = "N° de bon"
oSheet.Name = "Chou-Fleur"
 
Set oSheet = oBook.Worksheets(3)
oSheet.Range("A1").Value = "Matière active"
oSheet.Range("B1").Value = "Résultat"
oSheet.Range("A1:F1").Font.Bold = True
oSheet.Range("C1").Value = "Unité"
oSheet.Range("D1").Value = "Date"
oSheet.Range("E1").Value = "N° de bon"
oSheet.Name = "Brocoli"
 
Set oSheet = oBook.Worksheets(4)
oSheet.Range("A1").Value = "Matière active"
oSheet.Range("B1").Value = "Résultat"
oSheet.Range("A1:F1").Font.Bold = True
oSheet.Range("C1").Value = "Unité"
oSheet.Range("D1").Value = "Date"
oSheet.Range("E1").Value = "N° de bon"
oSheet.Name = "Carotte"
 
Set oSheet = oBook.Worksheets(5)
oSheet.Range("A1").Value = "Matière active"
oSheet.Range("B1").Value = "Résultat"
oSheet.Range("A1:F1").Font.Bold = True
oSheet.Range("C1").Value = "Unité"
oSheet.Range("D1").Value = "Date"
oSheet.Range("E1").Value = "N° de bon"
oSheet.Name = "Tomate"
 
Set oSheet = oBook.Worksheets(6)
oSheet.Range("A1").Value = "Matière active"
oSheet.Range("B1").Value = "Résultat"
oSheet.Range("A1:F1").Font.Bold = True
oSheet.Range("C1").Value = "Unité"
oSheet.Range("D1").Value = "Date"
oSheet.Range("E1").Value = "N° de bon"
oSheet.Name = "Haricot"
 
'Save the Workbook and Quit Excel
oBook.SaveAs "C:\Book516.xls "
oExcel.Quit
 
End Sub
Je vous serai très reconnaissant !!!

Merci, bonne soirée

Fred