Bonjour,
Je me permets d'ouvrir une discussion car j'ai un problème pour un code très simple, mais c'est la première fois que j'essais de faire une macro...
Ce que je veux faire est très simple et requier deux étapes.
1) J'ai une liste de code à 4 lettres sur une collonne. Je voudrais copier coller cette colonne à coté puis changer certains codes par d'autres. Les codes ayant été changer devrait apparaitre sur fond jaune.
2) Je voudrais copier coller cette liste modifier à coté pour remplacer les codes par des numéros.
J'ai donc créé le code suivant qui n'est certainement pas optimisé, et qui surtout, ne marche pas. Quand je le lance, le copier coller fonctionne bien mais rien n'est remplacé. Toutes les cases non utilisées sont rendu en fond jaune. Et les chiffre apparaissent sous la liste de code...
De plus, à la manière donc je l'ai codé, la liste est limité à 60 codes...
Que s'est-il passé ? Comment corriger ce code ? Comment l'améliorer pour qu'il prenne en compte une colonne entière (les listes que je veux lui faire remplacer sont de longueurs variables) ?
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 Function changer(code1, code2) Selection.Replace What:=code1, Replacement:=code2, LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=True End Function Sub conversion() ' Conversion Macro ' Macro enregistrée le 06/12/2012 par Mathspountz ' Touche de raccourci du clavier: Ctrl+p Range("A2:A100").Select Application.CutCopyMode = False Selection.Copy Range("C2").Select ActiveSheet.Paste 'copier coller With Application.ReplaceFormat.Font .FontStyle = "Gras" .Subscript = False End With Application.ReplaceFormat.Interior.ColorIndex = 6 'mise en page des remplacements Call changer(AABB, CCDD) Call changer(AACC, GGTT) Call changer(YYTT, IUJN) Call changer(PPOO, Error) 'liste des choses à changer Range("C2:C100").Select Application.CutCopyMode = False Selection.Copy Range("E2").Select ActiveSheet.Paste 'copier coller Call changer(AABB, 800) Call changer(AACC, 700) Call changer(YYTT, 600) Call changer(PPOO, 500) 'liste des choses à changer End sub
Partager