probleme fonction remplacement
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:
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 |