Execution Module VBA
Résolu/Fermé
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
f894009
Messages postés
17257
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
20 mars 2025
1 713
31 déc. 2014 à 13:54
31 déc. 2014 à 13:54
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
poupinae
Messages postés
161
Date d'inscription
dimanche 30 novembre 2014
Statut
Membre
Dernière intervention
6 mars 2016
18
31 déc. 2014 à 11:08
31 déc. 2014 à 11:08
Appuyez sur Ctrl + G dans l'éditeur VBA pour l'ouvrir.
DGVDR
Messages postés
158
Date d'inscription
vendredi 10 août 2012
Statut
Membre
Dernière intervention
20 juillet 2015
31 déc. 2014 à 11:13
31 déc. 2014 à 11:13
Bonjour,
Click droit -> Affecter une macro
Click droit -> Affecter une macro
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
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
31 déc. 2014 à 13:57
31 déc. 2014 à 13:57
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?
f894009
Messages postés
17257
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
20 mars 2025
1 713
31 déc. 2014 à 14:03
31 déc. 2014 à 14:03
Bonjour,
Si tout a ete fait avec l'enregistreur de macro ou code non optimise, pourquoi pas !!!!!
Moi, je pense plus au deroulement des modules si la declaration de variable est pas top
Si tout a ete fait avec l'enregistreur de macro ou code non optimise, pourquoi pas !!!!!
Moi, je pense plus au deroulement des modules si la declaration de variable est pas top
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
>
f894009
Messages postés
17257
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
20 mars 2025
31 déc. 2014 à 14:16
31 déc. 2014 à 14:16
Salut,
Tu as entièrement raison.
Cependant, même si ce n'est pas le but de ce sujet, je penses que tout le code est à revoir...
Tu as entièrement raison.
Cependant, même si ce n'est pas le but de ce sujet, je penses que tout le code est à revoir...
Vai
>
f894009
Messages postés
17257
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
20 mars 2025
2 janv. 2015 à 10:25
2 janv. 2015 à 10:25
"Moi, je pense plus au deroulement des modules si la declaration de variable est pas top"
Est ce que vous pouvez développer un peu plus ?
Merci
Est ce que vous pouvez développer un peu plus ?
Merci
f894009
Messages postés
17257
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
20 mars 2025
1 713
31 déc. 2014 à 16:06
31 déc. 2014 à 16:06
Re,
Tout a fait, attendons la suite ......
Tout a fait, attendons la suite ......
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
2 janv. 2015 à 10:25
Merci encore.