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.
Partager