Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Remplacer une formule d'un fichier excel 2007 sur un fichier 2003

7 réponses
Avatar
Jean-Marc
Bonjour.

Je reçois régulièrement un fichier xlsx avec des chiffres d'une personne qui
lui travail sur excel 2007. Pour ma part je travaille sur excel 2003.

Comment je pourrais par le biais d'une macro rendre compatible une formule
excel 2007 sur 2003.

La formule excel 2007 est la suivante :
==_xlfn.IFERROR(IF(U41<R41;U41*N41;R41*N41);"") comment faire avec une macro
pour qu'il utilise une formule identique qui est compatible sur excel 2003,
pour l'appliquer automatiquement sur toutes les cellules.

Merci pour votre réponse. Malheureusement je ne peux pas vous envoyer le
fichier pour des questions de confidentialités.

Salutations

7 réponses

Avatar
MichDenis
IFERROR -> en français -> SIERREUR(valeur,valeur_si_erreur)

Sous les autres versions tu peux utiliser :
si(estErreur(....);sivrai;sifaux)



"Jean-Marc" a écrit dans le message de groupe de
discussion :
Bonjour.

Je reçois régulièrement un fichier xlsx avec des chiffres d'une personne qui
lui travail sur excel 2007. Pour ma part je travaille sur excel 2003.

Comment je pourrais par le biais d'une macro rendre compatible une formule
excel 2007 sur 2003.

La formule excel 2007 est la suivante :
==_xlfn.IFERROR(IF(U41<R41;U41*N41;R41*N41);"") comment faire avec une macro
pour qu'il utilise une formule identique qui est compatible sur excel 2003,
pour l'appliquer automatiquement sur toutes les cellules.

Merci pour votre réponse. Malheureusement je ne peux pas vous envoyer le
fichier pour des questions de confidentialités.

Salutations
Avatar
Daniel.C
Bonjour.
"_xlfn" indique que la fonction qui suit n'existe pas dans ta version
d'Excel. L'équivalent est :
=IF(ISERROR(IF(U41<R41;U41*N41;R41*N41));"";IF(U41<R41;U41*N41;R41*N41))
Cordialement.
Daniel

Bonjour.

Je reçois régulièrement un fichier xlsx avec des chiffres d'une personne qui
lui travail sur excel 2007. Pour ma part je travaille sur excel 2003.

Comment je pourrais par le biais d'une macro rendre compatible une formule
excel 2007 sur 2003.

La formule excel 2007 est la suivante :
==_xlfn.IFERROR(IF(U41<R41;U41*N41;R41*N41);"") comment faire avec une macro
pour qu'il utilise une formule identique qui est compatible sur excel 2003,
pour l'appliquer automatiquement sur toutes les cellules.

Merci pour votre réponse. Malheureusement je ne peux pas vous envoyer le
fichier pour des questions de confidentialités.

Salutations


Avatar
Jean-Marc
Merci beaucoup pour ces informations. Mais ayant plusieurs cellules
impliqués, existe-t'il une solution macro/vba pour appliquer cette formule
dans toutes mes cellules simplement avec un simple clique, car la fonction
_xlfn.IFERROR est utilisé dans plusieurs type de formule dans ce fichier.

Merci d'avance pour votre réponse

"Daniel.C" a écrit :

Bonjour.
"_xlfn" indique que la fonction qui suit n'existe pas dans ta version
d'Excel. L'équivalent est :
=IF(ISERROR(IF(U41<R41;U41*N41;R41*N41));"";IF(U41<R41;U41*N41;R41*N41))
Cordialement.
Daniel

> Bonjour.
>
> Je reçois régulièrement un fichier xlsx avec des chiffres d'une personne qui
> lui travail sur excel 2007. Pour ma part je travaille sur excel 2003.
>
> Comment je pourrais par le biais d'une macro rendre compatible une formule
> excel 2007 sur 2003.
>
> La formule excel 2007 est la suivante :
> ==_xlfn.IFERROR(IF(U41<R41;U41*N41;R41*N41);"") comment faire avec une macro
> pour qu'il utilise une formule identique qui est compatible sur excel 2003,
> pour l'appliquer automatiquement sur toutes les cellules.
>
> Merci pour votre réponse. Malheureusement je ne peux pas vous envoyer le
> fichier pour des questions de confidentialités.
>
> Salutations





Avatar
Daniel.C
Es-tu sûr que la formule commence par "==" ?
Daniel

Merci beaucoup pour ces informations. Mais ayant plusieurs cellules
impliqués, existe-t'il une solution macro/vba pour appliquer cette formule
dans toutes mes cellules simplement avec un simple clique, car la fonction
_xlfn.IFERROR est utilisé dans plusieurs type de formule dans ce fichier.

Merci d'avance pour votre réponse

"Daniel.C" a écrit :

Bonjour.
"_xlfn" indique que la fonction qui suit n'existe pas dans ta version
d'Excel. L'équivalent est :
=IF(ISERROR(IF(U41<R41;U41*N41;R41*N41));"";IF(U41<R41;U41*N41;R41*N41))
Cordialement.
Daniel

Bonjour.

Je reçois régulièrement un fichier xlsx avec des chiffres d'une personne
qui lui travail sur excel 2007. Pour ma part je travaille sur excel 2003.

Comment je pourrais par le biais d'une macro rendre compatible une formule
excel 2007 sur 2003.

La formule excel 2007 est la suivante :
==_xlfn.IFERROR(IF(U41<R41;U41*N41;R41*N41);"") comment faire avec une
macro pour qu'il utilise une formule identique qui est compatible sur
excel 2003, pour l'appliquer automatiquement sur toutes les cellules.

Merci pour votre réponse. Malheureusement je ne peux pas vous envoyer le
fichier pour des questions de confidentialités.

Salutations









Avatar
Jean-Marc
Non je l'ai fait invonlairement lors que j'ai saisi le message sur le forum.
Mais il y a bien un seul
"Daniel.C" a écrit :

Es-tu sûr que la formule commence par "==" ?
Daniel

> Merci beaucoup pour ces informations. Mais ayant plusieurs cellules
> impliqués, existe-t'il une solution macro/vba pour appliquer cette formule
> dans toutes mes cellules simplement avec un simple clique, car la fonction
> _xlfn.IFERROR est utilisé dans plusieurs type de formule dans ce fichier.
>
> Merci d'avance pour votre réponse
>
> "Daniel.C" a écrit :
>
>> Bonjour.
>> "_xlfn" indique que la fonction qui suit n'existe pas dans ta version
>> d'Excel. L'équivalent est :
>> =IF(ISERROR(IF(U41<R41;U41*N41;R41*N41));"";IF(U41<R41;U41*N41;R41*N41))
>> Cordialement.
>> Daniel
>>
>>> Bonjour.
>>>
>>> Je reçois régulièrement un fichier xlsx avec des chiffres d'une personne
>>> qui lui travail sur excel 2007. Pour ma part je travaille sur excel 2003.
>>>
>>> Comment je pourrais par le biais d'une macro rendre compatible une formule
>>> excel 2007 sur 2003.
>>>
>>> La formule excel 2007 est la suivante :
>>> ==_xlfn.IFERROR(IF(U41<R41;U41*N41;R41*N41);"") comment faire avec une
>>> macro pour qu'il utilise une formule identique qui est compatible sur
>>> excel 2003, pour l'appliquer automatiquement sur toutes les cellules.
>>>
>>> Merci pour votre réponse. Malheureusement je ne peux pas vous envoyer le
>>> fichier pour des questions de confidentialités.
>>>
>>> Salutations
>>
>>
>>





Avatar
MichDenis
Adapte le nom de la feuille dans la procédure et/ ou de la plage de cellules

Sub TEST()
Dim Trouve As Range
On Error Resume Next
With Feuil1
With .Cells
Set Trouve = .Find(what:="IFERROR", LookIn:=xlFormulas, lookat:=xlPart)
adr = Trouve.Address
If Not Trouve Is Nothing Then
Do
Trouve.Formula = "=IF(ISERROR(IF(U41<R41," & _
"U41*N41,R41*N41)),"""",IF(U41<R41,U41*N41,R41*N41))"
Set Trouve = .FindNext(Trouve)
Loop Until Trouve.Address = adr Or Trouve Is Nothing
End If
End With
End With
End Sub




"Jean-Marc" a écrit dans le message de groupe de
discussion :
Non je l'ai fait invonlairement lors que j'ai saisi le message sur le forum.
Mais il y a bien un seul
"Daniel.C" a écrit :

Es-tu sûr que la formule commence par "==" ?
Daniel

> Merci beaucoup pour ces informations. Mais ayant plusieurs cellules
> impliqués, existe-t'il une solution macro/vba pour appliquer cette formule
> dans toutes mes cellules simplement avec un simple clique, car la fonction
> _xlfn.IFERROR est utilisé dans plusieurs type de formule dans ce fichier.
>
> Merci d'avance pour votre réponse
>
> "Daniel.C" a écrit :
>
>> Bonjour.
>> "_xlfn" indique que la fonction qui suit n'existe pas dans ta version
>> d'Excel. L'équivalent est :
>> =IF(ISERROR(IF(U41<R41;U41*N41;R41*N41));"";IF(U41<R41;U41*N41;R41*N41))
>> Cordialement.
>> Daniel
>>
>>> Bonjour.
>>>
>>> Je reçois régulièrement un fichier xlsx avec des chiffres d'une personne
>>> qui lui travail sur excel 2007. Pour ma part je travaille sur excel 2003.
>>>
>>> Comment je pourrais par le biais d'une macro rendre compatible une formule
>>> excel 2007 sur 2003.
>>>
>>> La formule excel 2007 est la suivante :
>>> ==_xlfn.IFERROR(IF(U41<R41;U41*N41;R41*N41);"") comment faire avec une
>>> macro pour qu'il utilise une formule identique qui est compatible sur
>>> excel 2003, pour l'appliquer automatiquement sur toutes les cellules.
>>>
>>> Merci pour votre réponse. Malheureusement je ne peux pas vous envoyer le
>>> fichier pour des questions de confidentialités.
>>>
>>> Salutations
>>
>>
>>





Avatar
Laurent
Bonjour a tous,
Ou alors sir le but est de remplacer l'utilisation d'une formule ISERREUR()
par un si(esterreur()) qui fonctionne sous Office 2003 :
...
'enlève le égale
Formule = Right(CStr(ActiveCell.FormulaR1C1),
Len(CStr(ActiveCell.FormulaR1C1)) - 1)

'Enlève le ISERREUR()
Formule = Replace(Formule, "_xlfn.IFERROR(IF", "IF")
'Enlève le dernier argument du ISERREUR()
Formule = Replace(Formule, ","""")", "")
'Applique le SI(ESTERREUR()...
ActiveCell.FormulaR1C1 = "=IF(ISERROR(" & Formule & "),0," & Formule
& ")"
...
A adapter au fichier bien sur (dans une boucle comme l'exemple de michdenis)

Laurent

"MichDenis" a écrit :

Adapte le nom de la feuille dans la procdure et/ ou de la plage de cellules

Sub TEST()
Dim Trouve As Range
On Error Resume Next
With Feuil1
With .Cells
Set Trouve = .Find(what:="IFERROR", LookIn:=xlFormulas, lookat:=xlPart)
adr = Trouve.Address
If Not Trouve Is Nothing Then
Do
Trouve.Formula = "=IF(ISERROR(IF(U41<R41," & _
"U41*N41,R41*N41)),"""",IF(U41<R41,U41*N41,R41*N41))"
Set Trouve = .FindNext(Trouve)
Loop Until Trouve.Address = adr Or Trouve Is Nothing
End If
End With
End With
End Sub




"Jean-Marc" a crit dans le message de groupe de
discussion :
Non je l'ai fait invonlairement lors que j'ai saisi le message sur le forum.
Mais il y a bien un seul >
"Daniel.C" a crit :

> Es-tu sr que la formule commence par "==" ?
> Daniel
>
> > Merci beaucoup pour ces informations. Mais ayant plusieurs cellules
> > impliqus, existe-t'il une solution macro/vba pour appliquer cette formule
> > dans toutes mes cellules simplement avec un simple clique, car la fonction
> > _xlfn.IFERROR est utilis dans plusieurs type de formule dans ce fichier.
> >
> > Merci d'avance pour votre rponse
> >
> > "Daniel.C" a crit :
> >
> >> Bonjour.
> >> "_xlfn" indique que la fonction qui suit n'existe pas dans ta version
> >> d'Excel. L'quivalent est :
> >> =IF(ISERROR(IF(U41<R41;U41*N41;R41*N41));"";IF(U41<R41;U41*N41;R41*N41))
> >> Cordialement.
> >> Daniel
> >>
> >>> Bonjour.
> >>>
> >>> Je reois rgulirement un fichier xlsx avec des chiffres d'une personne
> >>> qui lui travail sur excel 2007. Pour ma part je travaille sur excel 2003.
> >>>
> >>> Comment je pourrais par le biais d'une macro rendre compatible une formule
> >>> excel 2007 sur 2003.
> >>>
> >>> La formule excel 2007 est la suivante :
> >>> ==_xlfn.IFERROR(IF(U41<R41;U41*N41;R41*N41);"") comment faire avec une
> >>> macro pour qu'il utilise une formule identique qui est compatible sur
> >>> excel 2003, pour l'appliquer automatiquement sur toutes les cellules.
> >>>
> >>> Merci pour votre rponse. Malheureusement je ne peux pas vous envoyer le
> >>> fichier pour des questions de confidentialits.
> >>>
> >>> Salutations
> >>
> >>
> >>
>
>
>