Mettre deux macros ensemble

Résolu/Fermé
CoralieAR - 12 janv. 2012 à 16:48
 CoralieAR - 12 janv. 2012 à 17:34
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 !


A voir également:

3 réponses

Lentzouille2 Messages postés 806 Date d'inscription samedi 22 octobre 2011 Statut Membre Dernière intervention 13 janvier 2020 39
12 janv. 2012 à 16:49
Bonjour,

tout d'abord est-ce que ta 2eme macro fonctionne ?
0
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 306
12 janv. 2012 à 16:50
Bonjour,

il vous suffit d'appeler la seconde macro dans la première.

A la fin de la première macro, écrire
tdc3
ou
Call tdc3
Cordialement.
0
Merci ça marche !!!!
0
m@rina Messages postés 20082 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 26 avril 2024 11 272
12 janv. 2012 à 16:52
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


0
mes deux macros marchent bien individuellement !
c'est bon ca marche !! il suffit de faire cal tdc3 dans la première.
des conseil pour apprendre à parler VBA ?
0