Problème de Macros

Bonjour tt le monde, je suis nouveau dans le forum alors j'espère avoir votre aide c'est urgent !!

Mon problème est que j'ai créé deux macros sur le mm onglet avec bouton affecté à chacune des deux, par contre quand je clique sur l'une des deux ça me montre aussi le résultat de la 2ème.

En gros, je veux que ça soit sur le mm onglet et quand je clique sur un bouton, ça m'ouvre uniquement la macro concernée.

D'avance merci

Bonjour,

Sans illustration (fichier), on ne voit pas très bien ce que tu veux dire !

Désolé voici le code des 2 macros :

Sub Macro1()

'

' Macro1 Macro

'

'

Range("D11").Select

Application.CutCopyMode = False

ActiveCell.FormulaR1C1 = "25863"

Range("D13").Select

ActiveCell.FormulaR1C1 = "65321"

Range("D15").Select

ActiveCell.FormulaR1C1 = "48753"

Range("D11:D25").Select

With Selection

.HorizontalAlignment = xlCenter

.VerticalAlignment = xlCenter

.WrapText = False

.Orientation = 0

.AddIndent = False

.IndentLevel = 0

.ShrinkToFit = False

.ReadingOrder = xlContext

.MergeCells = False

End With

Range("D17").Select

ActiveCell.FormulaR1C1 = "5623"

Range("D17").Select

Selection.AutoFill Destination:=Range("D17:D20"), Type:=xlFillDefault

Range("D17:D20").Select

Range("D22").Select

ActiveCell.FormulaR1C1 = "54873"

Range("D24").Select

ActiveCell.FormulaR1C1 = "12453"

Range("D26").Select

ActiveCell.FormulaR1C1 = "78421"

Range("D8:D28").Select

With Selection

.HorizontalAlignment = xlGeneral

.VerticalAlignment = xlCenter

.WrapText = False

.Orientation = 0

.AddIndent = False

.IndentLevel = 0

.ShrinkToFit = False

.ReadingOrder = xlContext

.MergeCells = False

End With

With Selection

.HorizontalAlignment = xlCenter

.VerticalAlignment = xlCenter

.WrapText = False

.Orientation = 0

.AddIndent = False

.IndentLevel = 0

.ShrinkToFit = False

.ReadingOrder = xlContext

.MergeCells = False

End With

Range("D9").Select

ActiveCell.FormulaR1C1 = "=SUM(R[2]C:R[17]C)"

Range("E11").Select

ActiveCell.FormulaR1C1 = "35421"

Range("D11:E11").Select

Selection.AutoFill Destination:=Range("D11:O11"), Type:=xlFillDefault

Range("D11:O11").Select

Range("E11:O11").Select

Range("O11").Activate

With Selection

.HorizontalAlignment = xlCenter

.VerticalAlignment = xlCenter

.WrapText = False

.Orientation = 0

.AddIndent = False

.IndentLevel = 0

.ShrinkToFit = False

.ReadingOrder = xlContext

.MergeCells = False

End With

Range("E13").Select

ActiveCell.FormulaR1C1 = "75623"

Range("D8:O104").Select

With Selection

.HorizontalAlignment = xlGeneral

.WrapText = False

.Orientation = 0

.AddIndent = False

.IndentLevel = 0

.ShrinkToFit = False

.ReadingOrder = xlContext

.MergeCells = False

End With

With Selection

.HorizontalAlignment = xlCenter

.WrapText = False

.Orientation = 0

.AddIndent = False

.IndentLevel = 0

.ShrinkToFit = False

.ReadingOrder = xlContext

.MergeCells = False

End With

Range("D13:E13").Select

Selection.AutoFill Destination:=Range("D13:O13"), Type:=xlFillDefault

Range("D13:O13").Select

Range("E15").Select

ActiveCell.FormulaR1C1 = "54321"

Range("D15:E15").Select

Selection.AutoFill Destination:=Range("D15:O15"), Type:=xlFillDefault

Range("D15:O15").Select

Range("E17").Select

ActiveCell.FormulaR1C1 = "6257"

Range("D17:E17").Select

Selection.AutoFill Destination:=Range("D17:O17"), Type:=xlFillDefault

Range("D17:O17").Select

Range("E18").Select

ActiveCell.FormulaR1C1 = "7521"

Range("D18:E18").Select

Selection.AutoFill Destination:=Range("D18:O18"), Type:=xlFillDefault

Range("D18:O18").Select

Selection.AutoFill Destination:=Range("D18:O20"), Type:=xlFillDefault

Range("D18:O20").Select

Range("E22").Select

ActiveCell.FormulaR1C1 = "65874"

Range("D22:E22").Select

Selection.AutoFill Destination:=Range("D22:O22"), Type:=xlFillDefault

Range("D22:O22").Select

Range("E24").Select

ActiveCell.FormulaR1C1 = "14853"

Range("D24:E24").Select

Selection.AutoFill Destination:=Range("D24:O24"), Type:=xlFillDefault

Range("D24:O24").Select

Range("E26").Select

ActiveCell.FormulaR1C1 = "82154"

Range("D26:E26").Select

Selection.AutoFill Destination:=Range("D26:O26"), Type:=xlFillDefault

Range("D26:O26").Select

Range("D9").Select

Selection.AutoFill Destination:=Range("D9:O9"), Type:=xlFillDefault

Range("D9:O9").Select

Range("P9").Select

ActiveCell.FormulaR1C1 = "=SUM(RC[-12]:RC[-1])"

Range("P9").Select

Selection.AutoFill Destination:=Range("P9:P26"), Type:=xlFillDefault

Range("P9:P26").Select

Range("P10").Select

Selection.ClearContents

Range("P12").Select

Selection.ClearContents

Range("P14").Select

Selection.ClearContents

Range("P16").Select

Selection.ClearContents

Range("P21").Select

Selection.ClearContents

Range("P23").Select

Selection.ClearContents

Range("P25").Select

Selection.ClearContents

Range("D29").Select

ActiveWindow.SmallScroll Down:=-24

Range("F4").Select

ActiveWindow.SmallScroll Down:=-21

End Sub

Sub Macro2()

'

' Macro2 Macro

'

'

ActiveCell.FormulaR1C1 = "=SUM(R[2]C:R[15]C)"

Range("D28").Select

Selection.AutoFill Destination:=Range("D28:O28"), Type:=xlFillDefault

Range("D28:O28").Select

Range("P28").Select

ActiveCell.FormulaR1C1 = "=SUM(RC[-12]:RC[-1])"

Range("D30").Select

ActiveCell.FormulaR1C1 = "444,333"

Range("E30").Select

ActiveCell.FormulaR1C1 = "555,444"

Range("D30:E30").Select

Selection.AutoFill Destination:=Range("D30:O30"), Type:=xlFillDefault

Range("D30:O30").Select

Range("D32").Select

ActiveCell.FormulaR1C1 = "222,111"

Range("D34").Select

ActiveCell.FormulaR1C1 = "11222"

Range("D35").Select

ActiveCell.FormulaR1C1 = "11223"

Range("D36").Select

ActiveCell.FormulaR1C1 = "11224"

Range("D37").Select

ActiveCell.FormulaR1C1 = "11225"

Range("D40").Select

ActiveCell.FormulaR1C1 = "55444"

Range("D41").Select

ActiveCell.FormulaR1C1 = ""

Range("D42").Select

ActiveCell.FormulaR1C1 = "44555"

Range("D32").Select

Selection.AutoFill Destination:=Range("D32:O32"), Type:=xlFillDefault

Range("D32:O32").Select

Range("D34").Select

Selection.AutoFill Destination:=Range("D34:O34"), Type:=xlFillDefault

Range("D34:O34").Select

Range("D35:D42").Select

Selection.AutoFill Destination:=Range("D35:O42"), Type:=xlFillDefault

Range("D35:O42").Select

Range("P28").Select

Selection.AutoFill Destination:=Range("P28:P42"), Type:=xlFillDefault

Range("P28:P42").Select

Range("P29").Select

Selection.ClearContents

Range("P31").Select

Selection.ClearContents

Range("P33").Select

Selection.ClearContents

Range("P38:P39").Select

Selection.ClearContents

Range("P41").Select

Selection.ClearContents

Range("Q36").Select

ActiveWindow.SmallScroll Down:=-24

End Sub

Macros enregistrées ! Tu ne vas pas nous faire lire un tel machin sans indentation et hors balises Code !

C'est un cauchemar !

Si tu peux être clair de ce que t'as besoin de savoir, ça serait génial !!!

Déjà une macro enregistrée, c'est par définition pénible à lire, car truffée d'au moins 50% de code inutile...

La donner à lire : la moindre des choses est d'en coller une copie provenant du Module et le mettre sous balises Code : bouton </>. Ce n'est pas la panacée mais c'est déjà mieux.

Il est sans doute encore mieux de la donner à lire dans son fichier, on la lira alors dans le module et on pourra voir l'illustration de ce qu'elle fait. On peut également ajouter ce qu'on veut faire, ce qui permettra d'éviter de la lire et d'en écrire directement une qui fera ce qu'on souhaite en beaucoup moins de code et plus vite...

Cordialement.

Très bien.

C-joint le fichier Excel.

6test.xlsm (23.96 Ko)

D'abord ce ne sont pas les mêmes macros, on va encore se perdre en conjectures...

Si ça peut t'inspirer, voilà la première de ton fichier, un peu expurgée :

Sub Macro1()
    With Worksheets("CA")
        .Range("C7") = "123456"
        .Range("D7") = "234567"
        .Range("C7:D7").AutoFill .Range("C7:N7"), xlFillDefault
        .Range("C9") = "456789"
        .Range("D9") = "567894"
        .Range("C9:D9").AutoFill .Range("C9:N9"), xlFillDefault
        .Range("C11") = "789123"
        .Range("D11") = "894123"
        .Range("C11:D11").AutoFill .Range("C11:N11"), xlFillDefault
        .Range("C13") = "589632"
        .Range("C13").AutoFill .Range("C13:N13"), xlFillDefault
        .Range("C5").Formula = "=SUM(C7:C13)"
        .Range("C5").AutoFill .Range("C5:N5"), xlFillDefault
        .Range("O5").Formula = "=SUM(C5:N5)"
        .Range("O5").Copy
        .Range("O7,O9,O11,O13").PasteSpecial xlPasteFormulas
        .Range("N5:N14").Copy
        .Range("O5:O14").PasteSpecial xlPasteFormats
        .Range("O4:O14").BorderAround xlContinuous, xlThin
    End With
End Sub

Je n'oserais vraiment pas dire tout de même que c'est ainsi qu'il faut l'écrire, car ce type de macro ne sert à rien et le mieux est de ne pas l'écrire du tout...

S'il s'agit d'apprêter un tableau, on le fait, on le met en forme, on place les formules... c'est rapidement fait. Et ça se fait une fois !

S'il s'agissait de générer un tableau type à de multiples exemplaires, encore faudrait-il voir le contexte du projet, pourquoi pas une macro ? Mais garnir de chiffres arbitraires le tableau n'a pas de sens, et si on le génère, c'est alors en totalité, à partir de la feuille vierge... et avec une macro de ce type on est loin du compte alors.

Bref, je considère qu'il s'agit d'un amusement, à mon avis sans intérêt. La seconde est du même tonneau, pas la peine de s'y attarder. Donc amuse toi bien !

Quant au problème soulevé au départ, les deux macros opérant dans des zones distinctes, sans aucun recoupement, il n'a pas d'existence !

Rechercher des sujets similaires à "probleme macros"