formule avec fonction vba générant erreur sur instruction set
2 réponses
Alain N
Je rencontre un problème lorsque la fonction suivante est utilisée comme formule dans une cellule d’une feuille excel.
Je suis en XL2000 FR SP3 sous XP. Un ami l’a essayé sous XL2003 et là elle fonctionne correctement.
J’obtiens comme résultat #VALEUR !
Voici le code VBA :
Function moisfin()
Dim celluletrouvee, pos_fin
Sheets("plan").Select
Set celluletrouvee = ActiveSheet.Range("A12:A500").Find("")
pos_fin = celluletrouvee.Address
pos_fin = Range(celluletrouvee.Address).Offset(-1, 0).Address
Do While Range(pos_fin).Value = ""
pos_fin = Range(pos_fin).Offset(-1, 0).Address
Loop
moisfin = Range(pos_fin).Value
End Function
Autre essai qui doit donner le même résultat mais génère la même erreur :
Function moisfin()
Dim celluletrouvee, pos_fin
Sheets("plan MMS avec retraits annuels").Select
'Set celluletrouvee = ActiveSheet.Range("A12:A500").Find("", LookIn:=xlValues)
pos_fin = celluletrouvee.Address
pos_fin = Range(celluletrouvee.Address).Offset(-1, 0).Address
moisfin = Range(pos_fin).Value
End Function
Lorsque j’exécute le code en pas à pas par F8, tout se passe bien dans les deux cas.
Mais lorsque je place un arrêt sur l’instruction set et demande l’exécution depuis la cellule excel par la formule =moisfin(), il n’y a pas de message d’erreur dans l’exécution du code mais l’instruction set génère la valeur nothing à la variable cellulletrouvee et l’instruction suivante se met en erreur.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pierre Fauconnier
Bonsoir
Peut-être une solution en typant ta variable objet CelluleTrouvee Dim CelluleTrouvee as Range de façon à ce que la ligne set CelluleTrouvee = ... renvoie bien une cellule et non la valeur contenue dans la cellule
Cela convient-il?
-- Pierre Fauconnier () Les sept laids tuent ( Lewis Carol ) Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Alain N" <Alain a écrit dans le message de news:
Je rencontre un problème lorsque la fonction suivante est utilisée comme formule dans une cellule d'une feuille excel.
Je suis en XL2000 FR SP3 sous XP. Un ami l'a essayé sous XL2003 et là elle fonctionne correctement.
J'obtiens comme résultat #VALEUR ! Voici le code VBA : Function moisfin() Dim celluletrouvee, pos_fin Sheets("plan").Select Set celluletrouvee = ActiveSheet.Range("A12:A500").Find("") pos_fin = celluletrouvee.Address pos_fin = Range(celluletrouvee.Address).Offset(-1, 0).Address Do While Range(pos_fin).Value = "" pos_fin = Range(pos_fin).Offset(-1, 0).Address Loop moisfin = Range(pos_fin).Value End Function
Autre essai qui doit donner le même résultat mais génère la même erreur :
Function moisfin() Dim celluletrouvee, pos_fin Sheets("plan MMS avec retraits annuels").Select 'Set celluletrouvee = ActiveSheet.Range("A12:A500").Find("", LookIn:=xlValues)
pos_fin = celluletrouvee.Address pos_fin = Range(celluletrouvee.Address).Offset(-1, 0).Address moisfin = Range(pos_fin).Value End Function
Lorsque j'exécute le code en pas à pas par F8, tout se passe bien dans les deux cas.
Mais lorsque je place un arrêt sur l'instruction set et demande l' exécution depuis la cellule excel par la formule =moisfin(), il n'y a pas de
message d'erreur dans l'exécution du code mais l'instruction set génère la valeur nothing à la variable cellulletrouvee et l'instruction suivante se met en erreur.
Quelqu'un peut-il m'aider ?
Bonsoir
Peut-être une solution en typant ta variable objet CelluleTrouvee
Dim CelluleTrouvee as Range
de façon à ce que la ligne set CelluleTrouvee = ... renvoie bien une cellule
et non la valeur contenue dans la cellule
Cela convient-il?
--
Pierre Fauconnier (pierre.fauconnier@nospam.nospam)
Les sept laids tuent ( Lewis Carol )
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Alain N" <Alain N@discussions.microsoft.com> a écrit dans le message de
news:31481F99-EAB2-42C8-AB4F-CD3E9B360E47@microsoft.com...
Je rencontre un problème lorsque la fonction suivante est utilisée comme
formule dans une cellule d'une feuille excel.
Je suis en XL2000 FR SP3 sous XP. Un ami l'a essayé sous XL2003 et là elle
fonctionne correctement.
J'obtiens comme résultat #VALEUR !
Voici le code VBA :
Function moisfin()
Dim celluletrouvee, pos_fin
Sheets("plan").Select
Set celluletrouvee = ActiveSheet.Range("A12:A500").Find("")
pos_fin = celluletrouvee.Address
pos_fin = Range(celluletrouvee.Address).Offset(-1, 0).Address
Do While Range(pos_fin).Value = ""
pos_fin = Range(pos_fin).Offset(-1, 0).Address
Loop
moisfin = Range(pos_fin).Value
End Function
Autre essai qui doit donner le même résultat mais génère la même erreur :
Function moisfin()
Dim celluletrouvee, pos_fin
Sheets("plan MMS avec retraits annuels").Select
'Set celluletrouvee = ActiveSheet.Range("A12:A500").Find("",
LookIn:=xlValues)
pos_fin = celluletrouvee.Address
pos_fin = Range(celluletrouvee.Address).Offset(-1, 0).Address
moisfin = Range(pos_fin).Value
End Function
Lorsque j'exécute le code en pas à pas par F8, tout se passe bien dans les
deux cas.
Mais lorsque je place un arrêt sur l'instruction set et demande l'
exécution depuis la cellule excel par la formule =moisfin(), il n'y a pas de
message d'erreur dans l'exécution du code mais l'instruction set génère la
valeur nothing à la variable cellulletrouvee et l'instruction suivante se
met en erreur.
Peut-être une solution en typant ta variable objet CelluleTrouvee Dim CelluleTrouvee as Range de façon à ce que la ligne set CelluleTrouvee = ... renvoie bien une cellule et non la valeur contenue dans la cellule
Cela convient-il?
-- Pierre Fauconnier () Les sept laids tuent ( Lewis Carol ) Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Alain N" <Alain a écrit dans le message de news:
Je rencontre un problème lorsque la fonction suivante est utilisée comme formule dans une cellule d'une feuille excel.
Je suis en XL2000 FR SP3 sous XP. Un ami l'a essayé sous XL2003 et là elle fonctionne correctement.
J'obtiens comme résultat #VALEUR ! Voici le code VBA : Function moisfin() Dim celluletrouvee, pos_fin Sheets("plan").Select Set celluletrouvee = ActiveSheet.Range("A12:A500").Find("") pos_fin = celluletrouvee.Address pos_fin = Range(celluletrouvee.Address).Offset(-1, 0).Address Do While Range(pos_fin).Value = "" pos_fin = Range(pos_fin).Offset(-1, 0).Address Loop moisfin = Range(pos_fin).Value End Function
Autre essai qui doit donner le même résultat mais génère la même erreur :
Function moisfin() Dim celluletrouvee, pos_fin Sheets("plan MMS avec retraits annuels").Select 'Set celluletrouvee = ActiveSheet.Range("A12:A500").Find("", LookIn:=xlValues)
pos_fin = celluletrouvee.Address pos_fin = Range(celluletrouvee.Address).Offset(-1, 0).Address moisfin = Range(pos_fin).Value End Function
Lorsque j'exécute le code en pas à pas par F8, tout se passe bien dans les deux cas.
Mais lorsque je place un arrêt sur l'instruction set et demande l' exécution depuis la cellule excel par la formule =moisfin(), il n'y a pas de
message d'erreur dans l'exécution du code mais l'instruction set génère la valeur nothing à la variable cellulletrouvee et l'instruction suivante se met en erreur.
Quelqu'un peut-il m'aider ?
michdenis
Bonjour Alain,
La méthode d'un objet Range ne peut être utilisé dans une fonction appliquée directement dans une cellule d'une feuille de calcul avec la version Excel 2000. Est-ce un bug ? Je n'en sais rien .. c'est comme ça. Cependant, cela fonctionne avec excel 2002 et excel 2003.
Salutations!
"Alain N" <Alain a écrit dans le message de news: Je rencontre un problème lorsque la fonction suivante est utilisée comme formule dans une cellule d'une feuille excel. Je suis en XL2000 FR SP3 sous XP. Un ami l'a essayé sous XL2003 et là elle fonctionne correctement. J'obtiens comme résultat #VALEUR ! Voici le code VBA : Function moisfin() Dim celluletrouvee, pos_fin Sheets("plan").Select Set celluletrouvee = ActiveSheet.Range("A12:A500").Find("") pos_fin = celluletrouvee.Address pos_fin = Range(celluletrouvee.Address).Offset(-1, 0).Address Do While Range(pos_fin).Value = "" pos_fin = Range(pos_fin).Offset(-1, 0).Address Loop moisfin = Range(pos_fin).Value End Function
Autre essai qui doit donner le même résultat mais génère la même erreur :
Function moisfin() Dim celluletrouvee, pos_fin Sheets("plan MMS avec retraits annuels").Select 'Set celluletrouvee = ActiveSheet.Range("A12:A500").Find("", LookIn:=xlValues) pos_fin = celluletrouvee.Address pos_fin = Range(celluletrouvee.Address).Offset(-1, 0).Address moisfin = Range(pos_fin).Value End Function
Lorsque j'exécute le code en pas à pas par F8, tout se passe bien dans les deux cas. Mais lorsque je place un arrêt sur l'instruction set et demande l'exécution depuis la cellule excel par la formule =moisfin(), il n'y a pas de message d'erreur dans l'exécution du code mais l'instruction set génère la valeur nothing à la variable cellulletrouvee et l'instruction suivante se met en erreur.
Quelqu'un peut-il m'aider ?
Bonjour Alain,
La méthode d'un objet Range ne peut être utilisé dans une fonction appliquée directement dans une cellule d'une feuille
de calcul avec la version Excel 2000. Est-ce un bug ? Je n'en sais rien .. c'est comme ça. Cependant, cela fonctionne
avec excel 2002 et excel 2003.
Salutations!
"Alain N" <Alain N@discussions.microsoft.com> a écrit dans le message de
news:31481F99-EAB2-42C8-AB4F-CD3E9B360E47@microsoft.com...
Je rencontre un problème lorsque la fonction suivante est utilisée comme formule dans une cellule d'une feuille excel.
Je suis en XL2000 FR SP3 sous XP. Un ami l'a essayé sous XL2003 et là elle fonctionne correctement.
J'obtiens comme résultat #VALEUR !
Voici le code VBA :
Function moisfin()
Dim celluletrouvee, pos_fin
Sheets("plan").Select
Set celluletrouvee = ActiveSheet.Range("A12:A500").Find("")
pos_fin = celluletrouvee.Address
pos_fin = Range(celluletrouvee.Address).Offset(-1, 0).Address
Do While Range(pos_fin).Value = ""
pos_fin = Range(pos_fin).Offset(-1, 0).Address
Loop
moisfin = Range(pos_fin).Value
End Function
Autre essai qui doit donner le même résultat mais génère la même erreur :
Function moisfin()
Dim celluletrouvee, pos_fin
Sheets("plan MMS avec retraits annuels").Select
'Set celluletrouvee = ActiveSheet.Range("A12:A500").Find("", LookIn:=xlValues)
pos_fin = celluletrouvee.Address
pos_fin = Range(celluletrouvee.Address).Offset(-1, 0).Address
moisfin = Range(pos_fin).Value
End Function
Lorsque j'exécute le code en pas à pas par F8, tout se passe bien dans les deux cas.
Mais lorsque je place un arrêt sur l'instruction set et demande l'exécution depuis la cellule excel par la formule
=moisfin(), il n'y a pas de message d'erreur dans l'exécution du code mais l'instruction set génère la valeur nothing à
la variable cellulletrouvee et l'instruction suivante se met en erreur.
La méthode d'un objet Range ne peut être utilisé dans une fonction appliquée directement dans une cellule d'une feuille de calcul avec la version Excel 2000. Est-ce un bug ? Je n'en sais rien .. c'est comme ça. Cependant, cela fonctionne avec excel 2002 et excel 2003.
Salutations!
"Alain N" <Alain a écrit dans le message de news: Je rencontre un problème lorsque la fonction suivante est utilisée comme formule dans une cellule d'une feuille excel. Je suis en XL2000 FR SP3 sous XP. Un ami l'a essayé sous XL2003 et là elle fonctionne correctement. J'obtiens comme résultat #VALEUR ! Voici le code VBA : Function moisfin() Dim celluletrouvee, pos_fin Sheets("plan").Select Set celluletrouvee = ActiveSheet.Range("A12:A500").Find("") pos_fin = celluletrouvee.Address pos_fin = Range(celluletrouvee.Address).Offset(-1, 0).Address Do While Range(pos_fin).Value = "" pos_fin = Range(pos_fin).Offset(-1, 0).Address Loop moisfin = Range(pos_fin).Value End Function
Autre essai qui doit donner le même résultat mais génère la même erreur :
Function moisfin() Dim celluletrouvee, pos_fin Sheets("plan MMS avec retraits annuels").Select 'Set celluletrouvee = ActiveSheet.Range("A12:A500").Find("", LookIn:=xlValues) pos_fin = celluletrouvee.Address pos_fin = Range(celluletrouvee.Address).Offset(-1, 0).Address moisfin = Range(pos_fin).Value End Function
Lorsque j'exécute le code en pas à pas par F8, tout se passe bien dans les deux cas. Mais lorsque je place un arrêt sur l'instruction set et demande l'exécution depuis la cellule excel par la formule =moisfin(), il n'y a pas de message d'erreur dans l'exécution du code mais l'instruction set génère la valeur nothing à la variable cellulletrouvee et l'instruction suivante se met en erreur.