Bonjour à tous,
J'ai créé une macro qui dans un classeur A:
Ouvre un nouveau classeur B
Retourne sur A pour y copier des données
Va sur B pour y coller les données
Fait des tri ...
Ouvre une boîte de dialogue pour l'enregistrement de B
Puis retourne sur A.
Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Sub Export_Modif() ' ' Export_Modif Macro ' ' Sheets("Modif").Select Cells.Select Selection.Copy Workbooks.Add Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=True, Transpose:=False Windows("Spendvision V3.xlsm").Activate Sheets("New employee").Select Range("A2:AB5000").Select Selection.Copy Windows("Classeur1").Activate Range("A5001").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False ActiveWindow.DisplayZeros = False ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("A2:A5000" _ ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortTextAsNumbers With ActiveWorkbook.Worksheets("Feuil1").Sort .SetRange Range("A1:AE11000") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Range("A2").Select ' Boite de dialogue Enregistrer sous Application.Dialogs(xlDialogSaveAs).Show Windows("Spendvision V3.xlsm").Activate Sheets("Spendvision").Select Range("A2").Select Sheets("Managers").Select Range("A2").Select Sheets("Emails").Select Range("A2").Select Sheets("Mouvements").Select Range("A2").Select Sheets("Results").Select Range("A18").Select Sheets("Modif").Select Range("A2").Select Sheets("New employee").Select Range("A2").Select Sheets("Mode opératoire").Select Range("A4").Select End Sub
Tout marche bien sauf que lorsque je répète cette macro une seconde fois ça bug du fait que classeur A lors de sa création s'appelle classeur 1 la 1ère fois mais si on recommence cela devient classeur 2 puis 3 ...
Comment contourner ce problème ?
PS Je débute en VBA
Merci de votre aide
Partager