Execution Module VBA
Résolu/Fermé5 réponses
f894009
Messages postés
16904
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 mars 2023
1 678
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
15 mars 2023
2 712
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
16904
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 mars 2023
1 678
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
15 mars 2023
2 712
>
f894009
Messages postés
16904
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 mars 2023
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
16904
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 mars 2023
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
16904
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 mars 2023
1 678
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.