Bonjour,
Je suis étudiant et je cherche à développer une macros basé sur un SI pour mon épreuve d'oral en fin d'année.
Mon classeur excel (Classeur test.xls) est basé sur une liste déroulante (des dates) qui me reporte des montants sur tous mes tableaux de coûts situés dans les feuilles suivantes (il s'agit d'une application de contrôle de gestion).
Je souhaite donc faire une macro qui me sélectionne mon résultat analytique, ouvre un nouveau classeur (analyse.xls) existant et colle ce résultat analytique dans ce nouveau classeur ouvert. Je souhaite qu'il le colle à différents endroits selon la période. C'est pourquoi j'ai pensé à une fonction SI.
Mon code VBA est donc celui-ci
La cellule contenant la date est une cellule avec une fonction qui me renvoie la date au format mai 2008.
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 Sub MacroTest() Workbooks.Open Filename:= _ "G:\Tableaux de couts\analyse.xls" Windows("Classeur test.xls").Activate If DateChoixTxt = mai_2008 Then Windows("Classeur test.xls").Activate Sheets("Résultat analytique").Select Range("D7:D9").Select Selection.Copy Windows("analyse.xls").Activate Sheets("Ecart").Select Range("B4:B6").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Else Windows("Classeur test.xls").Activate Sheets("Résultat analytique").Select Range("D7:D9").Select Selection.Copy Windows("analyse.xls").Activate Sheets("Ecart").Select Range("E4:E6").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End If End Sub
Le code a l'air bon.
Et pourtant, j'ai beau tester des tas de trucs, quand je lance la macro, elle colle toujours dans les cellules B4:B6, sans tenir compte de la condition.
J'ai peut-être fait une erreur dans la syntaxe. A vrai dire, je ne suis qu'un débutant en VBA.
Je sollicite donc votre aide, après des heures à avoir planché sur le sujet sans résultat.
Merci d'avance pour votre aide,
Cordialement,
Partager