Execution Module VBA
Résolu
Vai
-
Vai -
Vai -
Bonjour,
Comment associer le click d'un bouton afin d'exécute plusieurs modules sur VBA ?
Merci
Comment associer le click d'un bouton afin d'exécute plusieurs modules sur VBA ?
Merci
5 réponses
Bonjour,
Si votre code est dans des Modules, il n'est plus dans ThisWorbook. Donc, si pas d'enchainement par le module precedent
autrement
Si votre code est dans des Modules, il n'est plus dans ThisWorbook. Donc, si pas d'enchainement par le module precedent
Private Sub CommandButton1_Click() Module1.prog1 Module2.prog2 End Sub
autrement
Private Sub CommandButton1_Click() Module1.prog1 End Sub
Merci pour votre réponse poupinae.
En fait, je n'ai pas bien saisie ce qu'il faut faire. Je n'utilisais avant que ce code pour lancer les multiples macros que j'ai écrit. Ceci est collé dans la page Thisworkbook :
Le code fait quelques 4000 lignes et j'ai dû l'organiser dans des modules, sauf que je ne parviens pas à réutiliser le même code pour lancer les modules.
Qu'est ce qu'il faut faire dans ce cas ?
Ce qui est bizzare est que je n'ai pas trouvé une solution à ça sur internet, donc fort probablement je cherche dans la mauvaise direction.
Merci encore
En fait, je n'ai pas bien saisie ce qu'il faut faire. Je n'utilisais avant que ce code pour lancer les multiples macros que j'ai écrit. Ceci est collé dans la page Thisworkbook :
Private Sub CommandButton1_Click() ThisWorkbook.Import_fichiers End Sub
Le code fait quelques 4000 lignes et j'ai dû l'organiser dans des modules, sauf que je ne parviens pas à réutiliser le même code pour lancer les modules.
Qu'est ce qu'il faut faire dans ce cas ?
Ce qui est bizzare est que je n'ai pas trouvé une solution à ça sur internet, donc fort probablement je cherche dans la mauvaise direction.
Merci encore
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Le code fait quelques 4000 lignes
Il n'y a que moi que ça interpelle?
Le code fait quelques 4000 lignes
Il n'y a que moi que ça interpelle?
En effet, 4000 lignes semble beaucoup, mais il y a beaucoup de traitement à faire, des champs à calculer et environ 40 tableaux croisés dynamiques à générer... d'ailleurs c'est ce qui consomme le plus de lignes. (77 lignes par TCD x 40 = 3080 déjà). Par la même, si vous avez des idées afin d'optimiser ceci je suis preneur.
Voici le code que j'utilise pour générer le TCD :
Voici le code que j'utilise pour générer le TCD :
Sub Pivot_Tables_Maker_Periode1_Principal() Dim ws As Worksheet Dim PvtTbl As PivotTable Dim wsData As Worksheet Dim DataRng As Range Dim PvtTblCache As PivotCache Dim wsPvtTbl As Worksheet Dim pvtFld As PivotField Dim LastCellRowNumber As Long Set wsData = Worksheets("0001") Sheets.Add ActiveSheet.Name = "TCD" Set wsPvtTbl = ActiveSheet wsData.Activate LastCellRowNumber = Range("A" & Rows.Count).End(xlUp).Row For Each PvtTbl In wsPvtTbl.PivotTables If MsgBox("Delete existing PivotTable!", vbYesNo) = vbYes Then PvtTbl.TableRange2.Clear End If Next PvtTbl Set DataRng = wsData.Range("B1:O" & LastCellRowNumber) ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=DataRng.Address(, , , True), _ Version:=xlPivotTableVersion12).CreatePivotTable TableDestination:=wsPvtTbl.Range("A1"), _ TableName:=("PivotTable1"), DefaultVersion:=xlPivotTableVersion12 Set PvtTbl = wsPvtTbl.PivotTables("PivotTable1") Set pvtFld = PvtTbl.PivotFields("Catégorie_Impayés") pvtFld.Orientation = xlRowField With PvtTbl.PivotFields("Catégorie_Impayés") .Orientation = xlDataField .Function = xlCount .NumberFormat = "#,##0" .Position = 1 End With With PvtTbl.PivotFields("CRD") .Orientation = xlDataField .Function = xlSum .NumberFormat = "#,##0" .Position = 2 End With With PvtTbl.PivotFields("MNT_IMPAYE") .Orientation = xlDataField .Function = xlSum .NumberFormat = "#,##0" .Position = 3 End With With PvtTbl.PivotFields("Total Dû") .Orientation = xlDataField .Function = xlSum .NumberFormat = "#,##0" .Position = 4 End With With PvtTbl.PivotFields("Provision") .Orientation = xlDataField .Function = xlSum .NumberFormat = "#,##0" .Position = 5 End With PvtTbl.ManualUpdate = False PvtTbl.PivotFields("Catégorie_Impayés").PivotFilters.Add Type:=xlCaptionDoesNotBeginWith, Value1:="N" End Sub
Merci encore.