Bonjour,
Je fais un traitement de datas via xls pour ensuite mettre cela dans une table dans access.
Voici le code en question, cela permet pour plusieurs meme enregistrement de prendre que ceux qui contiennent un 0 pour le champ 12 et si ce n'est pas le cas de prendre ceux qui ont la valeur 0.5 et le copier dans une autre feuille.
L'idée pour commencer serait de parcourir la table des enregistrements et de sélectionner à chaque fois l'enregistrement qui contient champ12 =0.
voici un apercu de la table:
Code Site CR Dates Champ12 Dates2
213232S0 0 815 0 826
213232S0 0 815 0 827
632887S0 0 818 0 826
751309S0 0 817 0 826
871210S0 0 818 0 826
Dans ce cas ci pb c'est qu'il va prendre ces 2 enregistrements
213232S0 0 815 0 826
213232S0 0 815 0 827
alors que moi je voudrais juste celui ou la date est la plus élevée 827 donc une simple requête me parait juste d'ou la nécessité du code je pense.
Merci de vos pistes
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 Public Sub Status() 'Definition des variables Dim CS As String Dim i As Integer Dim j As Integer Dim nb_lignes As Integer Set Cel = Range("A2") CS = "" j = 1 z = 1 'Récupération de la dernière ligne nb_lignes = Cel.End(xlDown).Row Set Code_Site = Range("A1:A" & nb_lignes) Set Champ12 = Range("D1:D" & nb_lignes) 'on parcours le tableau For i = 1 To nb_lignes If (Code_Site(i).Value <> CS) Then CS = Code_Site(i).Value If (Champ12(i).Value = 0) Then Worksheets("GCF").Select Rows(i).Copy Feuil3.Rows(z).PasteSpecial z = z + 1 End If If (Champ12(i).Value = 1) Then Worksheets("GCF").Select Rows(i).Copy Feuil2.Rows(j).PasteSpecial j = j + 1 End If If (Champ12(i).Value = "0,5") Then Worksheets("GCF").Select Rows(i).Copy Feuil2.Rows(j).PasteSpecial j = j + 1 End If End If Next i
Partager