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

ActiveSheet.Shapes : fonctionne dans une macro mais pas dans une fonction?

4 réponses
Avatar
Jean bidule
Bonsoir au Forum,

j'ai un drôle de petit soucis,

Si j'incorpore les lignes ci-dessous (effacement d'une série de shapes) dans
une fonction, elles ne fonctionnent pas mais bien dans une macro.
Que dois-je faire pour qu'elles fonctionnent aussi dans une fonction ?

Ne fonctionne pas:
Function CroixFrigo(Cel)
ActiveSheet.Shapes("Line 184").Select
Selection.Delete
End Function

Fonctionne correctement:
Sub Macro6()
ActiveSheet.Shapes("Line 184").Select
Selection.Delete
End Sub

Merci et bonne soirée à vous
Jean

4 réponses

Avatar
anonymousA
bonjour,

ai essayé à ta fonction et fonctionne très correctement sous réserve
d'appeler la fonction depuis une macro , bien sur .
Je ne vois pas donc pas ton problème . Peux-tu en dire plus ?


Bonsoir au Forum,

j'ai un drôle de petit soucis,

Si j'incorpore les lignes ci-dessous (effacement d'une série de shapes) dans
une fonction, elles ne fonctionnent pas mais bien dans une macro.
Que dois-je faire pour qu'elles fonctionnent aussi dans une fonction ?

Ne fonctionne pas:
Function CroixFrigo(Cel)
ActiveSheet.Shapes("Line 184").Select
Selection.Delete
End Function

Fonctionne correctement:
Sub Macro6()
ActiveSheet.Shapes("Line 184").Select
Selection.Delete
End Sub

Merci et bonne soirée à vous
Jean





Avatar
Jean bidule
bonsoir,

j'aimerais la prendre comme fonction (pas dans une macro) pour qu'elle
s'exécute automatiquement dès qu'il y a une modification de cellule.
Si elle se trouve dans une macro, je dois appuyer sur un bouton.

merci à toi
Jean


"anonymousA" a écrit dans le message
de news:
bonjour,

ai essayé à ta fonction et fonctionne très correctement sous réserve
d'appeler la fonction depuis une macro , bien sur .
Je ne vois pas donc pas ton problème . Peux-tu en dire plus ?


Bonsoir au Forum,

j'ai un drôle de petit soucis,

Si j'incorpore les lignes ci-dessous (effacement d'une série de shapes)
dans
une fonction, elles ne fonctionnent pas mais bien dans une macro.
Que dois-je faire pour qu'elles fonctionnent aussi dans une fonction ?

Ne fonctionne pas:
Function CroixFrigo(Cel)
ActiveSheet.Shapes("Line 184").Select
Selection.Delete
End Function

Fonctionne correctement:
Sub Macro6()
ActiveSheet.Shapes("Line 184").Select
Selection.Delete
End Sub

Merci et bonne soirée à vous
Jean







Avatar
Sitting Hoax \(BM\)
Bonjour,
voici la fonction un peu modifiée
Function CroixFrigo(Cel)
Cel = Range("a1").Value
If Cel = 1 Then
ActiveSheet.Shapes("Line 184").Delete
End If
End Function

dans une autre cellule, tu peux inscrire
=CroixFrigo(A1)

Lorsque la valeur de A1 est égale à1,
après recalcul,
ActiveSheet.Shapes("Line 184") est détruite.
Mais cela ne marchera qu'une fois puisque
ActiveSheet.Shapes("Line 184") n'existera plus.

Amicalement
Sitting Hoax

"Jean bidule" a écrit dans le message de
news:41a382ad$0$13465$
bonsoir,

j'aimerais la prendre comme fonction (pas dans une macro) pour qu'elle
s'exécute automatiquement dès qu'il y a une modification de cellule.
Si elle se trouve dans une macro, je dois appuyer sur un bouton.

merci à toi
Jean


"anonymousA" a écrit dans le
message

de news:
bonjour,

ai essayé à ta fonction et fonctionne très correctement sous réserve
d'appeler la fonction depuis une macro , bien sur .
Je ne vois pas donc pas ton problème . Peux-tu en dire plus ?


Bonsoir au Forum,

j'ai un drôle de petit soucis,

Si j'incorpore les lignes ci-dessous (effacement d'une série de shapes)
dans
une fonction, elles ne fonctionnent pas mais bien dans une macro.
Que dois-je faire pour qu'elles fonctionnent aussi dans une fonction ?

Ne fonctionne pas:
Function CroixFrigo(Cel)
ActiveSheet.Shapes("Line 184").Select
Selection.Delete
End Function

Fonctionne correctement:
Sub Macro6()
ActiveSheet.Shapes("Line 184").Select
Selection.Delete
End Sub

Merci et bonne soirée à vous
Jean











Avatar
Jean bidule
Merci Sitting Hoax,

avec ta fonction ca fonctionne à merveille !

Bien à toi
Jean

"Sitting Hoax (BM)" a écrit dans le
message de news: %
Bonjour,
voici la fonction un peu modifiée
Function CroixFrigo(Cel)
Cel = Range("a1").Value
If Cel = 1 Then
ActiveSheet.Shapes("Line 184").Delete
End If
End Function

dans une autre cellule, tu peux inscrire
=CroixFrigo(A1)

Lorsque la valeur de A1 est égale à1,
après recalcul,
ActiveSheet.Shapes("Line 184") est détruite.
Mais cela ne marchera qu'une fois puisque
ActiveSheet.Shapes("Line 184") n'existera plus.

Amicalement
Sitting Hoax

"Jean bidule" a écrit dans le message de
news:41a382ad$0$13465$
bonsoir,

j'aimerais la prendre comme fonction (pas dans une macro) pour qu'elle
s'exécute automatiquement dès qu'il y a une modification de cellule.
Si elle se trouve dans une macro, je dois appuyer sur un bouton.

merci à toi
Jean


"anonymousA" a écrit dans le
message

de news:
bonjour,

ai essayé à ta fonction et fonctionne très correctement sous réserve
d'appeler la fonction depuis une macro , bien sur .
Je ne vois pas donc pas ton problème . Peux-tu en dire plus ?


Bonsoir au Forum,

j'ai un drôle de petit soucis,

Si j'incorpore les lignes ci-dessous (effacement d'une série de
shapes)
dans
une fonction, elles ne fonctionnent pas mais bien dans une macro.
Que dois-je faire pour qu'elles fonctionnent aussi dans une fonction ?

Ne fonctionne pas:
Function CroixFrigo(Cel)
ActiveSheet.Shapes("Line 184").Select
Selection.Delete
End Function

Fonctionne correctement:
Sub Macro6()
ActiveSheet.Shapes("Line 184").Select
Selection.Delete
End Sub

Merci et bonne soirée à vous
Jean