Bonjours,

Je cherche à transformer mon code VBA que j'ai fait sur Excel, pour le mettre dans une BD Access. Autant sous Excel, j'ai pu appliqué une méthode simple,(qui ressemble au langage C) autant sous Access je suis complétement perdu. Et je ne trouve pas de correspondance entre les 2.

Alors pour faire simple voici le code qui me permet un petit control de doublon avec des exceptions et un récapitulatif à la fin sur Excel, et moi je voudrais faire la même chose sur Access. Mon plus gros problème est que je ne comprend pas le système d'adressage de la cellule Access par rapport à Excel.

**********************************************************
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
Dim Cellule_active
Dim Cellule_test 
Dim Ligne 'ligne actuelle
Dim Ligne_T 'ligne testé
Dim Colonne
Dim NbZero 'numero d'article pas encore défini
Dim NbNC 'numero d'article pas communiqué
Dim NbAutre 'entrée incorrect
Dim NbNum 'numero d'article devant être unique
 
Sub Controle_doublon()
 
'initialisation
    NbZero = 0
    NbNC = 0
    NbAutre = 0
    NbNum = 0
    Ligne_T = 1
    Ligne = 2
    Colonne = 1
    Cellule_test = Cells(Ligne_T, Colonne)
    Cellule_active = Cells(Ligne, Colonne)
 
 
'contrôle la cellule devant être testé et compte les divers entree    
While Cellule_test <> "" Or Cellule_active <> ""
 
    If Cellule_test = 0 Then NbZero = NbZero + 1
    If Cellule_test = "NC" Then NbNC = NbNC + 1
    If Not IsNumeric(Cellule_test) And Cellule_test <> 0 And Cellule_test <> "NC" Then NbAutre = NbAutre + 1
    If IsNumeric(Cellule_test) And Cellule_test <> 0 And Cellule_test <> "NC" Then NbNum = NbNum + 1
 
 
'Permet de controler les doublons et affiche une boite si besoin   
        While Cellule_active <> ""
 
            If IsNumeric(Cellule_active) And Cellule_active <> 0 And Cellule_test = Cellule_active Then
 
            MsgBox "Numero " & Cellule_active & " present aux lignes " & Ligne_T & " et " & Ligne
            Ligne = Ligne + 1
            Cellule_active = Cells(Ligne, Colonne)
 
            Else:
 
            Ligne = Ligne + 1
            Cellule_active = Cells(Ligne, Colonne)
 
 
            End If
        Wend
    Ligne_T = Ligne_T + 1
    Ligne = Ligne_T + 1
    Cellule_test = Cells(Ligne_T, Colonne)
    Cellule_active = Cells(Ligne, Colonne)
 
 
Wend
'affiche un récapitulatif
Ligne_T = Ligne_T - 1
 
MsgBox "Nombre de Numero : " & NbNum & vbCrLf & "Nombre de " & Chr34 & "0" & Chr34 & " : " & NbZero & vbCrLf & "Nombre de NC : " & NbNC & vbCrLf & "Autre entrée : " & NbAutre & vbCrLf & "Numero de ligne de fin : " & Ligne_T
 
 
 
End Sub
**********************************************************
PS: Je n'ai pas défini le type de variable dans Excel. lorsque j'arriverai à faire ce que je veux, j'engagerai la partit optimisation de mon code, et je définirai ces types en fonction des besoins.

Pour vous situé mes connaissances en la matière, j'ai déjà programmé de petit composant électronique en Assembleur et en C, et ce petit bout de programme est mon première flirt avec VBA.