Bonjour,
Je ne comprend pas très bien, si j'extrait le code de ma macro feuille pour le mettre dans ma macro module, je perd un peu l'intérêt de mettre ce code dans ma feuille et en plus je fais un doublons du même macro non?
La solution de Robert fonctionne (avec le Application.EnableEvents = False) mais ne me permet pas de relancer ma macro feuille qui, je pense, ne se lance que par événement et d'ailleurs ne se lance pas du tout (pareil pour une macro feuille qui est sensée se lancer au moment ou je sélectionne une cellule..).
Pour plus de compréhension, je mets les deux codes dans ce message:
Le premier, Macro Module, qui me permet d'insérer un nouveau client avec détails à partir d'un formulaire prérempli
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| Option Explicit
Sub Macro1()
'
' Macro1 Macro
Application.EnableEvents = False
Dim i As Integer
Dim j As Integer
Sheets("Data").Select
Rows("2:2").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Rows("2:2").Select
Selection.ClearFormats
Sheets("DashBoard").Select
For i = 1 To 12
Worksheets("Data").Cells(2, 1 + i) = Worksheets("DashBoard").Cells(5 + i, 13)
Next
Sheets("Data").Select
Range("A2").Select
With Selection.Font
.Size = 14
End With
For j = 1 To 11
Worksheets("DashBoard").Cells(5 + j, 13) = ""
Next
Sheets("Data").Range("O2").Select
ActiveCell.FormulaR1C1 = _
"=IF(TODAY()-RC[-3]=TODAY(),""Make contact"",IF(TODAY()-RC[-3]<DashBoard!R2C13,""take Care"",IF(TODAY()-RC[-3]<DashBoard!R3C13,""Relaunch"",IF(TODAY()-RC[-3]<>TODAY(),""Remake Contact"",""""))))"
Range("A2:V2").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders()
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders()
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders()
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders()
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
' Macro3 Macro
Application.EnableEvents = True
End Sub |
Le deuxième, Macro feuille, qui me permet d'extraire de la base de donnée les infos de Pays et de client, de trier par ordre alphabétique cette extraction et de trier aussi la base de donnée (j'ai donc besoin de d'abord remplir une ligne avant de la triée, sinon je la fractionne et c'es tout pas beau
1 2 3 4 5 6 7 8 9
| Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([B2:C1000], Target) Is Nothing And Target.Count = 1 Then
[B2:V1000].Sort Key1:=[B2], Key2:=[B2], Key3:=[B2]
[B1:C1000].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[Z1], Unique:=True
[B1:C1000].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[Z1:AA1], Unique:=True
End If
End If
End Sub |
En espérant que vous comprendrez mieux mon problème et pourrez m'aider!
Partager