OVH Cloud OVH Cloud

Des Affaires compliquées !

18 réponses
Avatar
michdenis
Bonjour,


J'ai dans un module standard, cette énorme procédure :

'---------------------------------
Sub Test(Optional s As String)

MsgBox "Bonjour" & Nom

End Sub
'---------------------------------


Je devrais "théoriquement" pouvoir appeler cette procédure de la fenêtre des macros (Ctrl + F8) en inscrivant dans la
ligne de saisie le nom de la macro suivi de la valeur de la variable. Test "denis".

Ma question : Pourquoi cela ne fonctionne pas chez moi, ... le bouton "exécuter" demeure grisé !

P.S. Perso, je n'utilise jamais cela, mais c'est ne pas une raison de ne pas connaître le pourquoi de son
non-fonctionnement !


Merci à ceux qui se pencheront sur le sujet !


Salutations!

10 réponses

1 2
Avatar
YannX
Bnsr,

alors là j'ai peut-etre une idée,
mais je vais devoir tester, car tu n'expliques pas
"ce qui ne marche pas" !

Je vois deux erreurs (de recopie) :
- aucune valeur par défaut n'est données à s
- MsgBox prend comme argument une variable "Nom"
(d'où sort-elle ?), et non pas s

Y

"michdenis" a écrit dans le message de
news:
Bonjour,


J'ai dans un module standard, cette énorme procédure :

'---------------------------------
Sub Test(Optional s As String)

MsgBox "Bonjour" & Nom

End Sub
'---------------------------------


Je devrais "théoriquement" pouvoir appeler cette procédure de la fenêtre
des macros (Ctrl + F8) en inscrivant dans la

ligne de saisie le nom de la macro suivi de la valeur de la variable.
Test "denis".


Ma question : Pourquoi cela ne fonctionne pas chez moi, ... le bouton
"exécuter" demeure grisé !


P.S. Perso, je n'utilise jamais cela, mais c'est ne pas une raison de ne
pas connaître le pourquoi de son

non-fonctionnement !


Merci à ceux qui se pencheront sur le sujet !


Salutations!






Avatar
michdenis
Bonjour YannX,

Ok, j'ai essayé différent truc et j'ai omis de le corriger avant publication. la procédure devrait se lire comme suit :

'-------------------
Sub Test(Optional Nom As String)

MsgBox "Bonjour" & Nom

End Sub
'-------------------


Mon problème YannX, ce n'est pas la variable.. mais pourquoi, je ne peux lancer cette procédure de la fenêtre mentionnée
dans mon premier message.


Salutations!



"YannX" a écrit dans le message de news:
Bnsr,

alors là j'ai peut-etre une idée,
mais je vais devoir tester, car tu n'expliques pas
"ce qui ne marche pas" !

Je vois deux erreurs (de recopie) :
- aucune valeur par défaut n'est données à s
- MsgBox prend comme argument une variable "Nom"
(d'où sort-elle ?), et non pas s

Y

"michdenis" a écrit dans le message de
news:
Bonjour,


J'ai dans un module standard, cette énorme procédure :

'---------------------------------
Sub Test(Optional s As String)

MsgBox "Bonjour" & Nom

End Sub
'---------------------------------


Je devrais "théoriquement" pouvoir appeler cette procédure de la fenêtre
des macros (Ctrl + F8) en inscrivant dans la

ligne de saisie le nom de la macro suivi de la valeur de la variable.
Test "denis".


Ma question : Pourquoi cela ne fonctionne pas chez moi, ... le bouton
"exécuter" demeure grisé !


P.S. Perso, je n'utilise jamais cela, mais c'est ne pas une raison de ne
pas connaître le pourquoi de son

non-fonctionnement !


Merci à ceux qui se pencheront sur le sujet !


Salutations!






Avatar
Daniel.M
Bonjour Denis,

Sub Test(Optional s As String) ' déjà corrigée Nom pour s


Je devrais "théoriquement" pouvoir appeler cette procédure de la
fenêtre des macros (Ctrl + F8) en inscrivant dans la
ligne de saisie le nom de la macro suivi de la valeur de la variable. Test
"denis".




1ère question:
Fenêtre des macros, c'est pas Alt-F8 au lieu de Ctrl-F8?

2ème question:
Essaie de la fenêtre de Debug (Ctrl-G dans VBE) en invoquant directement

Test

' puis ensuite

Test "Denis"

et ça fonctionne (chez moi).

Mais dans la fenêtre des macros (Alt-F8) dans Excel, lorsque je tape la dernière
lettre de Test, le bouton Exécuter ("Run") s'active mais rien ne se produit
lorsque j'appuie sur 'Enter'.
Je peux d'ailleurs taper
Test "R2D2"
et rien ne se produit.

Conclusion: La fenêtre des macros dans Excel impose une manière de faire qui
exclut les macros ayant (ou ayant la possibilité d'avoir) des arguments. Elle ne
passe pas les arguments et 'décroche' avant d'appeler véritablement la fonction.
Il doit y avoir une condition qui vérifie si la Sub a la possibilité d'avoir des
arguments, auquel cas, elle ne l'invoque pas.

Salutations,

Daniel M.

Avatar
michdenis
Bonjour Daniel,

Merci de confirmer le résultat de mes tests.

Cependant, il va falloir tordre les bras à Frédéric Sigonneau...si on veut savoir comment cela fonctionne, car cette
information, je la tiens de lui. Peut être que les MVP ont une version "turbo" d'excel !

;-))


Salutations!




"Daniel.M" a écrit dans le message de news: %
Bonjour Denis,

Sub Test(Optional s As String) ' déjà corrigée Nom pour s


Je devrais "théoriquement" pouvoir appeler cette procédure de la
fenêtre des macros (Ctrl + F8) en inscrivant dans la
ligne de saisie le nom de la macro suivi de la valeur de la variable. Test
"denis".




1ère question:
Fenêtre des macros, c'est pas Alt-F8 au lieu de Ctrl-F8?

2ème question:
Essaie de la fenêtre de Debug (Ctrl-G dans VBE) en invoquant directement

Test

' puis ensuite

Test "Denis"

et ça fonctionne (chez moi).

Mais dans la fenêtre des macros (Alt-F8) dans Excel, lorsque je tape la dernière
lettre de Test, le bouton Exécuter ("Run") s'active mais rien ne se produit
lorsque j'appuie sur 'Enter'.
Je peux d'ailleurs taper
Test "R2D2"
et rien ne se produit.

Conclusion: La fenêtre des macros dans Excel impose une manière de faire qui
exclut les macros ayant (ou ayant la possibilité d'avoir) des arguments. Elle ne
passe pas les arguments et 'décroche' avant d'appeler véritablement la fonction.
Il doit y avoir une condition qui vérifie si la Sub a la possibilité d'avoir des
arguments, auquel cas, elle ne l'invoque pas.

Salutations,

Daniel M.

Avatar
Pounet95
Bonsoir,
euh ...... je ne la vois même pas dans la liste des macros !
par contre sans (Optional s as string) , là je la vois !!!!!

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/

"michdenis" a écrit dans le message de news:

Bonjour,


J'ai dans un module standard, cette énorme procédure :

'---------------------------------
Sub Test(Optional s As String)

MsgBox "Bonjour" & Nom

End Sub
'---------------------------------


Je devrais "théoriquement" pouvoir appeler cette procédure de la fenêtre
des macros (Ctrl + F8) en inscrivant dans la
ligne de saisie le nom de la macro suivi de la valeur de la variable.
Test "denis".

Ma question : Pourquoi cela ne fonctionne pas chez moi, ... le bouton
"exécuter" demeure grisé !

P.S. Perso, je n'utilise jamais cela, mais c'est ne pas une raison de ne
pas connaître le pourquoi de son
non-fonctionnement !


Merci à ceux qui se pencheront sur le sujet !


Salutations!






Avatar
LeSteph
Bonjour MichDenis,

(En envisageant ta question dans la rubrique la petite colle du jour de
MichDenis)

Voici où j'en suis de la réflexion proposée:

Il est plus commun de voir utiliser optional pour des fonctions en tant
qu'arg facultatif ..bon, encore un des très nombreux trucs à apprendre.
S'il faut un paramêtre c'est qu'il serait transmis par une autre procèdure
donc probablement pas utilisable directement.
Mais si à portée de variable il y avait un Public Nom il me semble qu'on
pourrait
l'appeler en écrivant simplement .

Sub Test()
MsgBox "Bonjour" & Nom
End Sub

Ainsi si nom est égal à rien on aura juste "bonjour" .
Ceci étant je comprends mieux si le but est de pouvoir préciser nom
uniquement dans la boite macro d'excel
mais si j'essaie:

Option Explicit
Public nom As String
Sub leTest(Optional nom)

MsgBox "Bonjour" & nom

End Sub

Alors cela apparait bien mais si l'on veut entrer un argument on a le
message erreur Référence non valide.

Donc pour le moment je câle......
:°°)

--
lSteph
"michdenis" a écrit dans le message de news:

Bonjour,


J'ai dans un module standard, cette énorme procédure :

'---------------------------------
Sub Test(Optional s As String)

MsgBox "Bonjour" & Nom

End Sub
'---------------------------------


Je devrais "théoriquement" pouvoir appeler cette procédure de la fenêtre
des macros (Ctrl + F8) en inscrivant dans la
ligne de saisie le nom de la macro suivi de la valeur de la variable.
Test "denis".

Ma question : Pourquoi cela ne fonctionne pas chez moi, ... le bouton
"exécuter" demeure grisé !

P.S. Perso, je n'utilise jamais cela, mais c'est ne pas une raison de ne
pas connaître le pourquoi de son
non-fonctionnement !


Merci à ceux qui se pencheront sur le sujet !


Salutations!






Avatar
LeSteph
... et (sans mauvais jeu de mot) si on enlève le string on la voit aussi.

lSteph

"Pounet95" a écrit dans le message de news:

Bonsoir,
euh ...... je ne la vois même pas dans la liste des macros !
par contre sans (Optional s as string) , là je la vois !!!!!

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/

"michdenis" a écrit dans le message de news:

Bonjour,


J'ai dans un module standard, cette énorme procédure :

'---------------------------------
Sub Test(Optional s As String)

MsgBox "Bonjour" & Nom

End Sub
'---------------------------------


Je devrais "théoriquement" pouvoir appeler cette procédure de la fenêtre
des macros (Ctrl + F8) en inscrivant dans la
ligne de saisie le nom de la macro suivi de la valeur de la variable.
Test "denis".

Ma question : Pourquoi cela ne fonctionne pas chez moi, ... le bouton
"exécuter" demeure grisé !

P.S. Perso, je n'utilise jamais cela, mais c'est ne pas une raison de ne
pas connaître le pourquoi de son
non-fonctionnement !


Merci à ceux qui se pencheront sur le sujet !


Salutations!









Avatar
Frédéric Sigonneau
Bonsoir Denis,

Inutile d'en arriver à de telles extrémités !
Utilise cette syntaxe :

'test " Denis"'

FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://frederic.sigonneau.free.fr
Si votre question sur Excel est urgente, évitez ma bal !

Bonjour Daniel,

Merci de confirmer le résultat de mes tests.

Cependant, il va falloir tordre les bras à Frédéric Sigonneau...si on veut savoir comment cela fonctionne, car cette
information, je la tiens de lui. Peut être que les MVP ont une version "turbo" d'excel !

;-))


Salutations!




"Daniel.M" a écrit dans le message de news: %
Bonjour Denis,


Sub Test(Optional s As String) ' déjà corrigée Nom pour s



Je devrais "théoriquement" pouvoir appeler cette procédure de la
fenêtre des macros (Ctrl + F8) en inscrivant dans la
ligne de saisie le nom de la macro suivi de la valeur de la variable. Test


"denis".


1ère question:
Fenêtre des macros, c'est pas Alt-F8 au lieu de Ctrl-F8?

2ème question:
Essaie de la fenêtre de Debug (Ctrl-G dans VBE) en invoquant directement

Test

' puis ensuite

Test "Denis"

et ça fonctionne (chez moi).

Mais dans la fenêtre des macros (Alt-F8) dans Excel, lorsque je tape la dernière
lettre de Test, le bouton Exécuter ("Run") s'active mais rien ne se produit
lorsque j'appuie sur 'Enter'.
Je peux d'ailleurs taper
Test "R2D2"
et rien ne se produit.

Conclusion: La fenêtre des macros dans Excel impose une manière de faire qui
exclut les macros ayant (ou ayant la possibilité d'avoir) des arguments. Elle ne
passe pas les arguments et 'décroche' avant d'appeler véritablement la fonction.
Il doit y avoir une condition qui vérifie si la Sub a la possibilité d'avoir des
arguments, auquel cas, elle ne l'invoque pas.

Salutations,

Daniel M.






Avatar
michdenis
Bonsoir Frédéric,

Merci à toi, cette syntaxe fonctionne très bien !

Je prends soin de la noter... ça peut toujours servir !

;-))


Salutations !

P.S. Je te l'avais bien dit ... Hein Daniel !

;-))




"Frédéric Sigonneau" a écrit dans le message de news:
%
Bonsoir Denis,

Inutile d'en arriver à de telles extrémités !
Utilise cette syntaxe :

'test " Denis"'

FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://frederic.sigonneau.free.fr
Si votre question sur Excel est urgente, évitez ma bal !

Bonjour Daniel,

Merci de confirmer le résultat de mes tests.

Cependant, il va falloir tordre les bras à Frédéric Sigonneau...si on veut savoir comment cela fonctionne, car cette
information, je la tiens de lui. Peut être que les MVP ont une version "turbo" d'excel !

;-))


Salutations!




"Daniel.M" a écrit dans le message de news:
%
Bonjour Denis,


Sub Test(Optional s As String) ' déjà corrigée Nom pour s



Je devrais "théoriquement" pouvoir appeler cette procédure de la
fenêtre des macros (Ctrl + F8) en inscrivant dans la
ligne de saisie le nom de la macro suivi de la valeur de la variable. Test


"denis".


1ère question:
Fenêtre des macros, c'est pas Alt-F8 au lieu de Ctrl-F8?

2ème question:
Essaie de la fenêtre de Debug (Ctrl-G dans VBE) en invoquant directement

Test

' puis ensuite

Test "Denis"

et ça fonctionne (chez moi).

Mais dans la fenêtre des macros (Alt-F8) dans Excel, lorsque je tape la dernière
lettre de Test, le bouton Exécuter ("Run") s'active mais rien ne se produit
lorsque j'appuie sur 'Enter'.
Je peux d'ailleurs taper
Test "R2D2"
et rien ne se produit.

Conclusion: La fenêtre des macros dans Excel impose une manière de faire qui
exclut les macros ayant (ou ayant la possibilité d'avoir) des arguments. Elle ne
passe pas les arguments et 'décroche' avant d'appeler véritablement la fonction.
Il doit y avoir une condition qui vérifie si la Sub a la possibilité d'avoir des
arguments, auquel cas, elle ne l'invoque pas.

Salutations,

Daniel M.






Avatar
Daniel.M
Bonsoir Denis,

P.S. Je te l'avais bien dit ... Hein Daniel !
;-))


:-)
Je vais te faire une confidence Denis : je n'aurais pas pu le trouver car chez
moi avec XL 2000
'test " Denis"'

ne fonctionne pas. Il n'y a rien qui se passe, le code de la Sub ne s'exécute
pas.

Si j'ai compris, on parle bien d'appuyer sur Alt-F8 et inscrire
'test " Denis"'
(avec ou sans les apostrophes, même résultat) et d'appuyer sur le bouton
Excécuter ("Run" chez moi)

Quelle version d'Excel avez-vous? Cela fonctionne-t-il avec Excel 2000, auquel
cas je vais commencer à virer 'parano'? ;-)

Salutations,

Daniel M.

1 2