Bonjour,
Je voudrais créer une fonction personnalisée qui renverrait soit le
résultat
de ma formule, soit «» si une des cellules utilisée dans mon calcul est
vide
ou contient une valeur non valide (erreur ou texte par exemple).
Par exemple, je taperai dans une cellule =MaFonction (C1*A1/B1) , et la
fonction retournerait «» si C1, A1 ou B1 sont vide ou si le résultat du
calcul est une erreur. Si les trois cellules contiennent un nombre, alors
ma
fonction renverrait le résultat du calcul.
Est-ce que quelqu'un a une idée ?
J'ai réussi à créer une macro qui vérifie si les antécédents de la cellule
active contiennent tous des valeurs et qui insère « VRAI » dans la cellule
en
dessous si l'un des antécédents est une cellule vide, mais ça ne l'a pas
beaucoup avancé. Pour info, le code de ma macro est à la fin du message.
J'ai pensé que je pourrais insérer ma formule en tant qu'argument texte
dans
la fonction (=MaFonction (« C1*A1/B1 »)), puis je pourrais vérifier que
tous
les antécédents de ma formule contiennent des valeurs. Le hic, c'est que
si
je défini l'argument de ma fonction comme une chaine de caractère, je ne
sais
pas comment faire pour que vba le voit comme une formule et recherche les
antécédents. (i.e. je ne peux pas utiliser la fonction .DirectPrecedents).
Merci de votre aide !
Farah
Code de ma macro :
Sub Empty_precedent()
Dim Cd As Range
Dim ok As Boolean
ok = False
Set Cd = ActiveCell.DirectPrecedents
For Each d In Cd
If IsEmpty(d) Then
ok = True
End If
Next
ActiveCell.Offset(1).Value = ok
End Sub
Bonjour,
Je voudrais créer une fonction personnalisée qui renverrait soit le
résultat
de ma formule, soit «» si une des cellules utilisée dans mon calcul est
vide
ou contient une valeur non valide (erreur ou texte par exemple).
Par exemple, je taperai dans une cellule =MaFonction (C1*A1/B1) , et la
fonction retournerait «» si C1, A1 ou B1 sont vide ou si le résultat du
calcul est une erreur. Si les trois cellules contiennent un nombre, alors
ma
fonction renverrait le résultat du calcul.
Est-ce que quelqu'un a une idée ?
J'ai réussi à créer une macro qui vérifie si les antécédents de la cellule
active contiennent tous des valeurs et qui insère « VRAI » dans la cellule
en
dessous si l'un des antécédents est une cellule vide, mais ça ne l'a pas
beaucoup avancé. Pour info, le code de ma macro est à la fin du message.
J'ai pensé que je pourrais insérer ma formule en tant qu'argument texte
dans
la fonction (=MaFonction (« C1*A1/B1 »)), puis je pourrais vérifier que
tous
les antécédents de ma formule contiennent des valeurs. Le hic, c'est que
si
je défini l'argument de ma fonction comme une chaine de caractère, je ne
sais
pas comment faire pour que vba le voit comme une formule et recherche les
antécédents. (i.e. je ne peux pas utiliser la fonction .DirectPrecedents).
Merci de votre aide !
Farah
Code de ma macro :
Sub Empty_precedent()
Dim Cd As Range
Dim ok As Boolean
ok = False
Set Cd = ActiveCell.DirectPrecedents
For Each d In Cd
If IsEmpty(d) Then
ok = True
End If
Next
ActiveCell.Offset(1).Value = ok
End Sub
Bonjour,
Je voudrais créer une fonction personnalisée qui renverrait soit le
résultat
de ma formule, soit «» si une des cellules utilisée dans mon calcul est
vide
ou contient une valeur non valide (erreur ou texte par exemple).
Par exemple, je taperai dans une cellule =MaFonction (C1*A1/B1) , et la
fonction retournerait «» si C1, A1 ou B1 sont vide ou si le résultat du
calcul est une erreur. Si les trois cellules contiennent un nombre, alors
ma
fonction renverrait le résultat du calcul.
Est-ce que quelqu'un a une idée ?
J'ai réussi à créer une macro qui vérifie si les antécédents de la cellule
active contiennent tous des valeurs et qui insère « VRAI » dans la cellule
en
dessous si l'un des antécédents est une cellule vide, mais ça ne l'a pas
beaucoup avancé. Pour info, le code de ma macro est à la fin du message.
J'ai pensé que je pourrais insérer ma formule en tant qu'argument texte
dans
la fonction (=MaFonction (« C1*A1/B1 »)), puis je pourrais vérifier que
tous
les antécédents de ma formule contiennent des valeurs. Le hic, c'est que
si
je défini l'argument de ma fonction comme une chaine de caractère, je ne
sais
pas comment faire pour que vba le voit comme une formule et recherche les
antécédents. (i.e. je ne peux pas utiliser la fonction .DirectPrecedents).
Merci de votre aide !
Farah
Code de ma macro :
Sub Empty_precedent()
Dim Cd As Range
Dim ok As Boolean
ok = False
Set Cd = ActiveCell.DirectPrecedents
For Each d In Cd
If IsEmpty(d) Then
ok = True
End If
Next
ActiveCell.Offset(1).Value = ok
End Sub
Bonjour,
Je voudrais créer une fonction personnalisée qui renverrait soit le r ésultat
de ma formule, soit <<>> si une des cellules utilisée dans mon calcul es t vide
ou contient une valeur non valide (erreur ou texte par exemple).
Par exemple, je taperai dans une cellule =MaFonction (C1*A1/B1) , et la
fonction retournerait <<>> si C1, A1 ou B1 sont vide ou si le résultat d u
calcul est une erreur. Si les trois cellules contiennent un nombre, alors ma
fonction renverrait le résultat du calcul.
Est-ce que quelqu'un a une idée ?
J'ai réussi à créer une macro qui vérifie si les antécédents d e la cellule
active contiennent tous des valeurs et qui insère << VRAI >> dans la cel lule en
dessous si l'un des antécédents est une cellule vide, mais ça ne l'a pas
beaucoup avancé... Pour info, le code de ma macro est à la fin du mess age.
J'ai pensé que je pourrais insérer ma formule en tant qu'argument text e dans
la fonction (=MaFonction (<< C1*A1/B1 >>)), puis je pourrais vérifier que tous
les antécédents de ma formule contiennent des valeurs. Le hic, c'est q ue si
je défini l'argument de ma fonction comme une chaine de caractère, je ne sais
pas comment faire pour que vba le voit comme une formule et recherche les
antécédents. (i.e. je ne peux pas utiliser la fonction .DirectPreceden ts).
Merci de votre aide !
Farah
Code de ma macro :
Sub Empty_precedent()
Dim Cd As Range
Dim ok As Boolean
ok = False
Set Cd = ActiveCell.DirectPrecedents
For Each d In Cd
If IsEmpty(d) Then
ok = True
End If
Next
ActiveCell.Offset(1).Value = ok
End Sub
Bonjour,
Je voudrais créer une fonction personnalisée qui renverrait soit le r ésultat
de ma formule, soit <<>> si une des cellules utilisée dans mon calcul es t vide
ou contient une valeur non valide (erreur ou texte par exemple).
Par exemple, je taperai dans une cellule =MaFonction (C1*A1/B1) , et la
fonction retournerait <<>> si C1, A1 ou B1 sont vide ou si le résultat d u
calcul est une erreur. Si les trois cellules contiennent un nombre, alors ma
fonction renverrait le résultat du calcul.
Est-ce que quelqu'un a une idée ?
J'ai réussi à créer une macro qui vérifie si les antécédents d e la cellule
active contiennent tous des valeurs et qui insère << VRAI >> dans la cel lule en
dessous si l'un des antécédents est une cellule vide, mais ça ne l'a pas
beaucoup avancé... Pour info, le code de ma macro est à la fin du mess age.
J'ai pensé que je pourrais insérer ma formule en tant qu'argument text e dans
la fonction (=MaFonction (<< C1*A1/B1 >>)), puis je pourrais vérifier que tous
les antécédents de ma formule contiennent des valeurs. Le hic, c'est q ue si
je défini l'argument de ma fonction comme une chaine de caractère, je ne sais
pas comment faire pour que vba le voit comme une formule et recherche les
antécédents. (i.e. je ne peux pas utiliser la fonction .DirectPreceden ts).
Merci de votre aide !
Farah
Code de ma macro :
Sub Empty_precedent()
Dim Cd As Range
Dim ok As Boolean
ok = False
Set Cd = ActiveCell.DirectPrecedents
For Each d In Cd
If IsEmpty(d) Then
ok = True
End If
Next
ActiveCell.Offset(1).Value = ok
End Sub
Bonjour,
Je voudrais créer une fonction personnalisée qui renverrait soit le r ésultat
de ma formule, soit <<>> si une des cellules utilisée dans mon calcul es t vide
ou contient une valeur non valide (erreur ou texte par exemple).
Par exemple, je taperai dans une cellule =MaFonction (C1*A1/B1) , et la
fonction retournerait <<>> si C1, A1 ou B1 sont vide ou si le résultat d u
calcul est une erreur. Si les trois cellules contiennent un nombre, alors ma
fonction renverrait le résultat du calcul.
Est-ce que quelqu'un a une idée ?
J'ai réussi à créer une macro qui vérifie si les antécédents d e la cellule
active contiennent tous des valeurs et qui insère << VRAI >> dans la cel lule en
dessous si l'un des antécédents est une cellule vide, mais ça ne l'a pas
beaucoup avancé... Pour info, le code de ma macro est à la fin du mess age.
J'ai pensé que je pourrais insérer ma formule en tant qu'argument text e dans
la fonction (=MaFonction (<< C1*A1/B1 >>)), puis je pourrais vérifier que tous
les antécédents de ma formule contiennent des valeurs. Le hic, c'est q ue si
je défini l'argument de ma fonction comme une chaine de caractère, je ne sais
pas comment faire pour que vba le voit comme une formule et recherche les
antécédents. (i.e. je ne peux pas utiliser la fonction .DirectPreceden ts).
Merci de votre aide !
Farah
Code de ma macro :
Sub Empty_precedent()
Dim Cd As Range
Dim ok As Boolean
ok = False
Set Cd = ActiveCell.DirectPrecedents
For Each d In Cd
If IsEmpty(d) Then
ok = True
End If
Next
ActiveCell.Offset(1).Value = ok
End Sub
Bonjour,
Je voudrais créer une fonction personnalisée qui renverrait soit le
résultat
de ma formule, soit «» si une des cellules utilisée dans mon calcul est
vide
ou contient une valeur non valide (erreur ou texte par exemple).
Par exemple, je taperai dans une cellule =MaFonction (C1*A1/B1) , et la
fonction retournerait «» si C1, A1 ou B1 sont vide ou si le résultat du
calcul est une erreur. Si les trois cellules contiennent un nombre, alors
ma
fonction renverrait le résultat du calcul.
Est-ce que quelqu'un a une idée ?
J'ai réussi à créer une macro qui vérifie si les antécédents de la cellule
active contiennent tous des valeurs et qui insère « VRAI » dans la cellule
en
dessous si l'un des antécédents est une cellule vide, mais ça ne l'a pas
beaucoup avancé. Pour info, le code de ma macro est à la fin du message.
J'ai pensé que je pourrais insérer ma formule en tant qu'argument texte
dans
la fonction (=MaFonction (« C1*A1/B1 »)), puis je pourrais vérifier que
tous
les antécédents de ma formule contiennent des valeurs. Le hic, c'est que
si
je défini l'argument de ma fonction comme une chaine de caractère, je ne
sais
pas comment faire pour que vba le voit comme une formule et recherche les
antécédents. (i.e. je ne peux pas utiliser la fonction .DirectPrecedents).
Merci de votre aide !
Farah
Code de ma macro :
Sub Empty_precedent()
Dim Cd As Range
Dim ok As Boolean
ok = False
Set Cd = ActiveCell.DirectPrecedents
For Each d In Cd
If IsEmpty(d) Then
ok = True
End If
Next
ActiveCell.Offset(1).Value = ok
End Sub
Bonjour,
Je voudrais créer une fonction personnalisée qui renverrait soit le
résultat
de ma formule, soit «» si une des cellules utilisée dans mon calcul est
vide
ou contient une valeur non valide (erreur ou texte par exemple).
Par exemple, je taperai dans une cellule =MaFonction (C1*A1/B1) , et la
fonction retournerait «» si C1, A1 ou B1 sont vide ou si le résultat du
calcul est une erreur. Si les trois cellules contiennent un nombre, alors
ma
fonction renverrait le résultat du calcul.
Est-ce que quelqu'un a une idée ?
J'ai réussi à créer une macro qui vérifie si les antécédents de la cellule
active contiennent tous des valeurs et qui insère « VRAI » dans la cellule
en
dessous si l'un des antécédents est une cellule vide, mais ça ne l'a pas
beaucoup avancé. Pour info, le code de ma macro est à la fin du message.
J'ai pensé que je pourrais insérer ma formule en tant qu'argument texte
dans
la fonction (=MaFonction (« C1*A1/B1 »)), puis je pourrais vérifier que
tous
les antécédents de ma formule contiennent des valeurs. Le hic, c'est que
si
je défini l'argument de ma fonction comme une chaine de caractère, je ne
sais
pas comment faire pour que vba le voit comme une formule et recherche les
antécédents. (i.e. je ne peux pas utiliser la fonction .DirectPrecedents).
Merci de votre aide !
Farah
Code de ma macro :
Sub Empty_precedent()
Dim Cd As Range
Dim ok As Boolean
ok = False
Set Cd = ActiveCell.DirectPrecedents
For Each d In Cd
If IsEmpty(d) Then
ok = True
End If
Next
ActiveCell.Offset(1).Value = ok
End Sub
Bonjour,
Je voudrais créer une fonction personnalisée qui renverrait soit le
résultat
de ma formule, soit «» si une des cellules utilisée dans mon calcul est
vide
ou contient une valeur non valide (erreur ou texte par exemple).
Par exemple, je taperai dans une cellule =MaFonction (C1*A1/B1) , et la
fonction retournerait «» si C1, A1 ou B1 sont vide ou si le résultat du
calcul est une erreur. Si les trois cellules contiennent un nombre, alors
ma
fonction renverrait le résultat du calcul.
Est-ce que quelqu'un a une idée ?
J'ai réussi à créer une macro qui vérifie si les antécédents de la cellule
active contiennent tous des valeurs et qui insère « VRAI » dans la cellule
en
dessous si l'un des antécédents est une cellule vide, mais ça ne l'a pas
beaucoup avancé. Pour info, le code de ma macro est à la fin du message.
J'ai pensé que je pourrais insérer ma formule en tant qu'argument texte
dans
la fonction (=MaFonction (« C1*A1/B1 »)), puis je pourrais vérifier que
tous
les antécédents de ma formule contiennent des valeurs. Le hic, c'est que
si
je défini l'argument de ma fonction comme une chaine de caractère, je ne
sais
pas comment faire pour que vba le voit comme une formule et recherche les
antécédents. (i.e. je ne peux pas utiliser la fonction .DirectPrecedents).
Merci de votre aide !
Farah
Code de ma macro :
Sub Empty_precedent()
Dim Cd As Range
Dim ok As Boolean
ok = False
Set Cd = ActiveCell.DirectPrecedents
For Each d In Cd
If IsEmpty(d) Then
ok = True
End If
Next
ActiveCell.Offset(1).Value = ok
End Sub
Bonjour,
Peut-être sans macro
=SI(NB(A1:C1)<>3;"Donnée absente ou non
numérique";SI(ESTERREUR(C1*A1/B1);"Erreur";C1*A1/B1))
--
Salutations
JJ
"Farah" a écrit dans le message de new s:Bonjour,
Je voudrais créer une fonction personnalisée qui renverrait soit le
résultat
de ma formule, soit «» si une des cellules utilisée dans mon calcu l est
vide
ou contient une valeur non valide (erreur ou texte par exemple).
Par exemple, je taperai dans une cellule =MaFonction (C1*A1/B1) , et l a
fonction retournerait «» si C1, A1 ou B1 sont vide ou si le résult at du
calcul est une erreur. Si les trois cellules contiennent un nombre, alor s
ma
fonction renverrait le résultat du calcul.
Est-ce que quelqu'un a une idée ?
J'ai réussi à créer une macro qui vérifie si les antécédents de la cellule
active contiennent tous des valeurs et qui insère « VRAI » dans la cellule
en
dessous si l'un des antécédents est une cellule vide, mais ça ne l 'a pas
beaucoup avancé. Pour info, le code de ma macro est à la fin du mess age.
J'ai pensé que je pourrais insérer ma formule en tant qu'argument te xte
dans
la fonction (=MaFonction (« C1*A1/B1 »)), puis je pourrais vérif ier que
tous
les antécédents de ma formule contiennent des valeurs. Le hic, c'est que
si
je défini l'argument de ma fonction comme une chaine de caractère, j e ne
sais
pas comment faire pour que vba le voit comme une formule et recherche le s
antécédents. (i.e. je ne peux pas utiliser la fonction .DirectPreced ents).
Merci de votre aide !
Farah
Code de ma macro :
Sub Empty_precedent()
Dim Cd As Range
Dim ok As Boolean
ok = False
Set Cd = ActiveCell.DirectPrecedents
For Each d In Cd
If IsEmpty(d) Then
ok = True
End If
Next
ActiveCell.Offset(1).Value = ok
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Peut-être sans macro
=SI(NB(A1:C1)<>3;"Donnée absente ou non
numérique";SI(ESTERREUR(C1*A1/B1);"Erreur";C1*A1/B1))
--
Salutations
JJ
"Farah" <Fa...@discussions.microsoft.com> a écrit dans le message de new s:
499AFEB1-4B4E-4A4A-BF91-BA14FBC74...@microsoft.com...
Bonjour,
Je voudrais créer une fonction personnalisée qui renverrait soit le
résultat
de ma formule, soit «» si une des cellules utilisée dans mon calcu l est
vide
ou contient une valeur non valide (erreur ou texte par exemple).
Par exemple, je taperai dans une cellule =MaFonction (C1*A1/B1) , et l a
fonction retournerait «» si C1, A1 ou B1 sont vide ou si le résult at du
calcul est une erreur. Si les trois cellules contiennent un nombre, alor s
ma
fonction renverrait le résultat du calcul.
Est-ce que quelqu'un a une idée ?
J'ai réussi à créer une macro qui vérifie si les antécédents de la cellule
active contiennent tous des valeurs et qui insère « VRAI » dans la cellule
en
dessous si l'un des antécédents est une cellule vide, mais ça ne l 'a pas
beaucoup avancé. Pour info, le code de ma macro est à la fin du mess age.
J'ai pensé que je pourrais insérer ma formule en tant qu'argument te xte
dans
la fonction (=MaFonction (« C1*A1/B1 »)), puis je pourrais vérif ier que
tous
les antécédents de ma formule contiennent des valeurs. Le hic, c'est que
si
je défini l'argument de ma fonction comme une chaine de caractère, j e ne
sais
pas comment faire pour que vba le voit comme une formule et recherche le s
antécédents. (i.e. je ne peux pas utiliser la fonction .DirectPreced ents).
Merci de votre aide !
Farah
Code de ma macro :
Sub Empty_precedent()
Dim Cd As Range
Dim ok As Boolean
ok = False
Set Cd = ActiveCell.DirectPrecedents
For Each d In Cd
If IsEmpty(d) Then
ok = True
End If
Next
ActiveCell.Offset(1).Value = ok
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Peut-être sans macro
=SI(NB(A1:C1)<>3;"Donnée absente ou non
numérique";SI(ESTERREUR(C1*A1/B1);"Erreur";C1*A1/B1))
--
Salutations
JJ
"Farah" a écrit dans le message de new s:Bonjour,
Je voudrais créer une fonction personnalisée qui renverrait soit le
résultat
de ma formule, soit «» si une des cellules utilisée dans mon calcu l est
vide
ou contient une valeur non valide (erreur ou texte par exemple).
Par exemple, je taperai dans une cellule =MaFonction (C1*A1/B1) , et l a
fonction retournerait «» si C1, A1 ou B1 sont vide ou si le résult at du
calcul est une erreur. Si les trois cellules contiennent un nombre, alor s
ma
fonction renverrait le résultat du calcul.
Est-ce que quelqu'un a une idée ?
J'ai réussi à créer une macro qui vérifie si les antécédents de la cellule
active contiennent tous des valeurs et qui insère « VRAI » dans la cellule
en
dessous si l'un des antécédents est une cellule vide, mais ça ne l 'a pas
beaucoup avancé. Pour info, le code de ma macro est à la fin du mess age.
J'ai pensé que je pourrais insérer ma formule en tant qu'argument te xte
dans
la fonction (=MaFonction (« C1*A1/B1 »)), puis je pourrais vérif ier que
tous
les antécédents de ma formule contiennent des valeurs. Le hic, c'est que
si
je défini l'argument de ma fonction comme une chaine de caractère, j e ne
sais
pas comment faire pour que vba le voit comme une formule et recherche le s
antécédents. (i.e. je ne peux pas utiliser la fonction .DirectPreced ents).
Merci de votre aide !
Farah
Code de ma macro :
Sub Empty_precedent()
Dim Cd As Range
Dim ok As Boolean
ok = False
Set Cd = ActiveCell.DirectPrecedents
For Each d In Cd
If IsEmpty(d) Then
ok = True
End If
Next
ActiveCell.Offset(1).Value = ok
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Je suppose que Farah veut une fonction générique pour toute expression
et pas seulement pour l'exemple.
JB
On 7 mar, 12:57, "Jacky" wrote:Bonjour,
Peut-être sans macro
=SI(NB(A1:C1)<>3;"Donnée absente ou non
numérique";SI(ESTERREUR(C1*A1/B1);"Erreur";C1*A1/B1))
--
Salutations
JJ
"Farah" a écrit dans le message de news:Bonjour,
Je voudrais créer une fonction personnalisée qui renverrait soit le
résultat
de ma formule, soit «» si une des cellules utilisée dans mon calcul est
vide
ou contient une valeur non valide (erreur ou texte par exemple).
Par exemple, je taperai dans une cellule =MaFonction (C1*A1/B1) , et la
fonction retournerait «» si C1, A1 ou B1 sont vide ou si le résultat du
calcul est une erreur. Si les trois cellules contiennent un nombre, alors
ma
fonction renverrait le résultat du calcul.
Est-ce que quelqu'un a une idée ?
J'ai réussi à créer une macro qui vérifie si les antécédents de la cellule
active contiennent tous des valeurs et qui insère « VRAI » dans la cellule
en
dessous si l'un des antécédents est une cellule vide, mais ça ne l'a pas
beaucoup avancé. Pour info, le code de ma macro est à la fin du message.
J'ai pensé que je pourrais insérer ma formule en tant qu'argument texte
dans
la fonction (=MaFonction (« C1*A1/B1 »)), puis je pourrais vérifier que
tous
les antécédents de ma formule contiennent des valeurs. Le hic, c'est que
si
je défini l'argument de ma fonction comme une chaine de caractère, je ne
sais
pas comment faire pour que vba le voit comme une formule et recherche les
antécédents. (i.e. je ne peux pas utiliser la fonction .DirectPrecedents).
Merci de votre aide !
Farah
Code de ma macro :
Sub Empty_precedent()
Dim Cd As Range
Dim ok As Boolean
ok = False
Set Cd = ActiveCell.DirectPrecedents
For Each d In Cd
If IsEmpty(d) Then
ok = True
End If
Next
ActiveCell.Offset(1).Value = ok
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Je suppose que Farah veut une fonction générique pour toute expression
et pas seulement pour l'exemple.
JB
On 7 mar, 12:57, "Jacky" <Dup...@marcel.fr> wrote:
Bonjour,
Peut-être sans macro
=SI(NB(A1:C1)<>3;"Donnée absente ou non
numérique";SI(ESTERREUR(C1*A1/B1);"Erreur";C1*A1/B1))
--
Salutations
JJ
"Farah" <Fa...@discussions.microsoft.com> a écrit dans le message de news:
499AFEB1-4B4E-4A4A-BF91-BA14FBC74...@microsoft.com...
Bonjour,
Je voudrais créer une fonction personnalisée qui renverrait soit le
résultat
de ma formule, soit «» si une des cellules utilisée dans mon calcul est
vide
ou contient une valeur non valide (erreur ou texte par exemple).
Par exemple, je taperai dans une cellule =MaFonction (C1*A1/B1) , et la
fonction retournerait «» si C1, A1 ou B1 sont vide ou si le résultat du
calcul est une erreur. Si les trois cellules contiennent un nombre, alors
ma
fonction renverrait le résultat du calcul.
Est-ce que quelqu'un a une idée ?
J'ai réussi à créer une macro qui vérifie si les antécédents de la cellule
active contiennent tous des valeurs et qui insère « VRAI » dans la cellule
en
dessous si l'un des antécédents est une cellule vide, mais ça ne l'a pas
beaucoup avancé. Pour info, le code de ma macro est à la fin du message.
J'ai pensé que je pourrais insérer ma formule en tant qu'argument texte
dans
la fonction (=MaFonction (« C1*A1/B1 »)), puis je pourrais vérifier que
tous
les antécédents de ma formule contiennent des valeurs. Le hic, c'est que
si
je défini l'argument de ma fonction comme une chaine de caractère, je ne
sais
pas comment faire pour que vba le voit comme une formule et recherche les
antécédents. (i.e. je ne peux pas utiliser la fonction .DirectPrecedents).
Merci de votre aide !
Farah
Code de ma macro :
Sub Empty_precedent()
Dim Cd As Range
Dim ok As Boolean
ok = False
Set Cd = ActiveCell.DirectPrecedents
For Each d In Cd
If IsEmpty(d) Then
ok = True
End If
Next
ActiveCell.Offset(1).Value = ok
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Je suppose que Farah veut une fonction générique pour toute expression
et pas seulement pour l'exemple.
JB
On 7 mar, 12:57, "Jacky" wrote:Bonjour,
Peut-être sans macro
=SI(NB(A1:C1)<>3;"Donnée absente ou non
numérique";SI(ESTERREUR(C1*A1/B1);"Erreur";C1*A1/B1))
--
Salutations
JJ
"Farah" a écrit dans le message de news:Bonjour,
Je voudrais créer une fonction personnalisée qui renverrait soit le
résultat
de ma formule, soit «» si une des cellules utilisée dans mon calcul est
vide
ou contient une valeur non valide (erreur ou texte par exemple).
Par exemple, je taperai dans une cellule =MaFonction (C1*A1/B1) , et la
fonction retournerait «» si C1, A1 ou B1 sont vide ou si le résultat du
calcul est une erreur. Si les trois cellules contiennent un nombre, alors
ma
fonction renverrait le résultat du calcul.
Est-ce que quelqu'un a une idée ?
J'ai réussi à créer une macro qui vérifie si les antécédents de la cellule
active contiennent tous des valeurs et qui insère « VRAI » dans la cellule
en
dessous si l'un des antécédents est une cellule vide, mais ça ne l'a pas
beaucoup avancé. Pour info, le code de ma macro est à la fin du message.
J'ai pensé que je pourrais insérer ma formule en tant qu'argument texte
dans
la fonction (=MaFonction (« C1*A1/B1 »)), puis je pourrais vérifier que
tous
les antécédents de ma formule contiennent des valeurs. Le hic, c'est que
si
je défini l'argument de ma fonction comme une chaine de caractère, je ne
sais
pas comment faire pour que vba le voit comme une formule et recherche les
antécédents. (i.e. je ne peux pas utiliser la fonction .DirectPrecedents).
Merci de votre aide !
Farah
Code de ma macro :
Sub Empty_precedent()
Dim Cd As Range
Dim ok As Boolean
ok = False
Set Cd = ActiveCell.DirectPrecedents
For Each d In Cd
If IsEmpty(d) Then
ok = True
End If
Next
ActiveCell.Offset(1).Value = ok
End Sub- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -