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 :

[VBA-E]Arrêt d'exécution sur une requette d'enregistrement


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [VBA-E]Arrêt d'exécution sur une requette d'enregistrement
    Bonjour,
    voila, j'ai un petit soucis que je ne m'explique pas et il faut absolument que je traite cela rapidement. Je vous explique :

    j'ai deux fichiers Excel avec un prog VBA dans chaque.
    Le premier fichier est ouvert et lorsque l'utilisateur appui sur un bouton dédié, j'ouvre le second fichier à partir du code (Workbooks.Open "toto.xls").
    J'ai mis dans la procédure d'ouverture du second fichier (toto.xls) une boucle qui me permet de fermer tous les fichiers ouverts :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For Each w In Workbooks
    	If w.Name <> ThisWorkbook.Name Then
    		w.Close
    	End If
    Next w
    ce qui me permet d'avoir une requette d'enregistrement des modifications effectuées dans le premier fichier. Le problème, c'est que mon programme s'arrête dans la boucle, après enregistrements des modifications du premier fichier et cela ne m'arrange pas du tout puisque j'ai du code qui doit s'enchaîner derrière.

    Quelqu'un pourrait m'aider, SVP

    Merci

  2. #2
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    oui si tu fermes l'appelant le code va s'arrêter

  3. #3
    Candidat au Club
    Inscrit en
    Avril 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci pour ta réponse, mais comment faire alors ?

    En solution de dépannage, j'ai mis un bouton dans le second fichier appelé, afin de pouvoir relancer le code mais c'est pas très sioux !

    Tiens pendant que j'y suis, comment fait-on pour masquer et afficher ce bouton (j'utilise une commande .visible= False/True mais il y a des fois où le bouton n'est plus trouvable pour une raison mystérieuse, donc plantage).

    Oh grand Maître VBA, viens à mon secours.

  4. #4
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    pour le bouton je n'en sais rien vu la richesse des informations fournies

    Pour ton appel, il faut bricoler une usine à gaz (un atelier tout au moins) du style, dans ton code de bouton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub CommandButton1_Click()
    Application.Workbooks.Open "d:\svg\toto.xls"
    Application.Run "toto.xls!Appel"
    End Sub
    et dans le classeur appelé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub Appel()
     
    Application.OnTime Now + TimeValue("00:00:15"), "essai"
     
    End Sub
     
    Sub essai()
    Dim w As Workbook
    For Each w In Workbooks
    If w.Name <> ThisWorkbook.Name Then
    w.Close
    End If
    Next w
    MsgBox "coucou"
    End Sub

  5. #5
    Candidat au Club
    Inscrit en
    Avril 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Génial !!!

    Merci pour ta réactivité, tu m'enlèves une sacré épine du pied...



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

Discussions similaires

  1. Question rapide sur une requette simple
    Par batoubat dans le forum Requêtes
    Réponses: 3
    Dernier message: 12/06/2006, 18h39
  2. [VBA-E] Requetes depuis Excel sur une Base Access sécurisée
    Par DhiSan dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 31/05/2006, 18h44
  3. [VBA-E]nombre qui influe sur une boite de dialogue
    Par vovor dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 31/05/2006, 14h01
  4. besoin d'aide sur une requette sql
    Par maxidoove dans le forum Langage SQL
    Réponses: 13
    Dernier message: 10/10/2005, 18h42
  5. Trie sur une requette SELECT
    Par Yali dans le forum Langage SQL
    Réponses: 6
    Dernier message: 13/08/2004, 09h56

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