IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Problème avec Application.OnTime Now() + TimeValue [XL-2002]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 67
    Points : 54
    Points
    54
    Par défaut Problème avec Application.OnTime Now() + TimeValue
    Bonjour à tous,


    Je me tourne vers vous car je suis pas loin de toucher à mon but mais un autre problème vient de se manifester.

    J'ai un premier code qui fait appel à un autre via Application.OnTime Now() + TimeValue.

    Je lance mon deuxième programme (intitulé AjoutTitres2) 5 secondes plus tard.

    J'ai donc Application.OnTime Now() + TimeValue("00:00:05"), "AjoutTitres2" dans mon premier programme AjoutTitres

    Le problème c'est qu'il y a des variables dans mon premier programme (numcol pour compter le nombre de colonnes) et que j'ai besoin de les utiliser dans mon programme AjoutTitres2.

    J'ai essayé jusqu'à présent :

    1) Application.OnTime Now() + TimeValue("00:00:05"), "AjoutTitres2(numcol)"
    et j'ai mis dans mon pgme 2 : Sub AjoutTitres2(ByVal numcol As Integer)
    --> dans ce cas là, il me dit que AjoutTitres2(numcol) est introuvable

    2) Application.OnTime Now() + TimeValue("00:00:05"), "AjoutTitres2"
    et j'ai mis dans mon pgme 2 : Sub AjoutTitres2(ByVal numcol As Integer)
    --> dans ce cas là, il me dit "argument not optional"

    Voyez-vous comment réussir à faire appel à mon deuxième programme avec mes variables svp?

    Merci d'avance à celui qui voudra bien me répondre.


    Coklin

  2. #2
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 121
    Points : 119
    Points
    119
    Par défaut
    quand tu parles de programmes tu parles de deux procédures j'imagines ?
    pourquoi ne pas déclarer ta variable en public plutot que de t'embeter.

    Au début d'un module tu met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public numcol as integer
    et logiquement tu seras tranquille
    et perso je suis pas un spécialiste mais le byval est utile ou au contraire nuisible dans ce cas ?
    enfin je pense que le problème du introuvable est qu'il cherche le nom de procédure complet
    dans ce cas essaye d'appeler "AjoutTitres2" numcol ou "AjoutTitres2 numcol"

    essayes ces trois solutions et reviens

    sachant que la 1ère devrait suffir

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Points : 547
    Points
    547
    Par défaut
    Salut,

    On peut passer des parametre mais il faut ajouter des quotes et separer par une virgule.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.OnTime Now() + TimeValue("00:00:05"), "'AjoutTitres2 " & numcol & "'"
    ++
    Minick

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 67
    Points : 54
    Points
    54
    Par défaut
    Bonjour à vous deux,


    Merci bcp david de m'avoir répondu. Ta solution fonctionne à merveille. Merci bcp!!!


    Est-ce que le fait que ce soit déclaré en public ne risque pas de modifier la valeur numcol dans certaines de mes procédures?

    Dans tous les cas je suis très content, merci encore.

    Minick, merci aussi, mais ce que tu me proposais était de faire appel à un ajouttitre dépendant d'une variable type Ajouttitre 22, ou 23 alors que ce que m'a donné david, c'est une façon de faire appel à une autre procédure qui reprend les mêmes paramètres que la première procédure.


    Si ça peut te servir un jour.

    Bon vendredi et bon week end.

    Coklin

  5. #5
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 121
    Points : 119
    Points
    119
    Par défaut
    le fait de déclarer ta variable public fait qu'elle sera accessible a toutes tes procédures et que sa valeur sera la dernière mise à jour.
    Autrement dit si une proc1 change la valeur de numcol la nouvelle valeur de numcol sera cette valeur modifiée

    Si tu souhaites utiliser cette valeur telle quelle dans une proc3 il ne faut pas qu'une proc2 la modifie entre temps.

    Bref une variable publique c'est une variable que tout le monde il peut toucher et faire ce qu'il veut avec

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Points : 547
    Points
    547
    Par défaut
    J'ai pas bien compris ta remarque.

    Tu dis avoir un AjoutTitre dans lequel tu as une variable numcol et que tu veux
    lancer AjoutTitre2 apres AjoutTitre (5s plus tard) en reprenant cette variable.

    Tu dois donc avoir a la fin de ton AjoutTitre ton OnTime... si j'ai bien compris.
    Donc ta variable numcol aura la valeur souhaité quand tu definis ton OnTime.

    Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.OnTime Now() + TimeValue("00:00:05"), "'AjoutTitres2 " & numcol & "'"
    fonctionne si tu declares AjoutTitre2 comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sub AjoutTitres2(ByVal numcol As Integer)
    Ou alors je suis completement a cote de la plaque...
    ++
    Minick

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Problème avec Application.ontime
    Par XceSs dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 06/05/2012, 02h05
  2. Problème avec Application.OnTime
    Par Uopip dans le forum VBA Outlook
    Réponses: 14
    Dernier message: 09/07/2007, 15h14
  3. [VBA-E] Comment annuler un appel planifié avec Application.OnTime ?
    Par Efpoint dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/05/2006, 14h24
  4. [VBA-E] Problème avec Application.StatusBar
    Par laloune dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/03/2006, 16h44
  5. problème avec Application->ProcessMessages()
    Par petitours dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/08/2005, 10h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo