Bonjour,
Afin de rendre compatible mon classeur avec Excel 2003, je dois modifier toutes les cellules comprenant la formule sierreur(... par si(esterreur..., en essayant de récupérer automatique les arguments.
J'ai réussi à appliquer ma macro sur une cellule active, mais je n'arrive pas à l'appliquer sur l'ensemble des cellules non vides, que je sélectionne préalablement à l'aide d'une macro, qui fonctionne.
Pourriez-vous me donner un peu d'aide?
Merci beaucoup.
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 Sub RemplacerSiErreur() ' ' Macro2 Macro Dim Formule As String Dim Trouve As Range On Error Resume Next Set Trouve = Selection.Find(what:="SIERREUR", LookIn:=xlFormulas, lookat:=xlPart) adr = Trouve.Address If Not Trouve Is Nothing Then Do 'enlève le égale Formule = Right(CStr(ActiveCell.FormulaR1C1), Len(CStr(ActiveCell.FormulaR1C1)) - 1) 'Enlève le ISERREUR() Formule = Replace(Formule, "IFERROR", "") 'Enlève le dernier argument du ISERREUR() Formule = Replace(Formule, ",0", "") 'Scinder les deux parties de la formule 'param = Split(Formule, ";") 'Applique le SI(ESTERREUR()... FormulaR1C1 = "=SI(ESTERREUR(" & Formule & "),0," & Formule & ")" Set Trouve = Selection.FindNext(Trouve) Loop Until Trouve.Address = adr Or Trouve Is Nothing End If End Sub
Partager