Comment automatiquement lancer une macro apres une autre?

Bonjour

J'ai ici 2 macros,

J'aimerais faire de sorte qu'en cliquant sur un bouton ca genere la premiere macro puis la 2eme...

Y a t-il moyen de faire ca? ou bien de faire appel a la 2eme macro apres que la 1ere soit terminée ou qqchose du genre

Voici le code

Sub getquotes()
Dim ws As Worksheet
Dim rngTkr As Range
Dim strTkr As String
Dim c As Range
Set ws = Sheet1
Dim strFld As String

e
Dim rngTkr2 As Range
Dim d As Range

Range("heud").ClearContents
With ws
    Set rngTkr = .Range("A5: A1500").SpecialCells(xlCellTypeConstants) ' ticker range
       i = 1
    For Each c In rngTkr

         strTkr = """" & c.Value & " Equity" & """"
         strFld = """" & "PX LAST" & """"
         .Range("A1").Offset(4, i + 1).Value = "=BDH(" & strTkr & "," & strFld & ",B1, B2)"
         .Range("A1").Offset(3, i + 1).Value = c.Value
         i = i + 2
    Next
End With

End Sub

Sub copydata()

    Dim lngCounter As Long
    Dim lngMax As Long
    Dim lngCol As Long
    Dim wksTwo As Worksheet
    Dim rngTkr As Range
    Dim c As Range

     'copier de la sheet1 a la sheet2, on copie en valeurs
    Set wksTwo = Worksheets("Sheet2")

    wksTwo.Cells.ClearContents
    Worksheets("Sheet3").Cells.ClearContents
    Worksheets("Sheet4").Cells.ClearContents

    Worksheets("Sheet1").Range("zoneselect").Copy
    wksTwo.Range("B1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

     ' On enleve les blancs entre la sheet 2 à la sheet3
    wksTwo.Range("A1:BB1").Copy Sheets("Sheet3").Range("B1")
    Sheets("Sheet3").Range("B1").CurrentRegion.SpecialCells(xlCellTypeBlanks).Delete shift:=xlToLeft
    Worksheets("Sheet3").Select
    Range("A1:BB1").Select
    Selection.Cut
    Sheets("Sheet3").Select
    Range("B1").Select
    ActiveSheet.Paste
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Application.CutCopyMode = False
    Selection.Delete shift:=xlToLeft

Dim datStart As Long
Dim datEnd As Long
Dim lngRow As Long
datStart = Range("datedebut")
datEnd = Range("datefin")

lngRow = 2

For lngCounter = datStart To datEnd
  With Worksheets("Sheet3").Cells(lngRow, "A")
  If (WorksheetFunction.Weekday(CDate(lngCounter), 1) < 7) And (WorksheetFunction.Weekday(CDate(lngCounter), 1) > 1) Then
      .Value = CDate(lngCounter)
      lngRow = lngRow + 1
    End If
  End With
Next lngCounter

     LgDep = 2   ' Ligne de départ du tableau dans la page Sheet2
  ClDep = 2   ' Colonne de départ du tableau dans la page Sheet2

  With Sheets("Sheet2")
    ClFin = .Cells(LgDep, Columns.Count).End(xlToLeft).Column
    LgFin = .Range(.Cells(1, ClDep), .Cells(1, ClFin)).EntireColumn.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
  End With
  Nblg = Range("A" & Rows.Count).End(xlUp).Row
  For i = ClDep To ClFin Step 2
    With Range(Cells(2, 2 + (i - ClDep) / 2), Cells(Nblg, 2 + (i - ClDep) / 2))
      .Formula = "=VLOOKUP(RC1,Sheet2!R" & LgDep & "C" & i & ":R" & Nblg & "C" & i + 1 & ",2,TRUE)"
    End With
  Next i

'FIN TEST VLOOOKUP FORMULE EXCEL

      Cells.Select
    Selection.Copy
    Sheets("Sheet4").Select
    Cells.Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False

 Range("A1").Select

End Sub

Merci d'avance!!

r

Bonjour,

Alors soit tu fais une procédure propre à ton bouton qui appelle les deux macro l'une après l'autre.

Sub Bouton_Click ()

call getquotes
call copydata

end sub

Soit tu appelles la 2ème à la fin de la 1ère avant le End Sub, mais cela signifie que la 2ème se lancera tout le temps après la 1ère même si tu l'appelles la fonction getquotes à partir d'un autre bouton.

Sub getquotes()

'traitement de la macro

Call copydata

end sub

Après si ces deux macros sont TOUJOURS exécutées l'une après l'autre, pourquoi faire 2 macros et pas une seule ?

Cordialement,

Parfait merci beaucoup!!

Je lance dans la foulee une 2eme question

je vous remercie!!!

Rechercher des sujets similaires à "comment automatiquement lancer macro"