Bonjour à tous et toutes,
Pour une question de montée en compétences au sein du poste que j'occupe dans mon entreprise d'une part,
et l'affection que j'ai depuis toujours pour le traitement des données d'autre part,
j'ai mis sur pied un projet VBA Excel qui me permet d'extraire les informations pertinentes que je me dois de connaître (répartitions de volumes, ...)
pour avoir une bonne "photo" de ce qui ce passe dans notre magasin de pièces.
La première version de ce projet fait ce que j'attends d'elle MAIS le code qui en résulte est ( j'en suis sûr...) immonde....
J’obtiens les informations voulues à grands coups de UsedRange.AutoFilter et de WorksheetsFunction.Subtotal(109,..)
J'ai donc décidé la refonte intégrale du "machin" qu'est le projet actuellement, pour le recréer de la façon la plus efficace/propre possible.
J'ai acheté un bouquin 2 en 1 édité aux éditions ENI pour progresser proprement (en arrêtant de Googleliser la moindre instruction) mais, en tant qu'Autodidacte,
j'ai du mal à avoir une vision de comment on construit proprement un projet de bonne envergure.
Ma première question portera donc sur la déclaration des variables.
Le projet final est divisé en 6-8 modules dans lesquels j'utilise encore et encore les mêmes variables et objets(fichier source, feuille de destination des données,....).
Est-ce que , selon vous, le code qui suit est acceptable ou c'est déjà une horreur sans nom ?
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 Option Explicit Public site(2) As String, natureClient(5) As String, codeCombi(3) As String Public iSite As Integer, iNature As Integer, iCombi As Integer Public colQ As Range Sub initialisationProjet() Set colQ = wsDatas.Range("P:P") site(0) = "A" site(1) = "B" codeCombi(0) = "I" codeCombi(1) = "G" codeCombi(2) = "K" ' NETTOYAGE DE LA FEUILLE "DATAS" DE DESTINATION wsDatas.AutoFilterMode = False wsDatas.UsedRange.Clear ' OUVERTURE DU FICHIER SOURCE ET COPIE DES DONNEES VERS LA FEUILLE "DATAS" Workbooks.Open Filename:="D:\PARTAGE_AVS\RawDatas.xlsx" Workbooks("RawDatas.xlsx").Worksheets("2021").UsedRange.Copy wsDatas.Range("A1") ' FERMETURE DU FICHIER SOURCE Workbooks("RawDatas.xlsx").Close End Sub
Merci par avance pour vos avis !
N.B : SI quelqu'un est arrivé jusqu'ici, existerait-il un bon livre qui traite de la bonne façon de structurer un projet (une fois la syntaxe de base du VBA acquise) ?
Partager