Mettre deux macros ensemble
Résolu
CoralieAR
-
CoralieAR -
CoralieAR -
Bonjour,
J'ai fait ces deux macros :
Sub frg2()
'
' frg2 Macro
'
'
Columns("B:F").Select
Selection.Delete Shift:=xlToLeft
Columns("B:B").Select
Selection.Delete Shift:=xlToLeft
Columns("E:I").Select
Selection.Delete Shift:=xlToLeft
Range("F1").Select
ActiveCell.FormulaR1C1 = "us n°"
Columns("G:G").Select
Range("G2").Activate
Selection.Insert Shift:=xlToRight
Range("G1").Select
ActiveCell.FormulaR1C1 = "us name"
Columns("I:S").Select
Selection.Delete Shift:=xlToLeft
Columns("J:T").Select
Selection.Delete Shift:=xlToLeft
Columns("L:AI").Select
Selection.Delete Shift:=xlToLeft
Range("L1").Select
ActiveCell.FormulaR1C1 = "solde"
Range("L2").Select
ActiveCell.FormulaR1C1 = "=+RC[-1]-RC[-2]"
Range("L2").Select
Selection.AutoFill Destination:=Range("L2:L5066")
Range("L2:L5066").Select
Range("F2").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[5]=0,VLOOKUP(RC[-1],'us mappings inverse'!C[-5]:C[-2],3,0),VLOOKUP(RC[-1],'us mappings inverse'!C[-5]:C[-2],4,0))"
Range("F2").Select
Selection.AutoFill Destination:=Range("F2:F5066")
Range("F2:F5066").Select
Range("G2").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],'P&L'!C[-6]:C[-5],2,0)"
Range("G2").Select
Selection.AutoFill Destination:=Range("G2:G5066")
Range("G2:G5066").Select
Range("H9").Select
End Sub
et la deuxième :
Sub tdc3()
'
' tdc3 Macro
'
'
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"gl gene 213 !R1C1:R5066C12", Version:=xlPivotTableVersion10). _
CreatePivotTable TableDestination:="Feuil4!R2C1", TableName:= _
"Tableau croisé dynamique4", DefaultVersion:=xlPivotTableVersion10
Sheets("Feuil4").Select
Cells(2, 1).Select
With ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields("us n°")
.Orientation = xlPageField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields("us name" _
)
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields("GLNOM")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields("GLLIB")
.Orientation = xlRowField
.Position = 3
End With
ActiveSheet.PivotTables("Tableau croisé dynamique4").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique4").PivotFields("solde"), "Somme de solde" _
, xlSum
ActiveCell.Offset(1, 2).Range("A1").Select
ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields("GLLIB"). _
Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
False, False)
ActiveCell.Offset(0, -1).Range("A1").Select
ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields("GLNOM"). _
Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
False, False)
ActiveCell.Offset(0, -1).Range("A1").Select
ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields("us name"). _
Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
False, False)
End Sub
J'aimerai que la deuxième se réalise à la suite de la première mais dans une même macro (pour qu'il n'y ai qu'un bouton). je n'arrive pas à les mettre à la suite sans créer de problème de synthaxe ... Quelqu'un peut-il m'aider ????
Merci beaucoup !
J'ai fait ces deux macros :
Sub frg2()
'
' frg2 Macro
'
'
Columns("B:F").Select
Selection.Delete Shift:=xlToLeft
Columns("B:B").Select
Selection.Delete Shift:=xlToLeft
Columns("E:I").Select
Selection.Delete Shift:=xlToLeft
Range("F1").Select
ActiveCell.FormulaR1C1 = "us n°"
Columns("G:G").Select
Range("G2").Activate
Selection.Insert Shift:=xlToRight
Range("G1").Select
ActiveCell.FormulaR1C1 = "us name"
Columns("I:S").Select
Selection.Delete Shift:=xlToLeft
Columns("J:T").Select
Selection.Delete Shift:=xlToLeft
Columns("L:AI").Select
Selection.Delete Shift:=xlToLeft
Range("L1").Select
ActiveCell.FormulaR1C1 = "solde"
Range("L2").Select
ActiveCell.FormulaR1C1 = "=+RC[-1]-RC[-2]"
Range("L2").Select
Selection.AutoFill Destination:=Range("L2:L5066")
Range("L2:L5066").Select
Range("F2").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[5]=0,VLOOKUP(RC[-1],'us mappings inverse'!C[-5]:C[-2],3,0),VLOOKUP(RC[-1],'us mappings inverse'!C[-5]:C[-2],4,0))"
Range("F2").Select
Selection.AutoFill Destination:=Range("F2:F5066")
Range("F2:F5066").Select
Range("G2").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],'P&L'!C[-6]:C[-5],2,0)"
Range("G2").Select
Selection.AutoFill Destination:=Range("G2:G5066")
Range("G2:G5066").Select
Range("H9").Select
End Sub
et la deuxième :
Sub tdc3()
'
' tdc3 Macro
'
'
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"gl gene 213 !R1C1:R5066C12", Version:=xlPivotTableVersion10). _
CreatePivotTable TableDestination:="Feuil4!R2C1", TableName:= _
"Tableau croisé dynamique4", DefaultVersion:=xlPivotTableVersion10
Sheets("Feuil4").Select
Cells(2, 1).Select
With ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields("us n°")
.Orientation = xlPageField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields("us name" _
)
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields("GLNOM")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields("GLLIB")
.Orientation = xlRowField
.Position = 3
End With
ActiveSheet.PivotTables("Tableau croisé dynamique4").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique4").PivotFields("solde"), "Somme de solde" _
, xlSum
ActiveCell.Offset(1, 2).Range("A1").Select
ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields("GLLIB"). _
Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
False, False)
ActiveCell.Offset(0, -1).Range("A1").Select
ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields("GLNOM"). _
Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
False, False)
ActiveCell.Offset(0, -1).Range("A1").Select
ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields("us name"). _
Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
False, False)
End Sub
J'aimerai que la deuxième se réalise à la suite de la première mais dans une même macro (pour qu'il n'y ai qu'un bouton). je n'arrive pas à les mettre à la suite sans créer de problème de synthaxe ... Quelqu'un peut-il m'aider ????
Merci beaucoup !
A voir également:
- Mettre deux macros ensemble
- Deux ecran pc - Guide
- Comment faire deux colonnes sur word - Guide
- Nombre de jours entre deux dates excel - Guide
- Comment connecter deux pc ensemble sans fil - Guide
- Sms deux ronds - Forum Xiaomi
3 réponses
Bonjour,
il vous suffit d'appeler la seconde macro dans la première.
A la fin de la première macro, écrire
il vous suffit d'appeler la seconde macro dans la première.
A la fin de la première macro, écrire
tdc3ou
Call tdc3Cordialement.
Bonjour,
Tes macros sont un problème de syntaxe à elles seules !! :))
L'enregistreur n'est pas toujours un ami ! :s
Sinon, pour ne pas mélanger les macros, on peut en faire une troisième qui appelle les deux premières :
sub mamacro()
Call frg2
Call tdc3
End Sub
Sinon, dans l'état actuel de tes macros... pas trop envie d'analyser la chose...
m@rina
Tes macros sont un problème de syntaxe à elles seules !! :))
L'enregistreur n'est pas toujours un ami ! :s
Sinon, pour ne pas mélanger les macros, on peut en faire une troisième qui appelle les deux premières :
sub mamacro()
Call frg2
Call tdc3
End Sub
Sinon, dans l'état actuel de tes macros... pas trop envie d'analyser la chose...
m@rina