Bonjour le Forum,
Ca fait plusieurs fois que je m'attaque au pavé des modules de classe, mais en vain je n'y arrive pas.
Pour faire simple j'ai développé un petit prog qui recherche le terme renseigné par l'opérateur et en fonction de l'endroit où il l'a trouvé :
Ouvre un userform qui compile dans une listbox toutes les lignes qu'il a trouvé dans un tableau ("Catalogue") contenant ce terme.
Compile des données (dans X colonnes de la listbox) provenant de différents tableaux.
Mon premier problème c'est que je dois définir plusieurs tableaux annexes en démultipliant les déclarations
Et j'aimerais pouvoir (à l'aide d'un module de classe?) simplifier l'ensemble :
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 Public Catalogue As Workbook, Wprint As Workbook, Marche As Workbook, Procedure As Workbook, Attendus As Workbook Public CatSheet As Worksheet, Sprint As Worksheet, MarSheet As Worksheet, Prosheet As Worksheet, Attsheet As Worksheet Public LastCatRow As Integer, LastMarRow As Integer, LastProRow As Integer, LastAttRow As Integer ... Public Sub init_var() Set Catalogue = GetObject("O:\03 DF\35 BR\353 SSP\02.section SSP\30K\archives\MARINE archives 2009-2012\catalogue habillement allégé avec substitution V0.xlsm") Set CatSheet = Catalogue.Sheets("Catalogue articles SH") LastCatRow = CatSheet.Cells(8, 1).End(xlDown).Row Set Marche = GetObject("O:\03 DF\35 BR\354 SEP\OUTIL EXECUTION\LISTE MARCHES A BDC HAB.xlsm") Set MarSheet = Marche.Sheets("Mini Maxi Global") LastMarRow = MarSheet.Cells(11, 1).End(xlDown).Row Set Procedure = GetObject("O:\08 DOCUMENTS DE TRAVAIL\COMMUN\DAF_planif\_Archives\3- Portefeuille\PORTEFEUILLE DES PROCEDURES.xlsx") Set Prosheet = Procedure.Sheets("PORTEFEUILLE") LastProRow = Prosheet.Cells(4, 2).End(xlDown).Row Set Attendus = GetObject("O:\08 DOCUMENTS DE TRAVAIL\COMMUN\SECTION_RESSOURCES_PRESTATIONS\ATT HAB\Suivi Attendus HAB (en ligne).xlsb") Set Attsheet = Attendus.Sheets(" Attendus ARES") LastAttRow = Attsheet.Cells(5, 1).End(xlDown).Row End Sub
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 'Dans le module de classe cFile Public Classeur As Workbook Public NomWB as String Public Chemin as String Public NomFeuil as String Public Feuille As Worksheet Public DerLigne As Integer Public Sub init_var() Set Fichier = GetObject(Chemin & NomWB) Set Feuille = Fichier.Sheets(NomFeuil) DerLigne = Feuille.Cells(8, 1).End(xlDown).Row End Sub
Mais je n'arrive pas à construire ce code correctement. J'ai lu pleins de tuto sur les modules de classe mais en vain.
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 ' dans module Dim Catalogue As cFile, Procedure As cFile Set Catalogue = New cFile With Catalogue .Nom=" " .Chemin="\..." End With Set Procedure = New cFile With Procedure .Nom=" " .Chemin="\..." End With For Each Object in cFile Init_var.Object Next End Sub
Quelqu'un pourrait me donner une piste ?
Merci
Partager